Как я могу представить программу мультипотока в Python?

Если размер файла невелик, быстрее прочитать весь файл, а затем разделить строку:

var filestreams = sr.ReadToEnd().Split("\r\n".ToCharArray(), 
                              StringSplitOptions.RemoveEmptyEntries);
59
задан rog 17 March 2009 в 08:45
поделиться

5 ответов

Please see yappi (Yet Another Python Profiler).

37
ответ дан 24 November 2019 в 18:32
поделиться

Если Вы хорошо с выполнением небольшого количества дополнительной работы, можно записать собственный профильный класс, который реализует profile(self, frame, event, arg). Это называют каждый раз, когда функция вызвана, и можно довольно легко настроить структуру для сбора статистики от этого.

можно тогда использовать threading.setprofile для регистрации той функции на каждом потоке. Когда функция вызвана, можно использовать threading.currentThread() для наблюдения, на котором она работает. Больше информации (и готовый-к-управляемому рецепт) здесь:

http://code.activestate.com/recipes/465831/

http://docs.python.org/library/threading.html#threading.setprofile

7
ответ дан Albert 7 November 2019 в 14:58
поделиться

Вместо того, чтобы выполнить один cProfile, Вы могли работать отдельный cProfile экземпляр в каждом потоке, затем объединить статистику. Stats.add() делает это автоматически.

18
ответ дан vartec 7 November 2019 в 14:58
поделиться

Учитывая, что основные функции Ваших различных потоков отличаются, можно использовать очень полезное profile_func() декоратор от здесь .

2
ответ дан Walter 7 November 2019 в 14:58
поделиться

Я не знаю профильного приложения, которое поддерживает такую вещь для Python - но Вы могли записать класс Трассировки, который пишет файлы журнала, где Вы вставляете информацию того, когда операция запускается и когда это закончилось и сколько времени это использовало.

Это - простое и быстрое решение для Вашей проблемы.

-3
ответ дан Gambrinus 7 November 2019 в 14:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: