windows - 在 DLL 中使用 cpu 特定功能有哪些标准技术?

标签 windows optimization dll

简短版本:我想知道是否有可能以及如何最好地利用特定于 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/

相关文章:

Windows 安装程序,检查包是否存在

c++ - 使用 intel 编译器编译 DLL 时出错

C++ DLL - 打破循环依赖

python - tf.keras.optimizers.Adam 和其他具有最小化功能的优化器

algorithm - 如何解决优化问题

mysql - 使用复合索引优化查询,即使用where

C# project reference的问题

windows - WinCE 6 上的远程性能监视器

php - 如何使 php 与 postgresql 一起工作?

python - 有没有办法用 python pefile 检查 exe 是否是 dot NET ?