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
  • Need help?
  • Talks
  • Contact
  • About us
Menu

All posts tagged general purpose systems

Crash course introduction to parallelism: the algorithms

Crash course introduction to parallelism: the algorithms

Posted on January 4, 2021March 19, 2022Author Ivica BogosavljevićPosted in Parallelization, 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
Excessive copying in C++ and your program’s speed

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

Posted on September 26, 2020March 19, 2022Author Ivica BogosavljevićPosted in C++ Performance, 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.

The price of dynamic memory: Allocation

The price of dynamic memory: Allocation

Posted on July 25, 2020March 19, 2022Author Ivica BogosavljevićPosted in C++ Performance, Performance, Standard Library and Performance4 Replies

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

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

Make your programs run faster: avoid function calls

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

Link Time Optimizations: New Way to Do Compiler Optimizations

Link Time Optimizations: New Way to Do Compiler Optimizations

Posted on May 27, 2020March 19, 2022Author Ivica BogosavljevićPosted in Memory Footprint, Performance, Toolchain and Performance3 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

Make your programs run faster by better using the data cache

Posted on May 22, 2020April 12, 2022Author Ivica BogosavljevićPosted in Low Level Performance, Performance13 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

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

Like what you’re reading? Follow us!

  • Frugal Programming: Saving Memory Subsystem Bandwidth
  • What is faster: vec.emplace_back(x) or vec[x] ?
  • When an instruction depends on the previous instruction depends on the previous instructions… : long instruction dependency chains and performance
  • The memory subsystem from the viewpoint of software: how memory subsystem affects software performance 2/3
  • The memory subsystem from the viewpoint of software: how memory subsystem affects software performance 1/3

Recent Posts

  • Frugal Programming: Saving Memory Subsystem Bandwidth
  • What is faster: vec.emplace_back(x) or vec[x] ?
  • When an instruction depends on the previous instruction depends on the previous instructions… : long instruction dependency chains and performance
  • The memory subsystem from the viewpoint of software: how memory subsystem affects software performance 2/3
  • The memory subsystem from the viewpoint of software: how memory subsystem affects software performance 1/3

Recent Comments

  • Ivica Bogosavljević on The quest for the fastest linked list
  • Ivica Bogosavljević on Make your programs run faster by better using the data cache
  • Matthew Tedder on The quest for the fastest linked list
  • etiennemlb on Make your programs run faster by better using the data cache
  • JuYi on Speedscope: visualize what your program is doing and where it is spending time

Archives

  • January 2023
  • 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

Meta

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

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