'Standard' vapor website drops 1.5% of requests, even at concurrency of 100!

BigInt.+ isn't particularly bad, but it isn't particularly clever either. GMP and similar implementations have hand-unrolled assembly loops for these core operations, which can easily be a two-to-three times faster than compiler-generated code (in any language--carry propagation introduces a second loop-carried dependency, and compilers don't generally do well with converting CF into a physical register to test the loop criterion and then back into a flag). So I would expect a modest load difference from that, and also from allocation pressure (but it would also be pretty easy to fix this if it's important for some real workload).

4 Likes