Johnny's Software Lab

Johnny's Software Lab

We help you deliver fast software

  • Home
  • Performance
    • 2 Minute Reads
    • C++ Performance
    • Standard Library and Performance
    • Algorithms and Performance
    • Toolchain and Performance
    • Help the Compiler
    • Performance Analysis Tools
    • Computational Performance
    • Low Level Performance
    • Parallelization
    • Multithreaded Performance
    • Performance Contest
  • Debugging
  • Developer Tools
  • Vectorization Workshop
  • Need help?
  • Talks
  • Contact
  • About us
Menu

All posts by Ivica Bogosavljević

About Ivica Bogosavljević

Senior Software Engineer with 10 years of experience active in the domain of Linux and bare-metal based embedded systems. His professional focus is application performance improvement - techniques used to make your C/C++ program run faster by using better algorithms, better exploiting the underlying hardware, and better usage of the standard library, programming language, and the operating system.

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

Posted on July 12, 2020March 19, 2022Author 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?

Posted on July 5, 2020March 19, 2022Author Ivica BogosavljevićPosted in Low Level Performance, Performance7 Replies

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

Posted on June 28, 2020March 19, 2022Author Ivica BogosavljevićPosted in Low Level Performance, Performance1 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

Posted on June 21, 2020March 19, 2022Author 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

Posted on June 12, 2020March 19, 2022Author Ivica BogosavljevićPosted in Help the Compiler, Low Level Performance, Performance, Toolchain and Performance2 Replies

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.

FlameGraphs: Understand where your program is spending time

Posted on June 6, 2020March 19, 2022Author Ivica BogosavljevićPosted in Developer Tools, Performance, Performance Analysis ToolsLeave a Reply

Learn about FlameGraphs, a great tool that will help you quickly find slow functions in your program.

MOSH – a simple SSH replacement that works when network conditions are bad

Posted on May 31, 2020March 19, 2022Author Ivica BogosavljevićPosted in Developer Tools3 Replies

Connection keeps dropping with SSH? Read about mosh, a simple addition to SSH that can keep your connection survive the rough network environment.

Link Time Optimizations: New Way to Do Compiler Optimizations

Posted on May 27, 2020May 28, 2025Author Ivica BogosavljevićPosted in Memory Footprint, Performance, Toolchain and Performance6 Replies

Traditional compilation-linking cycle generates binaries that work fine, but in case you need more speed, you need to learn about link time optimizations. Here we talk about what link time optimizations are, how to enable them and what improvements to expect.

Make your programs run faster by better using the data cache

Posted on May 22, 2020March 20, 2023Author Ivica BogosavljevićPosted in Low Level Performance, Performance17 Replies

We investigate how the data cache influences the performance of your program, talk about ways for you to write faster programs by better leveraging the data cache.

A story about error recovery a.k.a those boring recurring bugs and what to do about them

Posted on May 9, 2020March 19, 2022Author Ivica BogosavljevićPosted in ReliabilityLeave a Reply

I believe everyone has some kind of problem or failure in their system that happens from time to time, that is not that terrible but it hurts the system. This is a short post about exactly that kind of problems and what we did to fix them. My company uses a very large continuous integration…

Read

Posts pagination

← Previous Page 1 … Page 7 Page 8

Like what you’re reading? Follow us!

  • 9 Things Every Fresh Graduate Should Know About Software Performance
  • The messy reality of SIMD (vector) functions
  • An optimizing compiler doesn’t help much with long instruction dependencies
  • Growing Buffers to Avoid Copying Data
  • Performance Debugging with llvm-mca: Simulating the CPU!

Recent Posts

  • 9 Things Every Fresh Graduate Should Know About Software Performance
  • The messy reality of SIMD (vector) functions
  • An optimizing compiler doesn’t help much with long instruction dependencies
  • Growing Buffers to Avoid Copying Data
  • Performance Debugging with llvm-mca: Simulating the CPU!

Recent Comments

  • Min Hsu on Performance Debugging with llvm-mca: Simulating the CPU!
  • Luke Hofstetter on Growing Buffers to Avoid Copying Data
  • Tor on An optimizing compiler doesn’t help much with long instruction dependencies
  • Ivica Bogosavljević on Link Time Optimizations: New Way to Do Compiler Optimizations
  • Geert Bosch on Link Time Optimizations: New Way to Do Compiler Optimizations

Archives

  • September 2025
  • July 2025
  • May 2025
  • March 2025
  • January 2025
  • December 2024
  • October 2024
  • August 2024
  • June 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • March 2023
  • February 2023
  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • July 2022
  • June 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020

Categories

  • 2 Minute Reads
  • Algorithms and Performance
  • C++ Performance
  • Computational Performance
  • Data Structure Performance
  • Debugging
  • Developer Tools
  • Help the Compiler
  • Kernel Space and Performance
  • Low Level Performance
  • Memory Footprint
  • Memory Subsystem Performance
  • Multithreaded Performance
  • Parallelization
  • Performance
  • Performance Analysis Tools
  • Performance Contest
  • Reliability
  • Standard Library and Performance
  • System Design
  • Toolchain and Performance
  • Vectorization

Meta

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

©2025 Johnny's Software Lab | WordPress Theme by Superb WordPress Themes