Можно установить ссылку на Сценарии. Библиотека времени выполнения и затем использует FileSystemObject. Это имеет метод DeleteFile и метод FileExists.
См. статью MSDN здесь .
Это можно сделать с помощью внешнего модуля под названием lscallproftree
В этой статье объясняется, как: CherryPy - CacheGrind
С моим результирующим кодом, который выглядит так:
...
if profile:
import cProfile
import lsprofcalltree
profileFileName = 'Profiles/pythonray_' + time.strftime('%Y%m%d_%H%M%S') + '.profile'
profile = cProfile.Profile()
profile.run('pilImage = camera.render(scene, samplePattern)')
kProfile = lsprofcalltree.KCacheGrind(profile)
kFile = open (profileFileName, 'w+')
kProfile.output(kFile)
kFile.close()
profile.print_stats()
else:
pilImage = camera.render(scene, samplePattern)
...
Если кто-то знает способ сделать это, не требующий внешнего (т.е. не поставляемого с Python) модуля, мне все равно было бы очень интересно узнать об этом.
If what you're actually trying to do is see what parts of your code could be optimized for speed, and you can randomly pause it in the debugger, this method works. It may be surprising, but you don't need very many stackshots.
Вы можете использовать декоратор profilestats.profile
( $ pip install profilestats
) - простую оболочку для модуль pyprof2calltree (ребрендинг lsprofcalltree.py
):
from profilestats import profile
@profile
def func():
# do something here
Скрипт можно запустить как обычно. profilestats
создает два файла: cachegrind.out.profilestats
и profilestats.prof
в форматах, совместимых с KCachegrind и cProfile, соответственно.
С помощью cProfile вы также можете профилировать существующие программы, не создавая отдельный скрипт профилирования. Просто запустите программу с профилировщиком
python -m cProfile -o profile_data.pyprof script_to_profile.py
и откройте данные профиля в kcachegrind с помощью pyprof2calltree, чей переключатель -k автоматически открывает данные в kcachegrind
pyprof2calltree -i profile_data.pyprof -k
. Например, профилирование всего сервера пастера и веб-приложения будет выполнено следующим образом
python -m cProfile -o pyprof.out `which paster` serve development.ini
pyprof2calltree может быть установлен с помощью easy_install.