4

電源を入れてからWindowsが起動するまでの時間を教えてください。これを遡及的に決定する方法はありますか (つまり、ウィンドウが起動したら)? BIOS/CMOS は最後の起動時間を保持していますか? RDTSC から、マシンがどれくらいの時間実行されているかを確認し、Windows の起動時間を差し引くことはできますか?

4

2 に答える 2

0

BootTimerまたはBootRacerを試して、どちらかが希望どおりに動作することを確認してください。

Windowsの起動後にこれを判断できるとは思いません。前回の起動時間を保存しているBIOSを知りません。しかし、最近のマシンでは、電源を入れてからOSブートローダーを呼び出すまでの時間(基本的にPOSTルーチンの実行にかかる時間)が数秒より長い場合は、問題があります。

マシンがオンラインで使用可能である正確な時間を取得するために、これをプログラムで実行しようとしていますか?POSTにかかる数秒に起因する不正確さは、大きな違いを生むとは思えません。ベンチマークまたは最適化の目的でタイミングをとっている場合は、これら2つのユーティリティのいずれかが機能するはずです。

于 2010-11-06T07:51:15.037 に答える
0

GetTickCount()で電源投入からの時間を取得します。次に、起動時に Windows がアクセスするファイルのタイムスタンプを取得します (たとえば、windows\bootstat.dat)。コードは以下です。私のマシンでは、正確に聞こえる 16 秒と表示されています。

#include <stdio.h>
#include <windows.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <time.h>

int main()
{
    struct __stat64 st;
    _stat64("c:\\windows\\bootstat.dat", &st);

    return printf("%d\n", st.st_mtime - (time(NULL) - GetTickCount()/1000));
}
于 2010-11-06T21:42:43.623 に答える