我已经阅读了许多关于多核编程方法的好问题和答案。我熟悉并发,IPC,MPI等但我需要的是如何测量加速的建议,这将有助于制作一个花时间编写此类代码的业务案例。请不要回答“用单核代码然后用多核代码运行它并找出差异”。这既不是衡量绩效改进的科学也不是可靠的方法。如果你知道可以做一些繁重工具的工具,请提及它们。有关方法的答案会更合适,但列表工具也可以。
答案 0 :(得分:1)
在Visual Studio 2010 Ultimate中,有一个Concurrency可视化工具,可以显示您的应用程序使用了多少核心(以及CPU的数量),以及在同步时浪费了多少内核。其余的都是有益的工作。 我相信英特尔提供了一个非常相似的工具,但我不完全确定它是如何工作的。
答案 1 :(得分:1)
在实施某些功能之前,很难衡量一项改进。将涉及一定数量的受过教育的猜测。
我认为该公司已经确定该应用程序/网站速度慢并且花钱。我还假设您已经排除了其他明显的性能改进(数据库往返,缓存,Web前端有效负载等 - 而不了解您的应用程序。)
我的第一步是在有问题的慢代码周围添加几行秒表代码,并在实时环境中记录几千次操作的响应时间。将您看到的平均数字与您想要达到的响应时间进行比较。
然后在相同的代码(例如.NET上的.NET)上运行代码分析工具,以查看代码在大部分时间内花费的时间。将可并行化代码所花费的时间百分比应用于秒表的平均时间,您将很好地了解它是否可以更快地制作。显然,这不是将该数字除以核心数量的情况,因为存在同步开销,并且将在现实世界中运行其他任务。但这应该给你足够接近估计它是否可行。