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

RR: The magic of record and replay debugging

RR: The magic of record and replay debugging

Posted on August 16, 2020August 16, 2020Author Ivica BogosavljevićPosted in DebuggingLeave a Reply

Learn about RR, a tool that will change the way you debug. RR will allow you to record bugs once and replay them anywhere. It will also allow you to reverse-execute your program, a feature that will simplify your debugging and your life.

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.

The price of dynamic memory: Allocation

The price of dynamic memory: Allocation

Posted on July 25, 2020August 28, 2020Author Ivica BogosavljevićPosted in PerformanceLeave a Reply

We talk about how to speed up your program if your program is taking time to allocate or release memory.

Lessons in debugging: observe how programs interact with the Linux kernel with STRACE

Lessons in debugging: observe how programs interact with the Linux kernel with STRACE

Posted on July 12, 2020August 16, 2020Author Ivica BogosavljevićPosted in Debugging, Developer ToolsLeave a Reply

There are a subset of problems in software development that can be traced back to system calls or signals. Learn about STRACE, tool that let you trace system calls and signals and that can help you quickly figure out the origin of those problems.

How branches influence the performance of your code and what can you do about it?

How branches influence the performance of your code and what can you do about it?

Posted on July 5, 2020December 31, 2020Author Ivica BogosavljevićPosted in PerformanceLeave a Reply

In this articles we investigate on how branches influence the performance of the code and what can we do to improve the speed of our branchfull code.

CPU Dispatching: Make your code both portable and fast

CPU Dispatching: Make your code both portable and fast

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

CPU dispatchingh is all about making your code portable and fast. We will talk about how to make your detect features your CPU has at is disposal and select the fastest function for that particular CPU without a need to recompile your software.

GDB: A quick guide to make your debugging easier

GDB: A quick guide to make your debugging easier

Posted on June 21, 2020July 27, 2020Author Ivica BogosavljevićPosted in Debugging, Developer ToolsLeave a Reply

We will talk about how to profit from some of GDB’s very useful albeit less known features.

Make your programs run faster: avoid function calls

Make your programs run faster: avoid function calls

Posted on June 12, 2020August 29, 2020Author Ivica BogosavljevićPosted in PerformanceLeave a Reply

Function calls are not cheap operations and for time critical code it is better to avoid them. This article explores techniques you can use to avoid function calls thus speeding up your code.

Posts navigation

← Previous 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