简短版本:我想知道是否有可能以及如何最好地利用特定于 CPU 的 DLL 中的指令?
稍微长一点的版本: 从比方说 Microsoft 下载(32 位)DLL 时,似乎一种尺寸适合所有处理器。
这是否意味着它们是严格按照最低公分母(即 操作系统支持的最低平台)? 或者是否有一些技术用于在 DLL 中导出单个接口(interface)但利用 幕后 CPU 特定代码以获得最佳性能?如果是这样,它是如何完成的?
最佳答案
我不知道任何标准技术,但如果我必须做这样的事情,我会在 DllMain() 函数中编写一些代码来检测 CPU 类型并填充跳转表带有指向每个函数的 CPU 优化版本的函数指针。
当 CPU 类型未知时,还需要一个最小公分母函数。
您可以在此处的注册表中找到当前的 CPU 信息:
HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor
关于windows - 在 DLL 中使用 cpu 特定功能有哪些标准技术?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/131128/