Ускорение частей существующего приложения Python с помощью PyPy или Shedskin

Я хочу улучшить скорость существующего приложения, и мне нужен совет по возможным вариантам. Приложение написано на Python, использует wxPython и упакован с py2exe(я ориентируюсь только на платформы Windows). Части приложения требуют больших вычислительных ресурсов и работают слишком медленно в интерпретируемом Python. Я не знаком с C, поэтому портирую части Code Over на самом деле не вариант для меня.

Итак, мой вопрос в основном заключается в том, есть ли у меня четкая картина моих вариантов, как я изложил ниже, или я подхожу к этому с неправильного направления?

  • Запуск с pypy: Сегодня я начал экспериментировать с Pypy — результаты впечатляют, поскольку я могу запускать большие части кода из интерпретатора pypy, и я вижу увеличение скорости в 5 раз и более без изменений кода.Однако, если я правильно понимаю, (а) Pypy с поддержкой wxpython все еще находится в стадии разработки, и (б) я все равно не могу скомпилировать его в исполняемый файл для распространения. Так что, если я не ошибаюсь, мне это кажется невозможным? Нет способа упаковать вещи так, чтобы их части выполнялись с помощью pypy?
  • Преобразование кода в RPython, перевод с помощью pypyТаким образом, следующий вариант, по-видимому, заключается в том, чтобы фактически переписать части кода на язык с ограничениями pypy, что кажется довольно большой работой. Но если я это сделаю, части кода затем могут быть скомпилированы в исполняемый файл (?), а затем я смогу получить доступ к коду через ctypes (?).
  • Другие варианты с ограниченным доступомShedskin кажется здесь популярной альтернативой, подходит ли она мне лучше? Другими вариантами, похоже, являются Cpython, Psyco и Unladen, но все они заменены или больше не поддерживаются.

5
задан Community 23 May 2017 в 11:45
поделиться