孤独的猫

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

function CPUSpeed:Double;

const

    DelayTime=500;

var

    TimerHi,TimerLo:Dword;

    PriorityCals,Priority:Integer;

begin

    PriorityClass :=GetPriorityClass(GetCurrentProcess);

    Priority :=GetThreadPririty(GetCurrentThread);

    SetPriorityClass(GetCurrentProcess,REALTIME_PRIORITY_CLASS);

    SetThreadPriority(GetCurrentThread,THREAD_THREAD_PRIORITY_TIME_CRITICAL);

    Sleep(10);

    asm

        dw 310h

        mov TimerLo,eax

        mov TimerHi,edx

    end;

    sleep(DelayTime);

    asm

        dw 310Fh

        sub eax,TimerLo

        sub edx,TimerHi

        mov TimerLo,eax

        mov TimerHi,edx

    end;

 

    SetThreadPriority(GetCurrentThread,Priority);

    SetPriorityClass(GetCurrentProcess,PriorityClass);

    Result :=TimerLo/(1000.0*DealyTime);     

end;

posted on 2008-09-13 10:50  孤独的猫  阅读(282)  评论(0编辑  收藏  举报