Я пишу веб-приложение (http://www.checkio.org/), которое позволяет пользователям писать код питона. В качестве одной из многих метрик обратной связи я хотел бы включить профилирование при выполнении проверок этого кода. Это сделано для того, чтобы пользователи могли получить очень приблизительное представление об относительной эффективности различных решений.
Мне нужно, чтобы профиль был (разумно) детерминированным. Я не хочу, чтобы другая нагрузка на веб-сервер давала плохие показания эффективности. Кроме того, я беспокоюсь, что некоторые профилировщики не дадут хороших результатов, потому что эти короткие скрипты работают очень быстро. Модуль timeit показывает, что функция запускается тысячи раз, но я хотел бы не тратить ресурсы сервера на эти небольшие функции, если это возможно.
Неясно, какие из стандартных профилировщиков удовлетворяют этой потребности (если вообще существуют). В идеале профилировщик должен давать единицы «тиков байт-кода интерпретатора», которые будут увеличиваться на единицу для каждой инструкции байт-кода. Это будет очень грубая мера, но она отвечает требованиям детерминизма и высокой точности.
Какую систему профилирования следует использовать?