MyPerf4J is a Java application performance monitoring tool that uses bytecode instrumentation to collect metrics from running applications.
The tool addresses the need to quickly identify performance bottlenecks and diagnose failures in high-concurrency, low-latency systems. It works by deploying as a JavaAgent, instrumenting method calls via ASM bytecode manipulation without requiring any changes to application code. The approach captures response time metrics at the point of execution and aggregates them with second-level granularity, maintaining full fidelity of all recorded observations rather than sampling.
The tool suits teams running Java microservices that need real-time performance visibility without code modification or significant overhead. It collects method-level metrics including response time percentiles, request rates, and standard deviation, alongside comprehensive JVM metrics covering threads, memory, garbage collection, and class loading. Organizations should evaluate it if they operate high-throughput systems where the overhead of traditional profilers is unacceptable; the design targets single-threaded recording of sixteen million operations per second with sixty-three nanoseconds per record.
Development activity shows consistent engagement with the codebase through regular updates and maintenance of documentation in both Chinese and English. The project maintains active configuration and example resources to support deployment scenarios. The tool includes integration pathways with standard monitoring infrastructure such as InfluxDB and Grafana for visualization of collected metrics.