тестирование Python (командная строка)

1

У меня есть программа в python 3.6, которую я сделал для запуска в linux. Мне нужно было знать, сколько CPU, памяти и т.д. Оно потреблялось, когда оно было выполнено (в командной строке), вы могли бы мне помочь?

Спасибо

Примечание. Извините за используемые теги, я не был уверен, какие из них

Теги:
python-3.x
benchmarking

2 ответа

1

Для основных экспериментов вы можете использовать %timeit с интерпретатором ipython. Для высокоточных низкоуровневых - perf. Для всего, что есть в статье, есть статья, посвященная теме в документации.

  • 0
    "перф" показать процессор, память и т.д? Не могли бы вы показать пример?
  • 0
    @DiegoCardoso - это мощный профилировщик для Linux, он не будет отображать трассировки стека Python, только нативные. Лучший учебник, с которым я столкнулся, это brendangregg.com/perf.html
0

Для таймерных одиночных линий вы можете использовать магическую функцию python %timeit. (Вы также можете использовать несколько строк, но это даст результат для полного выполнения, а не для каждого оператора)

Однако для подробного описания вы можете использовать cProfile. Вы можете прочитать описание здесь.

Пример кода, который может вам помочь:

[Sample.py]

import time
print('Hello!')
time.sleep(2)
print('Thanks for waiting!')

cProfile может помочь вам профилировать вашу программу, написанную на sample.py. Запустите свой файл python, как показано ниже, с вашего терминала linux.

user@this-pc$ python3 -m cProfile sample.py 

Выход:

Hello!
Thanks for waiting!
         6 function calls in 2.001 seconds

   Ordered by: standard name

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000    2.001    2.001 sample.py:1(<module>)
        1    0.000    0.000    2.001    2.001 {built-in method builtins.exec}
        2    0.000    0.000    0.000    0.000 {built-in method builtins.print}
        1    2.001    2.001    2.001    2.001 {built-in method time.sleep}
        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}

Надеюсь, это вам поможет.

Ура!

  • 0
    Большое спасибо за помощь. Это очень помогло. Но в последний раз, где я вижу потребление процессора и памяти в примере?
  • 0
    Я не уверен, возможно ли потребление памяти на оператор в cProfiler. Может быть, вы можете проверить это: pypi.org/project/memory_profiler
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню