name 'profiler_reset';
{$LINK prof_lib_core}
function test_func1: integer;
var
i: integer;
begin
WriteLn('from func1');
for i:=0 to 100000000 do random(i);
Result:=0;
end;
function test_func2: integer;
begin
WriteLn('from func2');
Result:=0;
end;
procedure dummy;
begin
end;
begin
profiler_init;
WriteLn('from main');
test_func1;
WriteLn('from main');
test_func2;
WriteLn('from main');
dummy;
profiler_reset;
end.
Вроде работает ) на простом
ПС: куда только это поток 32 байта на функцию девать 🤔
упаковать бы в 16 байт 🤔?
Хм... а ведь я могу взять однопоточное приложение, например, ZCAD, и вставить счётчик вместо кода профилирования и тем самым смогу оценить количество вызовов всех функций в программе.... чтобы примерно понимать к чему готовиться... ух и крутая тулза ProcessMemoryMap 🔥
Cpu-view добью для лазаря, зарелизю хексвьюху и её сделаю базовой в РММ, ещё удобнее станет
Пустой GUI-проект Lazarus вызывает 368 тысяч функций во время цикла "старт-стоп" 😁
@zamtmn А ZCAD, чтобы просто запуститься и завершиться - 54млн раз ) Загрузить и выгрузить Москву - 550млн раз )
кстати, патч как влияет на пересборку компилера\ртл? тоже интрументит сам себя?
сделал чтобы не влияло, пересобирается сам собой
по старту\стопу лазаруса можешь дать цифру? для утоления любопытства
Не понял? 54млн - не оно? Это я запустил и завершил сразу
это зкад. я лазарус имею ввиду
Обсуждают сегодня