我如何确定为什么对 SetupDiGetDeviceRegistryProperty() 的调用非常慢?
How can I determine why a call to SetupDiGetDeviceRegistryProperty() is very slow?
我打电话给SetupDiGetDeviceRegistryProperty() with the SPDRP_DEVICEDESC property and it returns TRUE.
在我的 "Intel(R) HD Graphics 530" 上调用此方法大约需要 50 毫秒,而在我的 "NVIDIA GeForce GTX 960M"(同一台笔记本电脑)上调用此方法需要 750 毫秒!
此调用仅返回一个短字符串,我认为没有充分的理由让它执行这么长时间。
由于这是一个 Win API 调用,我有什么方法可以确定是什么花了这么长时间吗?
使用@IInspectable 所建议的Windows 符号信息并在反汇编中进行跟踪有助于指出慢速函数,但它不能提供问题的解决方案,因为无法修改代码。
此外,使用 Process Monitor 有助于找到基准测试速度慢的原因。
目前,唯一可以加快调用速度的解决方法是 运行 以管理员身份进行处理。
我打电话给SetupDiGetDeviceRegistryProperty() with the SPDRP_DEVICEDESC property and it returns TRUE.
在我的 "Intel(R) HD Graphics 530" 上调用此方法大约需要 50 毫秒,而在我的 "NVIDIA GeForce GTX 960M"(同一台笔记本电脑)上调用此方法需要 750 毫秒!
此调用仅返回一个短字符串,我认为没有充分的理由让它执行这么长时间。 由于这是一个 Win API 调用,我有什么方法可以确定是什么花了这么长时间吗?
使用@IInspectable 所建议的Windows 符号信息并在反汇编中进行跟踪有助于指出慢速函数,但它不能提供问题的解决方案,因为无法修改代码。 此外,使用 Process Monitor 有助于找到基准测试速度慢的原因。
目前,唯一可以加快调用速度的解决方法是 运行 以管理员身份进行处理。