loop condition evaluation

Yes, semantically it will be evaluated on every loop. In some cases, compilers may be able to remove the condition from the loop automatically – but not always. In particular: void foo(const struct rect *r) { for (int i = 0; i < r->width * r->height; i++) { quux(); } } The compiler will not … Read more

Why should I ever use inline code? [duplicate]

Performance As has been suggested in previous answers, use of the inline keyword can make code faster by inlining function calls, often at the expense of increased executables. “Inlining function calls” just means substituting the call to the target function with the actual code of the function, after filling in the arguments accordingly. However, modern … Read more

In what situation would the AVX2 gather instructions be faster than individually loading the data?

Newer microarchitectures have shifted the odds towards gather instructions. On an Intel Xeon Gold 6138 CPU @ 2.00 GHz with Skylake microarchitecture, we get for your benchmark: 9.383e+09 8.86e+08 2.777e+09 6.915e+09 7.793e+09 8.335e+09 5.386e+09 4.92e+08 6.649e+09 1.421e+09 2.362e+09 2.7e+07 8.69e+09 5.9e+07 7.763e+09 3.926e+09 5.4e+08 3.426e+09 9.172e+09 5.736e+09 9.383e+09 8.86e+08 2.777e+09 6.915e+09 7.793e+09 8.335e+09 5.386e+09 4.92e+08 … Read more

Most Efficient Multipage RequireJS and Almond setup

I think you’ve answered your own question pretty clearly. For production, we do – as well as most companies I’ve worked with option 3. Here are advantages of solution 3, and why I think you should use it: It utilizes the most caching, all common functionality is loaded once. Taking the least traffic and generating … Read more