2016-11-13 4 views
0

Я хочу визуализировать состояния отображения памяти процессов. Для этого я разобран выводБиблиотека визуализации для непересекающихся интервалов

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

и теперь у меня есть временной ряд непересекающихся сумм интервалов на прямой. Есть ли удобная библиотека визуализации для таких данных? Интерфейс Haskell был бы наиболее экономичным для меня, но любое предложение приветствуется. Благодаря!

+1

Запросить библиотеки здесь не по теме, но вы взглянули на [haskell-chart] (https://hackage.haskell.org/package/Chart) – epsilonhalbe

+0

@epsilonhalbe: Спасибо, это хорошо. Какова была бы правильная терминология (или теги) для этого? Я думал, что это должен быть общий сценарий, и будет готовое решение. – mnish

+0

@epsilonhalbe: Просит терминологию/теорию вместо библиотеки сделать это более подходящим здесь? – mnish

ответ

0

На всякий случай это может быть полезно для всех, я взломал небольшой инструмент, чтобы сделать это. (Кстати, я использовал R/Shiny для интерактивной визуализации.)

Вот github repo. screenshot

Это интерактивный, что при нажатии на область, стек следы отвечает за память отображение будет показано, как это:

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 

В процессе РАЗРАБОТКА Я осознал поразительную геометричность проблемы. Итак, я создал модуль под названием Sheaf и описал там рецепт для определения топологии Grothendieck и постоянного пучка на нем. Теперь кажется, что топологии Grothendieck (или Lawvere-Tierney) на самом деле вездесущие для программирования .. но я не уверен, что это докажет что-то достойное. Так что не стесняйтесь проверить!

Смежные вопросы