3 ms·
I think when you really need performance it's a great example of a time to start looking at alternative Python implementations, CPython just isn't the best choi
by JanisL 8y ago
I think when you really need performance it's a great example of a time to start looking at alternative Python implementations, CPython just isn't the best choice for a lot of tasks that actually have processing speed requirements.
- BerislavLopac 8y agoFor starters, just adding Cython and/or Numba to the code should introduce great improvements. https://rushter.com/blog/numba-cython-python-optimization/ https://rushter.com/blog/numba-cython-python-optimization/
- yen223 8y agoThe word "just" is doing a lot of work. Cython might as well be a different language.
- LyndsySimon 8y agoI generally don’t agree with the aversion to the word “just”, butbin this case you’re absolutely correct. Cython is a different language.
- JanisL 8y agoAfter working in the Python speed optimization space as a consultant for a while I have come to see Cython as not really being the right answer for a lot of situations. The main reason is that CPython is slow but Cython really is quite heavily constraining you to the CPython runtime. Cython is significantly different enough to not be Python but it isn't the language I'd want to choose (C/C++/Rust) for going the whole way with foreign function interfacing (I might blog about this again sometime). Sure it's easy to get started with it but I feel like the maintenance costs are higher than people think. Numba on the other hand has a few nice use cases (where "nice" means close to Pareto-efficient improvement), but I tend to just be using PyPy if I'm going with JIT approach. If for some reason I had to use CPython but had a few bottleneck functions that could be sped up with Numba I'd strongly consider it.