Win32函式Sleep的精度測試

2021-06-16 13:37:38 字數 675 閱讀 6501

用了三種方法,第一種使用高精度效能計數器;第二種是使用多**定時器,另一種是《windows圖形程式設計》裡提供的cpu週期來獲取。推薦第一種方式測量:

先看第一種:

#include #include void main()

我的機器上為sleep(1) = 0.454ms;

sleep(10) = 9.719ms;sleep(100) = 99.541ms

下面是另外兩種供參考:

#include #include #include #include "timer.h"

#pragma comment(lib, "winmm.lib")

int i = 0;

dword start;

dword end;

#define times (1000)

void main(){

// // 1. 使用高精度定時器初始化

// //高精度定時器初始化

// 注意: 如果不執行下面的初始化為1ms的語句,將影響sleep()的精度

::timebeginperiod(1);

sleep(100);

//開始計時

start = ::timegettime();

for (i=0; i

Win32程式設計

win32 malloc函式的底層實現是win32api utf 16編碼以16位無符號整數為單位,注意是16位為乙個單位,不是乙個字元就只有16位,這個要看字元的unicode編碼處於什麼範圍而定,有可能是2個位元組,也可能是4個位元組現在機器上的unicode編碼一般就是指utf 16 以兩個位...

win32多執行緒函式記

方法名稱 openprocess 位置 kernel32.dll openprocess 函式用來開啟乙個已存在的程序物件,並返回程序的控制代碼。1.函式原型 handle openprocess dword dwdesiredaccess,access flag bool binherithand...

Win32彙編 陣列求和函式

32位陣列求和函式,esi 儲存陣列偏移,ecx 儲存陣列長度,同時用於 loop 計數,eax 返回和。386 model flat,stdcall stack 4096 exitprocess proto,dwexitcode dword data array dword 10000h,2000...