_gjrn's comments

HugoDaniel | 4 years ago | on: Windows 93

Does not work in Safari, instead a message is presented saying:

"Safari is teh new Internet Explorer"

HugoDaniel | 4 years ago | on: Data-oriented design or why you might shoot yourself in the foot with OOP (2009)

Sure there are great benefits in sequential access, some of these can even be calculated to some extent.

However your reply does not answer the question.

Do you know of any CPU that has specific instructions to handle cache? How can you be sure that you are gaming cache lines when even the mnemonics are mostly virtualised through all the pipeline and jump/memory pattern predictions?

HugoDaniel | 4 years ago | on: Data-oriented design or why you might shoot yourself in the foot with OOP (2009)

The clang documentation on vectorisation has a few examples

https://llvm.org/docs/Vectorizers.html#slp-vectorizer

Cache precedence and cache line optimisations are black magic, either you know specifically the cpu that you are targeting, or rely on hopium techniques like cache oblivious algorithms that try to reap some benefits.

The baseline is to measure, always, before and after optimisation(s). These "Data oriented design" approaches are very hard to measure and change rapidly because they have a profound impact on a codebase, rarely ever change "just one thing" and they err to the less intuitive and less readable side.

HugoDaniel | 4 years ago | on: Data-oriented design or why you might shoot yourself in the foot with OOP (2009)

One of the cool things in C is the space it leaves for the compiler to perform optimisations.

Beyond what is observable, C compilers have almost free reins to do whatever they want, so long as the observable things are kept the same (output/memory address values, etc...).

Data oriented design was a smart-kid anti-pattern thing back then, but I wonder if compilers have evolved enough so that it is useless nowadays? It is by all measures a useless optimization, since it can be placed hidden from the observable object properties. (i.e. who cares if it is an array of structs or a struct of arrays, so long as the vec3 is still a { x, y, z }?)

HugoDaniel | 4 years ago | on: Fluid Paint

This is great!

Is there any place where it is possible to read more about this painting techniques for code?

HugoDaniel | 4 years ago | on: Rust 1.x seems to not always be backward compatible in practice

Similar things happen in a lot of other languages, sometimes it is not even a matter of a changing/evolving spec. (like TypeScript, or any other language that improves type checking or compile/interpretation validations at each minor version - breaking old code because it no longer type-checks/validates).

Sometimes I feel that C is the only language that can benefit from compound gains over time, their spec is tight and sees sparse nuanced improvements in wide intervals of time.

HugoDaniel | 4 years ago | on: Extreme HTTP Performance Tuning

"Disabling these mitigations gives us a performance boost of around 28%. "

This can't be serious. Can someone flag this article? Highly inappropriate.

page 2