【问题标题】:check the performance of an exe through code通过代码检查 exe 的性能
【发布时间】:2011-11-11 13:55:25
【问题描述】:

我想通过多次运行一个应用程序(我有它的 exe,没有源代码)来检查它的性能,并可能比较结果,在互联网上找到很多关于这个主题的东西,

由于我必须多次输入,我认为通过代码(没有使用语言的栏)来完成它可以让事情变得更容易,因为我可能需要重复很多次, 谁能帮我开始???

注意:性能是指内存使用量、cpu 以及可能花费的时间!

(我目前在 windows 上使用 perfmon,通过使用必要的计数器检查这些参数并手动记录下来)

谢谢

【问题讨论】:

    标签: c++ windows performance


    【解决方案1】:

    这在很大程度上取决于您的操作系统。在 Linux 上,您可以使用 time 实用程序。 strace 可能会帮助您了解所使用的系统调用。

    我不知道 Windows 系统上的等效项。

    【讨论】:

    • 我想要它用于 Windows,抱歉没有提及,我目前使用 perfmon(Windows 内置)手动完成,
    【解决方案2】:

    我认为您可以创建一个 bash/batch 脚本来根据需要使用不同的输入多次调用您的程序。

    然后,您可以让脚本创建一个 CSV 文件,其中包含执行程序所用的时间(例如开始日期和结束日期)。 CSV 文件通常与 Excel 等大多数电子表格程序兼容,因此我认为这可以让您更轻松地处理数据,例如创建均值和标准差。

    关于内存和 CPU 使用率我没有太多要说的,但如果你在 Windows 中,看看 Process Explorer 和 Process Monitor 不会有什么坏处(你可以在 this 中找到它们)页)。我认为它们可能会帮助您完成任务。

    最后,如果您使用的是 Linux,我认为您可以使用 grep 和 top 命令来收集一些统计信息。

    问候,

    费利佩

    【讨论】:

    • 我正在使用 Windows,这是我拥有的一个 exe,你说得对.. 进程资源管理器具有该功能,但正如我使用这些工具所提到的,我必须手动完成,但我想自动化它:) 所以我正在寻找另一种方法:)
    • 嗯,我认为这个link 可能会有用。也许 PSInfo 或 PSList 会为您解决问题...它们是命令行程序,因此您可以解析它们的结果并创建一些自动测试脚本。
    【解决方案3】:

    如果您想要准确的结果,Rational Purify(在 Windows 上)或 valgrind(在 Linux 上)是最好的工具;它们在虚拟机中运行您的应用程序,可以指示该虚拟机进行精确的周期计数。

    【讨论】:

      【解决方案4】:

      another post 中提到了一个名为timethis.exe 的实用程序,用于在Windows 下测量时间。也许它对您的目的有用。

      【讨论】:

        【解决方案5】:

        我使用 perform im using 以自动方式手动记下, 也就是说,我使用了 dot net 中可用的性能计数器类,并定期获取特定应用程序的样本,并使用这些值生成一个图表。..

        谢谢:)

        【讨论】:

          猜你喜欢
          • 2013-08-31
          • 1970-01-01
          • 2017-05-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-04-07
          • 2021-10-14
          • 2010-12-06
          相关资源
          最近更新 更多