我最近将家用 PC 升级为四核 CPU 和 64 位操作系统。我以前有一些使用 C/C++ 的经验,我真的很“渴望”尝试使用一些 64 位 CPU 功能。什么是通过执行一些在 32 位单核代码中根本无法正常工作的简单操作来演示 64 位多核功能的优秀“Hello World”类型程序?
我只是想“感受一下”这些新 CPU 在极端情况下如何影响 C/C++ 代码的性能。
最佳答案
OpenMP 将是一种在 C++ 中进行多核编程的简单方法。维基百科示例并没有真正执行任何处理器密集型操作,但您可以将“cout”替换为一些独立的、长时间运行的函数。
就 64 位而言,很多性能提升将来自几个地方。
吞吐量增加,因为所有数据元素都更宽,处理器可以在任何给定时钟周期内处理更多数据。查看一些 Microsoft 的 Exchange Server 基准测试,它们现在已经转向支持 64 位,只是因为吞吐量增加令人难以置信。
更多的寄存器,由于64位架构有大量的寄存器,大部分函数参数和返回值都可以使用寄存器传递。
在 x86 ABI 中有一些 calling conventions一个或两个参数可以通过寄存器传递,其余的必须压入堆栈。使用像 cdecl 这样的通用调用约定,不会将单个参数或返回值放在寄存器中。由于堆栈位于主内存中,这可能会对性能造成很大影响。
关于c - 什么是好的多核 64 位 "Hello World"程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1654890/