Профиль Python cProfile vs unix time - PullRequest
0 голосов
/ 26 июня 2011

Я профилирую код Python; почему он проводит больше времени в пространстве пользователя?

 </p>

<pre><code>     user@terminal$ time python main.py 

     1964 function calls in 0.003 CPU seconds

Упорядочено по: стандартному названию

ncalls totaltime percall cumtime percall имя файла: lineno (функция) 1 0,000 0,000 0,003 0,003: 1 () 1 0,000 0,000 0,000 0,000 ConfigParser.py:218(init) 1 0,000 0,000 0,001 0,001 ConfigParser.py:266(read) 30 0,000 0,000 0,000 0,000 ConfigParser.py:354(optionxform) 1 0,000 0,000 0,000 0,000 ConfigParser.py:434(_read) 15 0,000 0,000 0,000 0,000 ConfigParser.py:515(get) 15 0,000 0,000 0,000 0,000 ConfigParser.py:611(_interpolate) 15 0,000 0,000 0,000 0,000 ConfigParser.py:619(_interpolate_some) 1 0,000 0,000 0,000 0,000 config.py:32(read_config_data) 1 0,000 0,000 0,001 0,001 config.py:9(init) 6 0,000 0,000 0,000 0,000 entity.py:108(add_to_filter) 1 0,000 0,000 0,002 0,002 entity.py:24(init) 1 0,001 0,001 0,002 0,002 entity.py:39(create_inverted_index) 493 0,000 0,000 0,001 0,000 entity.py:80(beautify) 1 0,000 0,000 0,000 0,000 entity.py:84(create_bucket_lookup) 1 0.000 0.000 0.000 0.000 main.py:15 () 2 0,000 0,000 0,000 0,000 main.py:18 () 1 0,000 0,000 0,003 0,003 main.py:23(main) 1 0,000 0,000 0,000 0,000 main.py:9(get_bag_of_words) 19 0,000 0,000 0,000 0,000 {группа встроенных методов} 34 0,000 0,000 0,000 0,000 {соответствие встроенного метода} 1 0,000 0,000 0,000 0,000 {isinstance} 2 0,000 0,000 0,000 0,000 {len} 28 0.000 0.000 0.000 0.000 {метод 'добавление' объектов 'список'} 1 0.000 0.000 0.000 0.000 {метод 'close' из 'file' objects} 15 0.000 0.000 0.000 0.000 {метод 'copy' объектов 'dict'} 1 0.000 0.000 0.000 0.000 {метод 'отключить' объектов '_lsprof.Profiler'} 15 0.000 0.000 0.000 0.000 {метод 'find' из 'str' объектов} 19 0.000 0.000 0.000 0.000 {метод 'isspace' из 'str' объектов} 24 0.000 0.000 0.000 0.000 {метод 'join' объектов 'str'} 49 0,000 0,000 0,000 0,000 {метод 'lower' из 'str' объектов} 20 0,000 0,000 0,000 0,000 {метод 'readline' объектов 'file'} 6 0,000 0,000 0,000 0,000 {метод 'replace' из 'str' объектов} 24 0.000 0.000 0.000 0.000 {method 'rstrip' из 'str' объектов} 47 0,000 0,000 0,000 0,000 {метод 'split' объектов 'str'} 9 0.000 0.000 0.000 0.000 {метод 'setswith' из объектов 'str'} 1030 0.000 0.000 0.000 0.000 {метод 'strip' из 'str' объектов} 15 0.000 0.000 0.000 0.000 {метод 'обновление' объектов 'dict'} 2 0.000 0.000 0.000 0.000 {метод 'запись' объектов 'file'} 10 0,000 0,000 0,000 0,000 {open} 2 0,000 0,000 0,000 0,000 {диапазон} 3 0,000 0,000 0,000 0,000 {уменьшить}

Готово

реальный 0m0,063s пользователь 0m0.050s sys 0m0,010s

Несмотря на то, что cProfile сообщает, что это заняло всего 0,003 секунды, почему время в Unix (sys) говорит, что оно работает за 0,01 секунды?

1 Ответ

1 голос
/ 26 июня 2011

время (1) измеряет время выполнения всего процесса, тогда как профилировщик исключает время запуска интерпретатора Python, время компиляции байт-кода и т. Д.

...