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, we can help you. Please use the contact form to contact us.
About the engineers
My name is Ivica Bogosavljević and I am a senior software developer active in domain of embedded systems. I have been working on embedded projects based on bare metal and Linux for the last ten years based on MIPS and x86 chips.
My professional interests lie in the domain of system performance improvements and debuggability. This means particularly:
Related to increasing the speed of your program or your system:
- Performance bottleneck analysis, both for own code and code provided by third parties
- HW caching subsystem: how to design your algorithm so they use the underlying cache subsystem optimally? How to detect problems with inappropriate use of caching subsystem? How to configure your running system so the caching subsystem is used optimally?
- HW pipelining: how to design your algorithm so pipeline is used optimally? How to detect problems in the CPU pipeline that cause program slow-down?
- HW branch-prediction: how to optimize branch prediction in your program?
- Architecture specifics
- Compiler configuration: how to use the compiler to generate the fastest possible code?
- Kernel configuration
- Memory subsystem configuration: optimal memory allocation, memory fragmentation, page fault avoidance
- Standard library configuration
- Development strategies for writing fast code in C and C++
- Techniques for writing fast code applicable to all programming languages
- Library tuning
- Speed optimizations in multi-threaded environment
- Speed optimizations in multi-processor environment
- Optimizations for work with external devices
- Optimizations for NUMA systems
- Leverage of parallelism
If you have any questions or problems in these domains, feel free to contact me.