Optimizing code and algorithms is more effective and less expensive at boosting performance than upgrading hardware. It is not unusual for our team to boost performance by an order of magnitude after several days of review.
Every year the number of CPU cores in server machines increases, but most custom-built applications don't benefit because they are written to use one. We track down every opportunity for parallel processing: routines rewritten, data structures compacted and indexed, critical sections handled to avoid deadlock.
Working with data in memory is much faster than loading it from disk, but memory is scarce. We know when to use an array instead of a list or dictionary, when a hash table needs a custom allocator, and when pre-loading less data yields better results. We identify bottlenecks through profiling and critical code review.
We structure code and compiler instructions to maximize use of CPU cache and cut processing time, using techniques such as data structure tuning, NUMA awareness and processor affinity.
Dealing with large amounts of data? Optimal file access methods, solution-specific in-memory structures and tailored file layout and indexing can be combined to yield the best solution.
Send us the slowest thing you run. We'll tell you how fast it could be.