5 ms·
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
by dr_zoidberg 10y 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.
- saynsedit 10y agoYour 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.
- vram22 10y ago"Dropping into C or Cython was a non-goal." Why not Cython?
- saynsedit 10y agoat the time, I preferred to write it completely in C++ than have a mixed Python/Cython codebase.
- dr_zoidberg 10y agoI 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?