我想计算我的应用程序运行需要多长时间。我正在尝试使用刻度来计算经过的时间。基本上使用 PerformanceLib 和 TimerLib
Frequency = GetPerformanceCounterProperties(NULL, NULL);
StartTick = GetPerformanceCounter();
EndTick = GetPerformanceCounter();
ElapsedTicks = EndTick > StartTick ? EndTick - StartTick : StartTick - EndTick;
TimeInSeconds = (double)ElapsedTicks / Frequency;
我每次都得到 0 秒。有这方面的线索吗?预先感谢。
您必须在 .inf 文件中包含 TimerLib:
[LibraryClasses]
...
TimerLib
并且还在您的 .dcs 文件中包含正确的 lib 实现:
[LibraryClasses]
...
TimerLib|UefiCpuPkg/Library/CpuTimerLib/BaseCpuTimerLib.inf
请注意,如果在虚拟机或 QEMU 上运行,CpuTimerLib 中的 BaseCpuTimerLib 可能无法正常工作