11 ms·
a 10% drop in performance with bounds checks removed, mind you - so if anything the bounds checks are improving performance.
by glittershark 4y ago
a 10% drop in performance with bounds checks removed, mind you - so if anything the bounds checks are improving performance.
- pantalaimon 4y agoThe more likely explanation is that the test is bunk. Or maybe the unsafe access acts like volatile in C and disables any optimization/reordering because the compiler thinks it’s accessing a register.
- Jweb_Guru 4y agoUnsafe accesses do not act that way, they compile to exactly the same code as array accesses in C. The tests aren't bunk. There are a variety of reasons why the assertions generated by array index checks can be useful for LLVM, and there is also a fair amount of noise in any end to end test like this. The main point is that it clearly isn't a primary bottleneck (which should be pretty obvious in a test that takes 30 ms and performs under 2000 bounds checks).