Skip to content

Profiling v1.2

Choose a tag to compare

@Vivy33 Vivy33 released this 02 Oct 00:21
· 37 commits to new since this release

这是一个重要的版本更新,对核心架构进行了重构,引入了异步处理和内存池机制,显著提升了性能和稳定性。

✨ 新功能 (Features)

  • 异步符号解析: 实现了独立的符号化处理线程和异步处理队列,将符号解析从主循环中剥离,大幅降低了主循环的延迟。
  • 内存池机制: 引入了内存池 (mempool) 来管理内存分配,减少了 malloc 和 free 的调用开销,提升了内存使用效率和性能。
  • 延迟直方图: 新增了延迟直方图功能,并可以将其输出到独立的日志文件中,方便对性能瓶颈进行分析。
  • 配置优化: 增加了直方图日志路径的配置选项。

🐛 Bug 修复 (Bug Fixes)

  • 修正了部分头文件的引用路径问题。
  • 增加了内存分配失败时的错误日志,方便问题排查。

🚀 性能优化与重构 (Performance & Refactoring)

  • 异步样本处理: 将样本处理改为异步推送到队列,降低了 perf 事件采集的延迟。
  • 移除清理守护进程: 简化了部署和管理,使用 systemd 服务替代了原有的清理守护进程。
  • 代码结构优化: 移除了未使用的头文件引用,调整了代码格式,提升了代码的可读性和可维护性。

This is a major version update that refactors the core architecture, introducing asynchronous processing and a memory pool mechanism to significantly improve performance and stability.

✨ New Features

  • Asynchronous Symbol Resolution: Implemented a separate symbol resolution thread and an asynchronous processing queue to offload symbol resolution from the main loop, greatly reducing main loop latency.
  • Memory Pool Mechanism: Introduced a memory pool (mempool) to manage memory allocation, reducing the overhead of malloc and free calls and improving memory efficiency and performance.
  • Latency Histogram: Added a latency histogram feature that can be output to a separate log file for easier analysis of performance bottlenecks.
  • Configuration Optimization: Added a configuration option for the histogram log path.

🐛 Bug Fixes

  • Fixed incorrect include paths for some header files.
  • Added error logging for memory allocation failures to facilitate troubleshooting.

🚀 Performance & Refactoring

  • Asynchronous Sample Processing: Changed sample processing to be pushed asynchronously to a queue, reducing the latency of perf event handling.
  • Removed Cleanup Daemon: Simplified deployment and management by replacing the cleanup daemon with a systemd service.
  • Code Structure Optimization: Removed unused header file references and adjusted code formatting to improve readability and maintainability.