我正在尋找一種工具,可以幫助我生成內存訪問圖形。我試圖優化搜索算法(用c編寫),知道如何執行內存訪問以優化內存訪問模式會非常有用。生成內存訪問圖形的工具
我聽說valgrind的cachegrind可以幫助我,但我認爲這並不是我正在尋找的,因爲我認爲它不會生成一些內存訪問,並且我已經知道可以顯示給我的其他信息使用PAPI庫。
我要生成的圖具有在x軸的存儲器訪問順序和在y軸上的存儲器地址空間(絕對或相對存儲器方向)
我正在尋找一種工具,可以幫助我生成內存訪問圖形。我試圖優化搜索算法(用c編寫),知道如何執行內存訪問以優化內存訪問模式會非常有用。生成內存訪問圖形的工具
我聽說valgrind的cachegrind可以幫助我,但我認爲這並不是我正在尋找的,因爲我認爲它不會生成一些內存訪問,並且我已經知道可以顯示給我的其他信息使用PAPI庫。
我要生成的圖具有在x軸的存儲器訪問順序和在y軸上的存儲器地址空間(絕對或相對存儲器方向)
如果您使用gcc或GNU STDÇ庫,malloc和free hooks可能會有幫助。 https://www.gnu.org/software/libc/manual/html_node/Hooks-for-Malloc.html#Hooks-for-Malloc
在這個項目中的一些工具,做你想要什麼: http://www.inf.usi.ch/faculty/hauswirth/research/TraceVisualization.html 我不知道,如果你可以在任何地方下載它們或讓他們共享一個拷貝,我用他們,因爲我是這個教授的學生!
FWIW,這是我將如何處理該優化。我會* [使用此方法](http://stackoverflow.com/questions/375913/what-can-i-use-to-profile-c-code-in-linux/378024#378024)*。如果存在某種內存訪問模式,導致某些指令由於緩存未命中而花費很長時間,那麼恰好在這些位置停止的概率等於該百分比。 – 2012-01-15 18:30:01