诺基亚新动作!自创开源Linux内存分析器—Memory Profiler

Linux系统下查看内存有多种方式,比如通过命令 ps ,top,free, pmap 等,或者通过/proc系统。工具类的,我们使用Valgrind 发现 Linux 程序的内存问题。

昨天,诺基亚打破“常态”,在Github上自创开源了一款Linux内存分析器—Nokia Memory Profiler!

Nokia Memory Profiler 是适用于 Linux 的内存分析器。

诺基亚新动作!自创开源Linux内存分析器—Memory Profiler

 

特征

  • 可用于分析内存泄漏,查看内存消耗的确切位置,识别临时分配并调查过多的内存碎片
  • 收集每个内容分配和释放的信息,以及完整的堆栈跟踪
  • 使用定制的堆栈展开实现,性价比明显高于其他类似工具,在某些情况下可能高出几个数量级
  • 可以将收集的数据导出为各种不同的格式; 它可以将数据导出为JSON(你可以根据需要自行分析),导出为Heaptrack(你可以使用优秀的Heaptrack GUI进行分析)还可以导出为火焰图
  • 有自己的基于Web的GUI,可用于分析
  • 可以将分析数据动态地流式传输到另一台机器,而不是在本地保存,这对于在内存受限的系统上进行分析非常有用
  • 支持AMD64,ARM,AArch64和MIPS64架构

诺基亚新动作!自创开源Linux内存分析器—Memory Profiler

 

Building

1、每晚更新安装Rust和Yarn包管理器(用于构建GUI)

2、建立:

 $ cargo build --release -p memory-profiler
 $ cargo build --release -p memory-profiler-cli

3、从二进制文件中提取target/release/libmemory_profiler.so和target/release/memory-profiler-cli

基本用法

$ LD_PRELOAD=./libmemory_profiler.so ./your_application
$ ./memory-profiler-cli server memory-profiling_*.dat

然后打开Web浏览器并将其指向http://localhost:8080以访问GUI。

如果你不想使用GUI,您还可以使用服务器公开的REST API。例如:

  • 生成泄漏分配的火焰图:
$ curl "http://localhost:8080/data/last/export/flamegraph?lifetime=only_leaked" > flame.svg
  • 将泄漏的分配导出为ASCII树状图:
$ curl "http://localhost:8080/data/last/allocation_ascii_tree?lifetime=only_leaked"
  • 将应用程序发出的三个最大分配导出到JSON
$ curl "http://localhost:8080/data/last/allocations?sort_by=size&order=dsc&count=3"
  • 导出三个最大的呼叫站点至少有10个分配,其中至少50%被泄露:
$ curl "http://localhost:8080/data/last/allocation_groups?group_allocations_min=10&group_leaked_allocations_min=50%&sort_by=all.size&count=3"

Github传送地址:https://github.com/nokia/memory-profiler

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值