Чтобы добавлять сообщения и комментарии, .

@qnikst:
qnikst

А как правильно понимать flame graph, ведь если меня интересует, что тормозит, то мне нужно искать максимальный diff между функцией и той, что она вызывает. А это как-то автоматизировать можно? (inverted похоже на то, что надо но я его чего-то не понимаю)

@qnikst:
qnikst

а кто-нить умеет расшифровывать все эти `/`, `\./` `.\` в результатах heap profile?

@qnikst:
qnikst

А расскажите мне про retainers в профилировке. а то с документацией я ознакомился, но не очень понял какие выводы можно сделать их полученного профиля.

@qnikst:
qnikst

ааааа как ловить причину "утекания" памяти в программе, если это "утекание" является постоянным, но при этом не основным потреблением памяти в программе, т.е. например маскимальные аллокации ~60Mb, а тренд утекания ни этом ~5Mb за то же время.
Интересно что делать для haskell, но что вы делаете в вашем любимом ЯП тоже принимается

@segfault:
segfault

*cabal?
конфигурирую так
cabal configure --enable-executable-profiling --enable-tests
получаю при билде вот это
http://bpaste.net/show/185257/
вот проект
https://github.com/s9gf4ult/market
Если убрать ` --enable-executable-profiling` то все работает. Библиотека собралась норм, при сборке теста ожидает почемуто Fields.o вместо Fields.p_o
если добавить флаг `-p` библиотека собирается с профилировкой тоже нормально
модуль Market.Models использует TH и импортирует типы из Market.Models.Fields
Что за нах? Кто нибудь встречался?

@qnikst:
qnikst

в продолжение, есть ли способы заставить вычисление вычислиться в компайлтайме, и везде где оно используется подставить результат? Если да, то как?
а если оно нужно сделать тоже самое в реализации метода инстанса тайп-класса?

@qnikst:
qnikst

а кто-нибудь посдкажет, как можно понять, что обозначают символы: .\ , .\.(...) , .\.g в названиях автоматически сгенерированных
кост-центров, как например тут: bpaste.net
А так же есть ли какие-нибудь общепринятые методы разбора enum в bytefield, которые работают без лишней аллокации как в 2.

@Tishka17:
Tishka17

А чем бы мне посмотреть за утечками памяти на железке. valgrind не предлагать, у него нет поддержки sh4 архитектуры. gperftools тоже не скомпилились.

@mirivlad:
mirivlad

Задумался тут сделать профайлинг для одного своего проектика. Поставил Xdebug, настроил... А в файлах профайлинга вот это:
version: 0.9.6
cmd: Command line code
part: 1

events: Time

fl=php:internal
fn=php::ini_get
1 7

fl=Command line code
fn={main}

summary: 60

0 52
cfn=php::ini_get
calls=1 0 0
1 7

Ну и соответственно в KcacheGrind нихера не кажет. Вопрос — а при работе php как php-fpm в связке с nginx так и должно быть может? А то я уже голову себе расчесал. На всякий случай — настройка xdebug находящаяся в /etc/php5/fpm/conf.d/xdebug.ini : pastebin.com
Буду рад если кто подскажет где я не прав.

@arrowdodger:
arrowdodger

Мне тут пришла интересная идея в голову. С помощью KLEE можно найти все множество путей выполнения в программе и для каждого пути схоронить ограничения на переменные.
После этого можно подставить конкретизировать эти наборы и захардкодить их в байткод. А потом слинковать нативный бинарник.
Т.е. мы получим набор бинарников одной программы, представляющий собой набор self-contained тестов для всех вариантов выполнения. Эти бинарники можно гонять в профилировщиках и смотреть как изменяется производительность.

@arrowdodger:
arrowdodger

Внезапно узнал, что фряшный hwpmc(4) умеет выплевывать данные в формате, который понимает KCachegrind.
wiki.freebsd.org

@asmer:
asmer

Кто-нить скажет, как можно отмониторить потребление памяти в питоне?

@qnikst:
qnikst

жалко, что в отчёте не выводится среднее время (т.е. процент проведённый в функции/кол-во вызовов) хотя может я опять не умею готовить профилировщик

@asmer:
asmer

чем курить файлы для kcachegrind наглядно и без кедов? Чем курят эти файлы товарищи гномеры?

@chemikadze:
chemikadze

Поставил тестироваться проект под профилировщиком, пойду что ли посуду помою пока статистика собирается.