Skip to main content

13 posts tagged with "Software Testing"

View All Tags

Enhancing Application Performance, Strategies for Optimization

· 13 min read
Dmitry Turmyshev
Product Manager | Developer Experience and Software Quality

TL;DR: True optimization requires verification. Improving application speed is a wasted effort if a subsequent code change brings back the bottleneck. BitDive uses runtime traces to create deterministic Performance Regression tests, ensuring your optimizations stick and mission-critical logic remains fast in every build.


Application Performance Optimization

Imagine your app as a sleek sports car in a high-stakes race. Every millisecond of lag is like a hiccup in the engine, potentially costing you the lead, and in this case, valuable users and revenue. But fear not, digital speed demons! We're about to pop the hood and reveal the secrets of turbocharged app performance. From code optimization tricks that would make a Formula 1 engineer jealous, to scaling strategies that could handle a million users without breaking a sweat, we're covering it all.

Using Flame Graphs to Visualize Method Execution Times in Distributed Systems

· 5 min read
Evgenii Frolikov
Senior Java Architect | Expert in High-Load Systems & JVM Internals

TL;DR: The Trace is the Test. In distributed microservices, BitDive captures cross-service spans and transforms them into deterministic JUnit Replay Plans. By using flame graphs as the blueprint, BitDive allows you to verify complex distributed logic end-to-end as Real Runtime Data.


At BitDive.io, we leverage flame graphs not for traditional CPU profiling, but for visualizing the time (in milliseconds) that each method in a span consumes. This approach is especially suited for distributed systems with microservices running across different servers and processors. In this post, we will explain why flame graphs are effective for this use case, how they can help uncover bottlenecks in distributed architectures, and why this method could be more suitable for your system's needs.

Unlocking Performance Bottlenecks with Flame Graphs

· 8 min read
Dmitry Turmyshev
Product Manager | Developer Experience and Software Quality

TL;DR: Flame Graphs are not just for visualization; they are the blueprint for Automated JUnit Testing. BitDive uses the same instrumentation technology that creates these graphs to record method-level inputs and outputs, transforming "passive observability" into Automated Verification.


Interactive CPU Flame Graph - Visualizing Java stack traces and performance bottlenecks with BitDive

Imagine you're an engineer at a bustling tech company, racing against time to make your app lightning-fast. Your code is a maze, and somewhere in there lurks a sneaky performance bottleneck. Enter flame graphs: the secret weapon of modern software optimization. Born from the brilliant mind of Brendan Gregg, these visual tools have become the go-to for tech giants and startups alike. They're not just graphs; they're x-ray vision for your code, revealing hidden CPU hogs that could be costing your business millions. In a world where milliseconds can make or break user experience (and profits), flame graphs have emerged as the unsung heroes of the enterprise tech world. Curious about how they're transforming the way we build and optimize software? Let's dive in and uncover the fiery truth behind these game-changing tools.