语言无关的基准测试工具,用于测量速度和内存消耗

问题描述 投票:0回答:1

我正在尝试使用不同的语言编写命令行程序,其中哪些程序完全相同。现在我想知道哪一个是最高性能的。是否有一种与语言无关的工具可以帮助我测量速度和内存消耗?如果它是跨平台的会更好。谢谢!

benchmarking
1个回答
1
投票

在任何Unix系统上,time都是一个完整的可执行文件,非常适合命令行工具。 time或其他类似工具的一些实现打印出内存高水位线。

在Linux上,perf stat ./my_executable将计时(挂钟和总CPU时间),并可以显示其他指标,如分支错误预测,缓存未命中和其他硬件性能计数器事件。还有内核软件计数器,如页面错误,上下文切换和CPU迁移。 (有助于注意来自其他进程的干扰,或有助于注意实际效果的多线程程序。)

perf record ./my_executable将进行基于样本的分析以显示热点。它有更多选项来获取调用堆栈快照,因此您可以找出哪些父函数实际负责进行昂贵的函数调用。

出于某种原因,如果没有调试符号,perf report不希望让你深入到反汇编,可能是因为x86机器代码不能向后反汇编,只能从已知的起点向前反转。但它有很多起点,并拒绝使用它们。

汇编语言基本上与语言无关,特别是对于提前编译的二进制文件。在解释代码中,没有与您的源对应的机器指令。在JIT编译的代码中有,但它们只存在于运行时,而不是存在于任何地方的文件中。

© www.soinside.com 2019 - 2024. All rights reserved.