2 ms·
It was slow because at first I put the import inside the function. Moving it out improved the python performance to 20ms (as I mentioned in another comment). T
by hasenj 9y ago
It was slow because at first I put the import inside the function. Moving it out improved the python performance to 20ms (as I mentioned in another comment).
The javascript version runs in 15ms.
> In the real world, things like haversine are implemented as C extensions
Having to write C-extensions is, well a point of friction, and adds complexity.
If you just used a native language to begin with, the simple straight forward code would work just fine.
Btw the source is here, and it also includes the csv file. https://bitbucket.org/hasenj/geodb/src https://bitbucket.org/hasenj/geodb/src
- tychver 9y agoYeah, that'll do it! C extensions are a core part of Ruby. A big chunk of the std lib is implemented in C. You shouldn't be afraid of writing a tiny bit of C. Ruby and Python are scripting languages. They're literally designed for scripting another language. The JIT for Ruby 3 is well underway, so in a bit it'll be a complete non-issue anyway.