如何在go程序中运行runtime/pprof并查看同一程序中的数据?

myss37ts  于 2023-09-28  发布在  Go
关注(0)|答案(1)|浏览(101)

正常的方法是用途:

go tool pprof

但我的用例是这样的:我使用的是golang JavaScript解释器,比如https://github.com/robertkrimen/ottohttps://github.com/rogchap/v8go
当我运行一些用户提供的JavaScript时,我想分析它是否使用了太多的CPU,我需要杀死go例程。
因此,JavaScript花费30秒的有效情况是,它建立了一个http连接,并且只是闲置在那里,没有cpu使用,直到连接最终完成。
所以我不能杀掉任何需要太长时间的东西。我只需要杀死那些占用cpu或消耗大量内存的JavaScript。

ruyhziif

ruyhziif1#

正如沃尔克所说,这将是相当涉及到这样做,在纯粹的去。
也许你可以用不同的方法来解决这个问题,并使用其他机制来限制js解释器的cpu/内存消耗?
你可以fork并让js解释器在不同的进程中运行。这样你就可以使用标准的Linux机制来控制和隔离进程的资源消耗(cgroups,nice,memory limits,docker等)

相关问题