title: Speeding up Parts of Existing Python App with PyPy or Shedskin
body: <p>I am looking to bring speed improvements to an existing application and I'm looking for advice on my possible options. The application is written in Python, uses wxPython, and is packaged with <code>py2exe</code> (I only target windows platforms). Parts of the application are computationally intensive and run too slowly in interpreted Python. I am not familiar with C, so porting parts of the code over is not really an option for me. </p>
  
  <p>So my question is basically do I have a clear picture of my options as I outline below, or am I approaching this from the wrong direction?</p>
  
  <ul>
  <li><strong>Running with pypy:</strong> Today I started experimenting with Pypy - the results are exciting, in that I can run large parts of the code from the pypy interpreter and I'm seeing 5x+ speed improvements with no code changes. However, if I understand correctly, (a) Pypy with wxpython support is <a href="https://groups.google.com/forum/#!topic/wxpython-dev/QSrl4MVzBTM" rel="nofollow noreferrer">still a work in progress</a>, and (b) I <a href="https://stackoverflow.com/questions/10470800/compile-pypy-to-exe">cannot compile it down to an exe for distribution anyway</a>. So unless I'm mistaken, this seems like a no-go for me? There's no way to package things up so parts of it are executed with pypy?</li>
  <li><strong>Converting code to RPython, translating with pypy</strong> So the next option seems to be actually rewriting parts of the code to the pypy restricted language, which seems like a pretty large job. But if I do that, parts of the code can then be compiled to an executable (?) and then I can access the code through ctypes (?).</li>
  <li><strong>Other restricted options</strong> Shedskin seems to be a popular alternative here, does this fit my requirements better? Other options seem to be Cpython, Psyco, and Unladen, but they are all superseded or no longer maintained.</li>
  </ul>