無論我嘗試什麼,我都無法得到一個簡單的計時器。如何查看一段代碼在沒有外部庫的情況下運行需要多少毫秒?定時功能
我曾嘗試:
time_t total = static_cast<time_t>(0.0f);
for(int i = 0; i < 10; ++i)
{
time_t start = time(0);
for(int b = 0; b < 100; ++b)
{
newMesh.IsValid();
}
time_t end = time(0);
total += (end - start);
}
time_t average = total/10;
printf("Average time of Knight IsValid check %d\n", average);
這大約需要15秒,說花了1毫秒。我也嘗試過:
std::clock_t total = static_cast<time_t>(0.0f);
for(int i = 0; i < 10; ++i)
{
std::clock_t start = std::clock();
for(int b = 0; b < 100; ++b)
{
newMesh.IsValid();
}
std::clock_t end = std::clock();
total += (end - start);
}
std::clock_t average = total/10;
printf("Average time of Knight IsValid check %d\n", average);
但我被告知那是時鐘滴答,不適合剖析?
上有[cppreference.com](http://en.cppreference.com/w/cpp/chrono/steady_clock/now),我一個非常簡單的例子認爲會做你需要的。 – 5gon12eder
似乎沒有chrono?我正在使用Visual Studio 2012. – marsh
這是一個C++ 11功能。也許你需要爲GCC添加一個特殊的編譯器標誌,比如'-std = C++ 11'或者升級你的編譯器。這將是值得的事情。 – 5gon12eder