代码之家  ›  专栏  ›  技术社区  ›  fnCzar

多核开发中并行度加速测试技巧

  •  0
  • fnCzar  · 技术社区  · 14 年前

    我已经阅读了许多关于多核编程的好问题和答案,如TOS等。我熟悉并发性、IPC、MPI等,但我需要的是关于如何衡量速度的建议,这将有助于制定一个花费时间编写此类代码的商业案例。请不要回答“先用单核代码运行,然后用多核代码运行,找出区别”。这既不是衡量绩效改进的科学方法,也不是可靠方法。如果你知道一些工具可以起重,请提及它们。与方法论相关的答案将更合适,但列出工具也可以。

    2 回复  |  直到 14 年前
        1
  •  1
  •   realworldcoder    14 年前

    在你实施之前,很难衡量一个改进。会有一些有教育意义的猜测。

    我想,这家公司已经确定,这个应用程序/网站速度慢,而且成本高。我还假设您已经排除了其他明显的性能改进(数据库往返、缓存、Web前端负载等,而不了解您的应用程序)。

    我的第一步是在所讨论的慢代码周围添加几行秒表代码,并在实时环境中记录超过几千个操作的响应时间。将您看到的平均数字与您希望达到的响应时间进行比较。

    然后在同一代码上运行一个代码分析工具(例如.NET的dottrace),以查看代码的大部分时间都花在哪里。将在可并行代码中花费的时间百分比应用于秒表的平均时间,您将对是否可以更快地进行了解。显然,这不是用核心数除以这个数字的情况,因为存在同步开销,而且在现实世界中还将运行其他任务。但这应该给你一个 足够接近 估计是否可行。

        2
  •  1
  •   Puppy    14 年前

    在Visual Studio 2010 Ultimate中,有一个并发可视化工具,它将向您展示应用程序正在使用的内核数量(以及CPU的数量),以及同步时浪费的内核数量。其余的都是有益的工作。 我相信英特尔提供了一个非常相似的工具,但我不完全确定它是如何工作的。