Hacker News new | ask | show | jobs
by dr_zoidberg 3535 days ago
If you wanted to run in PyPy, you should've written your code to be PyPy-friendly from the beginning. Standard CPython optimizations don't usually fare well in PyPy, and you can end up with even slower speed if you follow those. Still, you didn't mention profiling the hotspots of your server, nor using Cython to optimize them.

I don't see how writing an optimzed web server in Python becomes oxymoronic -- it can still be the fastest performing python server, and have a valid use case for those that want to work in Python.

1 comments

Your PyPy point is fair. A PyPy-oriented optimization effort could have improved performance. N/s by what magnitude though.

I did extensive benchmarking until there were no more hot spots, didn't help. Dropping into C or Cython was a non-goal. For dev an embedded Python web server is convenient but it doesn't have to be fast. When it comes to performance, it always makes more sense to use a native-code web server in production.

I mentioned profiling and benchmarking because they were missing. Totally agree with you, Python implemented servers are usually used in dev ops, and then you move to a "standard" http-server (be that nginx, apache, whatever).

I still think that a Python server can have it's use, and there's nothing wrong in trying to make it as fast as posible.

I'm curious, why were C/Cython non-goals?

"Dropping into C or Cython was a non-goal."

Why not Cython?

at the time, I preferred to write it completely in C++ than have a mixed Python/Cython codebase.