Johny's Software Lab

Johny's Software Lab

Resources on making your system faster, more reliable and easier to debug

  • Home
  • Performance
  • Debugging
  • Reliability
  • Developer Tools
  • Training
  • Contact
  • About us
Menu

All posts tagged performance

2-minute read: How is Big O notation relevant on modern systems?

2-minute read: How is Big O notation relevant on modern systems?

Posted on January 10, 2021January 10, 2021Author Ivica BogosavljevićPosted in PerformanceLeave a Reply

Big O notation is commonly used to describe algorithm performance. But modern hardware makes performance analysis much harder than it used to be. In this short article we give three interesting examples to illustrate the limits of big O notation.

2-minute read: What is faster, std::endl or ‘\n’?

2-minute read: What is faster, std::endl or ‘\n’?

Posted on December 9, 2020December 11, 2020Author Ivica BogosavljevićPosted in PerformanceLeave a Reply

A few days ago I wrote a small app to illustrate one of the articles I was preparing. Basically the program was loading a file from the hard disk, sorting it, and then outputting to another file only unique values (by omitting duplicates). The function for writing unique values to a file looks like this:…

Read

Talk: The Price of Dynamic Memory in C and C++

Posted on November 28, 2020November 28, 2020Author Ivica BogosavljevićPosted in PerformanceLeave a Reply

Ivica Bogosavljević from Johny’s Software Lab gave a talk on November 26th, 2020 as part of C++ User Group Osnabrück related to the performance price the developers pay when they are using dynamic memory in C and C++.

Use explicit data prefetching to faster process your data structure

Use explicit data prefetching to faster process your data structure

Posted on November 11, 2020November 11, 2020Author Ivica BogosavljevićPosted in PerformanceLeave a Reply

When processing (searching, inserting etc) your data structure, if you are accessing it in random-access fashion, the performance will suffer due to many data cache misses. Read on how to use the explicit data prefetching to speed up access to your data structure.

Multitime: a small utility to measure your program’s runtime

Multitime: a small utility to measure your program’s runtime

Posted on October 23, 2020November 1, 2020Author Ivica BogosavljevićPosted in Developer Tools, PerformanceLeave a Reply

Multitime is a tool that you can use to repeat a command several times, and get additional information about its runtime: mean, standard deviation etc. Read this short article to get you started,

Excessive copying in C++ and your program’s speed

Excessive copying in C++ and your program’s speed

Posted on September 26, 2020September 28, 2020Author Ivica BogosavljevićPosted in PerformanceLeave a Reply

We talk about C++ and its weakness for temporary objects and excessive copying. We also give some tips on how to avoid them and make your program faster.

Make your programs run faster: avoid expensive instructions

Make your programs run faster: avoid expensive instructions

Posted on September 13, 2020September 13, 2020Author Ivica BogosavljevićPosted in PerformanceLeave a Reply

We will talk about expensive instructions in modern CPUs and how to avoid them to speed up your program.

Tune your program’s speed with profile guided optimizations

Tune your program’s speed with profile guided optimizations

Posted on September 5, 2020September 5, 2020Author Ivica BogosavljevićPosted in PerformanceLeave a Reply

Profile guided optimizations are a compiler-supported optimization technique that is easy to use and will make your program run faster with little effort. Here you will learn how to enable it on your project and what kind of improvements you can expect.

Process polymorphic classes in lightning speed

Process polymorphic classes in lightning speed

Posted on August 30, 2020January 6, 2021Author Ivica BogosavljevićPosted in Performance6 Replies

We investigate what is the best way to store polymorphic objects in a container for fast access

The price of dynamic memory: Memory Access

The price of dynamic memory: Memory Access

Posted on August 10, 2020August 10, 2020Author Ivica BogosavljevićPosted in PerformanceLeave a Reply

If your program uses dynamic memory, its speed will depend on allocation time but also on memory access time. Here we investigate how memory access time depends on the memory layout of your data structure. We also investigate ways to speed up your program by laying out your data structure optimally.

Posts navigation

Page 1 Page 2 Next →

Like what you’re reading? Follow us!

Recent posts

  • 2-minute read: How is Big O notation relevant on modern systems?
  • Crash course introduction to parallelism: the algorithms
  • Making your program run faster in a multithreaded environment
  • 2-minute read: the Magic Touch of Parallel Algorithms
  • 2-minute read: What is faster, std::endl or ‘\n’?

About me

Johny’s Software Lab LLC is a software development consulting house specializing in software performance. If you or your developer team needs help on how to make your C or C++ program run faster, or you are missing out important deadlines because of problems with performance, this is the right place to be.

Recent Posts

  • 2-minute read: How is Big O notation relevant on modern systems?
  • Crash course introduction to parallelism: the algorithms
  • Making your program run faster in a multithreaded environment
  • 2-minute read: the Magic Touch of Parallel Algorithms
  • 2-minute read: What is faster, std::endl or ‘\n’?

Recent Comments

  • Rama on 2-minute read: the Magic Touch of Parallel Algorithms
  • Ivica Bogosavljević on Process polymorphic classes in lightning speed
  • Zekses on Process polymorphic classes in lightning speed
  • Ivica Bogosavljević on Process polymorphic classes in lightning speed
  • Zekses on Process polymorphic classes in lightning speed

Archives

  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020

Categories

  • Debugging
  • Developer Tools
  • Memory Footprint
  • Performance
  • Reliability

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org

©2021 Johny's Software Lab | Theme by SuperbThemes.Com