4 ms·
> Show HN: Python can make 3M+ WebSocket keys per second > This article is about optimizing a tiny bit of Python code by replacing it with its C++ counterpart.
by phoe-krk 3y ago
> Show HN: Python can make 3M+ WebSocket keys per second
> This article is about optimizing a tiny bit of Python code by replacing it with its C++ counterpart.
So it's C++ rather than Python.
- keithalewis 3y agoBingo.
- sdiepend 3y agoThe article was posted by "cprogrammer1994", that should've been a hint!
- phoe-krk 3y agoThe first "C" stands for "Cython". /s
- cprogrammer1994 3y agoC stands for, well, C :) also, I do not use Cython.
- sovietmudkipz 3y agoIt’s cool that languages support this kind of stuff. So if you’re writing python the employs this technique and you still want to keep the “OS agnostic” characteristic of python does that mean you’d have to compile multiple C++ binaries and check the OS to see which one to run?
- yw3410 3y agoYes, though hopefully it's been packaged up by the distro otherwise you'll end up having dependency problems if you compiled against a wrong libc or something else.
- lukevp 3y agoAlternatively, you could compile the C++ (or rust or zig) to WebAssembly, and a single binary would run anywhere.
- rat9988 3y agoWWouldn't you lose some of the performance benefit?
- sovietmudkipz 3y agoThanks for this. This is something I wouldn’t have considered.
- jcarrano 3y agoYes, that's one of the ways one is supposed to optimize Python. Writing a tiny performance-sensitive part of a Python app in C/C++ is a possibility that many people do not think about when they decide they are going to develop the whole app in C/C++ and can be a much a smarter choice.
- phoe-krk 3y agoIn a way, but at this point your stack is Python/C++, where Python serves the role of a high-level language and C++ serves the role of the fast one. You're not optimizing Python-as-a-language at that point; you're FFIing to another codebase written in a different language. So, if anything, the title should say "Python, when linked with C++ code, can make (...)"