2016-11-13 5 views
0

プロセスのメモリマッピング状態を視覚化したい。このために私は出力を解析しました分離した間隔の可視化ライブラリ

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

今私は実際の行に間隔の不連続な和を持っています。そのようなデータのための便利なビジュアライゼーションライブラリはありますか?ハスケルインターフェースは私にとっては最も時間を節約することができますが、提案は大歓迎です。ありがとう!

+1

ライブラリーの依頼はここではちょっと話題ですが、[haskell-chart](https://hackage.haskell.org/package/Chart)をご覧ください。 – epsilonhalbe

+0

@epsilonhalbe:ありがとうございます。これのための正しい用語(またはタグ)は何でしょうか?私はこれが一般的なシナリオであるべきだと思っていました。 – mnish

+0

@epsilonhalbe:図書館ではなく用語/理論を求めていますか? – mnish

答えて

0

これは誰にとっても便利な場合があるので、私はこれを行うための小さなツールをハッキングしました。 (ちなみに、インタラクティブな視覚化のためにR/Shinyを使い終わった。)

ここにgithub repoがある。 screenshot

それはあなたが地域をクリックすると、スタックはメモリマッピング の責任トレースその中Interactiveのは、次のように表示されます:

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のための同じフラグに対応します開発IのREAの過程において/の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 

この問題の顕著な幾何学的特性を明らかにした。 私はSheafというモジュールを作成し、そこにGrothendieck トポロジとそれに一定の束を定義するためのレシピを記述しました。 Grothendieck(またはLawvere-Tierney)のトポロジは、実際にはプログラミングのために普及しているようですが、価値あるものがあれば分かりません。 どうぞ気軽にチェックしてください!

関連する問題