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
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.

Crash course introduction to parallelism: the algorithms

Crash course introduction to parallelism: the algorithms

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

When it comes to performance, there are two ways to go: one is to improve the usage of the existing hardware resources, the other is to use the new hardware resources. We already talked a lot about how to increase the performance of your program by better using the existing resources, for example, by decreasing…

Read
Making your program run faster in a multithreaded environment

Making your program run faster in a multithreaded environment

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

We investigate the performance impact of multithreading.

2-minute read: the Magic Touch of Parallel Algorithms

2-minute read: the Magic Touch of Parallel Algorithms

Posted on December 15, 2020December 17, 2020Author Ivica BogosavljevićPosted in Performance1 Reply

We investigate a simple way to speed up std::sort from the standard library

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.

Posts navigation

Page 1 Page 2 Page 3 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