4 ms·
Jane Street must be so happy today! I think this opens up a whole new host of fast applications on ocaml. I wonder how this will affect ReScript
by no_wizard 4y ago
Jane Street must be so happy today! I think this opens up a whole new host of fast applications on ocaml.
I wonder how this will affect ReScript
- KMag 4y agoPresumably, in cases where performance really matters, they're using single-threaded processes pinned to cores and shared memory ring buffers to communicate across processes. It ends up looking not that much different from a high performance C++ project, except for the lack of full address space sharing. Modern MMUs don't require full TLB flushes when switching address spaces, and physically tagged cache lines allow the ring buffers to be shared in cache even if they're mapped at different virtual addresses in the different processes. Also, you're guaranteed to not have false sharing, and there's zero contention for locks within malloc/free. I don't mean to suggest there are no advantages to full address space sharing, but they're both fewer and less than one would initially assume.