Clément Grégoire

@lectem.bsky.social

French C++ developer, consultant & co-founder @ siliceum. Performance optimization, multithreading, rendering APIs and game engines. I know too much about Webkit and JS for my own good. I do reverse engineering for fun!

Today a new episode of "Web sucks"! When handling import of an external library, ESBuild generates some kind of import table for the whole library. But since it needs to mimick ESM modules, it creates the "exports" object using Getters instead of properties.

So UE5 has a tool that generates perf reports, with a whole Metadata generation thing (in XML) that allows to customize reports. But it still displays averages for timings everywhere. Oh, and their perf bench tool is implemented using 3layers of different technologies.

Finally took the time to buy a licence for Fork. Truly the best UI for git, as it's the only one that never disappointed me. It's only missing Linux support but otherwise well worth its price. @fork_dev@mastodon.social

New blog post! "Load store conflicts", in which we look at some performance sensitive code that has surprisingly dramatic performance swings based on the compiler and the microarchitecture used. Reposts appreciated! zeux.io/2025/05/03/l...

Load-store conflicts

meshoptimizer implements several geometry compression algorithms that are designed to take advantage of redundancies common in mesh data and decompress quickly - targeting many gigabytes per second in...

zeux.io

This is the third time I find issues due to codebases using rpmalloc this year... Spinlocking without any kind of pause/yield is such a bad idea. One of my threads got stuck for 4.5s !!!! At this point, I can only advise to stop using rpmalloc.

Bild

One thing people really like about Superluminal is that it Just Works, and we’re trying hard to get that same experience on Linux. But this platform sometimes really feels like it’s actively fighting against anything “just working” and it would really prefer you Do The Work tyvm.

I'm always surprised by the fact that the first answer to "we have perf problems" is to change the language. I mean, going native is obvious. But why didn't they start by using a proper profiler with instrumentation is beyond me.

TypeScript@typescriptlang.org · last yr.

Today we're thrilled to announce our effort to port the TypeScript compiler and language service to native code, gaining a 10x speed boost in build times and editor responsiveness! devblogs.microsoft.com/typescript/t...

Lost almost a day due to newer DbgHelp versions suddenly failing to load my .pdb files... Turns out they changed a small check that now requires all sizes to be 8bytes aligned. The intent was clearly to check that alignment of array entries was correct, but it ended up checking the size too...