【问题标题】:virtual machine or dual boot when measuring code performance测量代码性能时的虚拟机或双启动
【发布时间】:2014-01-25 10:37:31
【问题描述】:

我正在尝试测量代码性能(基本上是使用线程时的加速)。到目前为止,我在单独的机器上通过 windows 或 linux 使用 cygwin。现在我有能力设置一个新系统,但我不确定我应该有双启动(windows 和 ubuntu)还是虚拟机。

我担心的是我是否可以通过 linux 虚拟机测量可靠的加速和可能的其他东西(性能监视器),或者我是否必须在 linux 中正常启动。

有人有意见吗?

【问题讨论】:

    标签: linux windows virtual-machine


    【解决方案1】:

    如果您的“线程”严重依赖调度,我不建议您使用 VM。从宿主机操作系统的角度来看,VM只是一个正常的进程,所以guest内核及其调度器会受到宿主内核调度的影响。

    如果您的“线程”更像是并行计算,我认为使用 VM 是可以的。

    【讨论】:

    • 实际上我想运行基于 pthread 的程序并检查速度是如何随线程数量增加的。我猜这是并行计算,所以如果我不接触调度,我可以从 VM 获得可靠的结果?但是,如果我开发了一些影响调度的定制,我不应该能够得到可靠的东西吗?我理解正确吗?
    • 你是对的。如果您要评估调度的细节,VM 不适合您。
    • 感谢您的回答!顺便说一句,虽然不完全在主题中,但您对通过 Cygwin 进行的性能测量有任何想法吗?它们可靠吗?
    • Cygwin 建立在非常复杂的 UNIX-Windows 兼容层之上。在绩效衡量方面,它是我最后使用的平台。
    【解决方案2】:

    对我来说,直接在系统上启动并避免在您的情况下使用 VM 会更安全。即使您不使用虚拟机,也很难在多线程中获得两次相同的结果,因为系统正在用于操作系统任务,因此与虚拟机同时运行 2 个操作系统甚至会增加不确定性结果。例如,在 VM 上运行测试 1000 次会导致高估 100 次,而在单独的操作系统上可能只有 60 次。您需要知道这种不确定性是否可以接受。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多