这更多地是一个概念性/高层次的问题,而不是特定于语言的问题。
在为将使用多个线程的高性能应用程序编写软件方面,是否应该手动检查并只将线程分配给P内核,或者只是像Alder之前那样简单地分配线程,然后让操作系统调度程序决定将它们放在哪里?
更确切地说,我的程序将是一个电脑游戏,有独立的计算昂贵的CPU线程,用于AI、路径查找等。理想情况下,我不希望这些线程在E核上,但我想知道我是否应该让操作系统来决定这类事情,而不是手动确保它。
发布于 2022-06-29 10:32:07
这可能不是一个好问题,也可能更适合于https://softwareengineering.stackexchange.com,但无论如何,这里都有一个概念性/高层次的答案。
在为高性能应用程序编写软件方面,编写依赖于平台的代码可以获得最佳的性能,即编写程序时要考虑并利用这些程序执行的硬件+o/s+运行时的特定特性。
这种方法的代价是,根据定义,代码在任何其他平台上的性能都会低于最优性能;而编写代码来挤出针对特定问题的每一滴性能都是相当困难和耗时的。
就我个人而言(所以这可能是一种观点,这是我不喜欢的),我首先编写与平台无关的代码版本并对其进行测试。只有当我确信自己无法实现必要的性能(或其他)目标时,我才会卷起袖子,将第一个版本开发成依赖于平台的版本。(嗯,我可能为了好玩而做这些额外的工作,但你明白我的意思)。
稍后,如果您想将程序移动到另一个平台,那么您已经有了平台中立版本。
https://stackoverflow.com/questions/72798007
复制相似问题