首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    再次实现了一个Lua性能分析器

    和Go不同的是,我这次实现的Lua性能分析器和linux下的perf一样,是一个独立的程序。 这样可以做到对目标程序无侵入,并且在目标程序死循环的情况下,依然可以正常运行。...只需要在bpf程序中获取C的callstack和Lua的callstack,然后在用户空间将它们合并。 最后,按照火焰图的格式进行输出并生成火焰图。 整个过程并不复杂。...而bpf中的内置API只能在栈帧指针保留的情况下轻易获取整个callstack。...如果不同,bpf_get_stackid将选择要么丢弃当前槽位上的旧callstack,要么丢弃新插入的callstack。...由于我们可以与用户空间进行通信,我们可以选择将旧的callstack发送回用户空间,并让新的callstack占据槽位。 ---- 将Lua调用栈和C调用栈也不是一帆风顺的。

    43220

    go pprof使用

    pprof 简介 工欲善其事必先利其器, java 中有 async-profile、 arthas、jstack/jmap/jstat 等一系列工具来辅助排查性能问题 在 linux 下,常用的调试定位工具...profile.proto 读取分析样本的集合,并生成报告以可视化并帮助分析数据(支持文本和图形报告) profile.proto 是一个 Protocol Buffer v3 的描述文件,它描述了一组 callstack...seconds=60 Saved profile in /root/pprof/pprof.pprof-amd64-linux.samples.cpu.001.pb.gz File: pprof-amd64...-linux Type: cpu Time: Jun 27, 2023 at 7:56pm (CST) Duration: 60.14s, Total samples = 32.90s (54.71%).../pprof.pprof-amd64-linux.goroutine.001.pb.gz 即可跳转浏览器查看(有top占用、火焰图等信息) 备注: 这里生成的文件也可以采取 curl 生成: curl

    12710
    领券