The Life of a Programmer

Pitfalls of Performance Testing

Beware the casual performance test, it will lie to you. It is simple to write something that gives you timings, but it is difficult to

What is reference counting?

Objects are created, live for a while, and then destroyed. While creation is fairly clear, the when and how of destruction is fairly language dependent.

What is an atomic operation?

We all know that operations in a computer happen one after the other. Having multiple CPUs and instruction reordering tends to obfuscate the issue. Technically

CPU Memory – Why do I need a mutex?

Multi-threaded programming calls for semaphores, synchronized blocks, mutexes, or whatever your language happens to call them. Most of us basically understand why we need them: