r - Visualization library for disjoint intervals -
i want visualize memory mapping states of processes. parsed output of
# strace -s 256 -v -k -f -e trace=memory,process command
and have time series of disjoint sums of intervals on real line. there convenient visualization library such data? haskell interface time-saving me, suggestion welcome. thanks!
just in case might useful anyone, hacked little tool this. (by way ended using r/shiny interactive visualization.)
here's github repo.
it's interactive in if click region, stack traces responsible memory mapping shown this:
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]
the same colors correspond same flags mmap/msync/madvise etc.
synopsis
$ make show-prerequisites # (follow 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 previous results $ make data_dir=build/data-2016-12-12_02h38m13s
in process of development realized striking geometricity of problem. created module called sheaf
, described there recipe defining grothendieck topology , constant sheaf on it. seems grothendieck (or lawvere-tierney) topologies ubiquitous programming.. i'm not sure if prove worthy. feel free check it!
Comments
Post a Comment