04 February 2016

Revisiting An Old Benchmark - Vector of objects or pointers

Revisiting old benchmark code

Around one and a half year ago I did some benchmarks on updating objects allocated in a continuous memory block vs allocated individually as pointers on the heap: Vector of Objects vs Vector of Pointers. The benchmarks was solely done from scratch and they’ve used only Windows High Performance Timer for measurement. But, since recently I’m interested in more professional benchmarking libraries it would be good to revisit my old approach and measure the data again.

21 January 2016

Micro benchmarking libraries for C++


After I finished my last post about a performance timer, I got a comment suggesting other libraries - much more powerful than my simple solution. Let’s see what can be found in the area of benchmarking libraries.

07 January 2016

Simple Performance Timer

When you’re doing a code profiling session it’s great to have advanced and easy to use tools. But what if we want to do some simple test/benchmark? Maybe a custom code would do the job?

Let’s have a look at simple performance timer for C++ apps.

31 December 2015

C++ Status at the end of 2015

Maybe I’ll be boring with this note, but again I need to write that this was another good year for C++!
Here’s a bunch of facts:

  • Visual Studio 2015 was released with great support for C++14/17 and even more experimental features.
  • Long-awaited GCC 5.0 was released at the beginning of the year.
  • C++ gained a huge boost is popularity around July, 3rd stable place in the Tiobe Ranking
  • At CppCon 2015 there were some really important announcements made.
  • C++17 seems to be just around the corner!
  • And one sad news...

See my full report below.

22 September 2015

Visual Studio slow debugging and _NO_DEBUG_HEAP

Verify you assumptions about tools you use!

Some time ago I was tracing a perf problem (UI code + some custom logic). I needed to track what module was eating most of the time in one specific scenario. I prepared release version of the app and I added some profiling code. I’ve used Visual Studio 2013. The app used OutputDebugString so I needed to run the debugging (F5) in order to be able to see logs in the output window (I know I know, I could use DebugView as well…)
But, my main assumption was that when I run F5 in release mode, only a little performance hit would occur. What was my astonishment when I noticed it was a wrong idea! My release-debug session pointed to a completely different place in the code…

30 August 2015

OpenGL SuperBible 7th

OpenGL Superbible 7th

Several moths ago I’ve noticed there would be another version of OpenGL Superbible. This time the 7th edition! Without much thinking I quickly I pre-ordered it. Around two weeks ago the book appeared at my doorstep so now I can share my thoughts with you.

Is this book worth buying? Is the new content described in an valuable way? Let’s see…

27 May 2015

Applying the Strategy Pattern

Let’s look at the following problem:

We are designing a drawing application. We want some objects to be automatically scaled to fit inside parent objects. For example: when you make a page wider, images can decide to scale up (because there’s more space). Or if you make a parent box narrower image needs to scale down.

What are the design and implementation choices that we can make? And, how the Strategy pattern can help?

17 April 2015

PDB Was Not Found - Linker Warning

You’ve just recompiled a 3rd party library in Visual Studio, copied the .lib file into a proper directory, added dependencies into your final project… recompiled and it worked nicely! Good. So now you can commit the changes into the main repository.

Then, unfortunately, you got a report from a build server (or from your colleague) that your recent change generated 10s of warning messages about some missing files from this new library… why is that? It worked well on your local machine! :)

Possible reason: missing PDB information.

04 April 2015

Flexible Particle System - Summary

It’s been one year since the first posts about my particle system: a demo in March and then an introduction in April. Last time I wrote about renderer updates and this was the last planned post for the series. I think most of requirements were achieved and I can be quite happy about the results. Now, it’s time to close the project - or at least - close this version, use the experience and move on!

What have I learnt over that time?

09 March 2015

Soft Skills - Book Review

Programmers are not machines that just write code. We have feeling and emotions as well! ;)

We all need to learn a lot of new things, sharpen the saw, focus, make good choices about our career path, and simply, have fun.

While most books describe the technical side of coding, not many address the psychological/business/economic side of our profession. In this niche one great book has recently appeared, it’s called “Soft Skills”. The book is written by John Sonmez from simpleprogrammer.com

Is this book worth reading?

05 March 2015


At GDC 2015 in San Francisco, Khronos announced new API for graphics and compute, previously it was called glNext… but now the official name is “Vulkan”!

I could not resist to write some comments about this new and intriguing standard that can potentially “replace” OpenGL.

03 March 2015

Flexible particle system - Renderer optimization

Finally, I managed to finish the adventure with my particle system! This time I’d like to share some thoughts about improvements in the OpenGL renderer.

Code was simplified and I got little performance improvement.

24 February 2015

Finding memory leaks with Deleaker

Since the beginning of January I’ve had a chance to play with a nice tool called Deleaker. Its main role, as can be easily decoded, is to find leaks in your native applications. I often had problems creating and maintaining custom code that tracks leaks, so Deleaker seems to be a huge relief in those situations.

Let’s see how it works and how can it help with native app development.

18 February 2015

Non Static Data Members Initialization

My short summary for non static data members initialization from modern C++. A very useful feature. Should we use it or not?

Content By Bartlomiej Filipek, Blogger platform
Any opinions expressed herein are in no way representative of those of my employers.
To provide you service this website uses cookies. By using it, you agree to this. More info.
This site contains ads or referral links, which provide me with a commission. Thank you for your understanding.