Posts from 2014
-
:
TIME_WAIT perfmon counters
I’ve built a small Windows Service which exposes perfmon counters to track sockets in TIME_WAIT state. It can be downloaded from the links later in this post. Back in 2011 I was helping a client look for issues in their systems caused … -
:
Bitten by 'scoped static initialisation' in C++ - turn on Visual Studio's C4640 warning!
Today I discovered that C++ scoped static initialisation (function level) in Visual Studio is not done in a thread safe manner. It’s the kind of thing that I should have already known but I guess I assumed that since namespace level … -
:
Practical Testing: 32 - Intrusive containers.
Back in 2004, I wrote a series of articles called “Practical Testing” where I took a piece of complicated multi-threaded code and wrote tests for it. I then rebuild the code from scratch in a test driven development style to … -
:
Practical Testing: 33 - Intrusive multi-map.
Previously on “Practical Testing”… I’m in the process of replacing STL containers with custom intrusive containers in the timer system that I have been developing in this series of articles. The idea is that the … -
:
Intrusive C++ containers
Recently, whilst continuing to improve the performance of various aspects of The Server Framework, I reached a point where I found I needed to replace some STL containers with intrusive containers which didn’t need to perform memory … -
:
Useful undocumented Visual Studio compiler switches
There are a couple of undocumented Visual Studio compiler switches which can be useful occasionally: /d1reportSingleClassLayout<name> - which produces a dump of the in memory layout of a given class /d1reportAllClassLayout - which … -
:
Efficient Multi-Threading
Performance is always important for users of The Server Framework and I often spend time profiling the code and thinking about ways to improve performance. Hardware has changed considerably since I first designed The Server Framework back … -
:
Activatable Object
I’ve written an article for Overload, one of the the ACCU’s journals. It’s based on my Efficient Multi-Threading blog post from a few weeks ago. Chris Oldwood mentioned to me about how the object described in Efficient … -
:
Surprising Slim Reader/Writer Lock thread exit issues.
I’ve been noticing a strange thing for a while on Windows 8/8.1 and the equivalent server versions. The issue occurs when I’m using a Slim Reader/Writer Lock (SRWL) exclusively in exclusive mode (as a replacement for critical … -
:
How to build a GCC Cross-Compiler
This article over on Preshing on Programming looks useful. It gives a step by step guide for building GCC cross-compilers, I expect it will save me lots of time at some point in the future. -
:
Two quite different approaches to multi-threading
I’ve been working on some code for a client recently that needs to run in a multi-threaded environment. Unfortunately it was never really written with that requirement in mind, or, more likely, the people who wrote the code knew that …