2016-11-13 50 views
0

我想要可視化進程的內存映射狀態。爲此,我分析的不相交間隔的可視化庫

# strace -s 256 -v -k -f -e trace=memory,process command 

輸出,現在我有時間序列上的實際線間隔不相交的總和。這種數據是否有一個方便的可視化庫? Haskell接口對我來說是最省時間的,但任何建議都是值得歡迎的。謝謝!

+1

詢問圖書館是不是有問題在這裏,但你看看[哈斯卡爾圖](https://hackage.haskell.org/package/Chart) – epsilonhalbe

+0

@epsilonhalbe:謝謝,它看起來不錯。什麼纔是正確的術語(或標籤)呢?我認爲這應該是一種常見的情況,並且會有一個現成的解決方案。 – mnish

+0

@epsilonhalbe:是否要求術語/理論而不是庫使這更適合? – mnish

回答

0

爲了以防萬一這可能對任何人有用,我砍了一個小工具來做到這一點。 (順便說一下,我最終使用R/Shiny進行交互式可視化。)

這裏是github reposcreenshot

如果你點擊一個區域它是在互動中,堆棧跟蹤,負責測繪 會顯示這樣的記憶:

trace: 
22695 mmap(NULL, 251658240, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x2b4210000000 
/lib/x86_64-linux-gnu/libc-2.19.so(mmap64+0xa) [0xf487a] 
/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libjvm.so(_ZN2os17pd_reserve_memoryEmPcm+0x31) [0x91e9c1] 
/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libjvm.so(_ZN2os14reserve_memoryEmPcm+0x20) [0x91ced0] 
/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libjvm.so(_ZN13ReservedSpace10initializeEmmbPcmb+0x256) [0xac20a6] 
/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libjvm.so(_ZN17ReservedCodeSpaceC1Emmb+0x2c) [0xac270c] 
/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libjvm.so(_ZN8CodeHeap7reserveEmmm+0xa5) [0x61a3c5] 
/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libjvm.so(_ZN9CodeCache10initializeEv+0x80) [0x47ff50] 
/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libjvm.so(_Z12init_globalsv+0x45) [0x63c905] 
/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libjvm.so(_ZN7Threads9create_vmEP14JavaVMInitArgsPb+0x23e) [0xa719be] 
/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libjvm.so(JNI_CreateJavaVM+0x74) [0x6d11c4] 
/usr/lib/jvm/java-8-oracle/lib/amd64/jli/libjli.so(JavaMain+0x9e) [0x745e] 
/lib/x86_64-linux-gnu/libpthread-2.19.so(start_thread+0xc4) [0x8184] 
/lib/x86_64-linux-gnu/libc-2.19.so(clone+0x6d) [0xfa37d] 

同樣的顏色對應於MMAP /的msync相同的標誌/的madvise等

梗概
$ make show-prerequisites 
# (Follow the instructions) 

$ make COMMAND="time ls" 
... 
DATA_DIR=build/data-2016-12-12_02h38m13s 
Listening on http://127.0.0.1:5000 
.... 
$ firefox http://127.0.0.1:5000 

$ # Re-browse the previous results 
$ make DATA_DIR=build/data-2016-12-12_02h38m13s 

在發展我REA的過程突出了問題的驚人幾何性。 所以我創建了一個名爲Sheaf的模塊,並在那裏描述了一個定義Grothendieck 拓撲結構和一個常量捆的配方。現在看來,格洛騰迪克(或者勞倫特 - 蒂爾尼)的拓撲結構 實際上是無處不在的編程..但我不確定它是否會證明任何有價值的東西。 所以隨時檢查它!