Могу ли я использовать dtrace в OS X 10.5, чтобы определить, какой из моих подсистем Perl вызывает наибольшее выделение памяти?

У нас довольно большая база кода Perl.

Некоторые процессы, выполняемые в течение нескольких часов (задания ETL), внезапно начали потреблять намного больше оперативной памяти, чем обычно. Анализ изменений в соответствующем выпуске - медленный и утомительный процесс. Я надеюсь выявить виновника с помощью более автоматизированного анализа.

Наша рабочая среда - Perl 5.14 на Debian squeeze.

Однако у меня есть доступ ко многим машинам с OS X 10.5. Кажется, что Dtrace и Perl прекрасно работают вместе на этой платформе. Похоже, что использование dtrace в Linux требует дополнительной работы при загрузке. Я надеюсь, что шаблоны распределения памяти будут похожи между нашей живой системой и системой Dev OS X - или, по крайней мере, достаточно похожими, чтобы помочь мне найти источник этого нового использования памяти.

Эта колода слайдов:

https://dgl.cx/2011/01/dtrace-and-perl

показывает, как использовать dtrace для отображения количества вызовов malloc из perl sub. Мне интересно отслеживать общий объем памяти, который Perl выделяет при выполнении каждой подпрограммы в течение всего времени существования процесса.

Есть идеи, как это можно сделать?

9
задан astletron 3 January 2012 в 16:49
поделиться