Как использовать Нимпроф?

В одном из моих проектов Nim у меня проблемы с производительностью. Я сейчас пытаюсь использовать nimprof чтобы увидеть, что происходит. у меня есть import nimprof в моем основном исходном файле, и я собираю с --profiler:on, Когда я запускаю программу, я вижу сообщения:

writing profile_results.txt...
... done

Тем не мение, profile_results.txt содержит только это:

total executions of each stack trace:
Entry: 1/1 Calls: 2741/2741 = 1.0e+02% [sum: 2741; 2741/2741 = 1.0e+02%]

Время выполнения составляло около 1 минуты - так что я не думаю, что просто недостаточно времени, чтобы что-то попробовать. Есть ли способ получить что-то более значимое из nimprof?

1 ответ

Вам нужно добавить флаг компилятора --stackTrace:on, или не будет никаких имен функций или номеров строк для анализа.

1.0e+02% - это просто глупый способ сказать 100%. В нем говорится, что потребовалось много стековых образцов, и все они были одинаковыми, что неудивительно.

Что вам нужно, так это увидеть образец. Это должно появиться ниже линии выше. Он покажет вам, в чем проблема.

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

Другие вопросы по тегам