mirror of
https://github.com/overte-org/overte.git
synced 2025-08-10 15:53:28 +02:00
Improve timing tests with averages
This commit is contained in:
parent
0f6162d683
commit
3619821b82
1 changed files with 46 additions and 25 deletions
|
@ -131,63 +131,84 @@ const glm::vec3 randVector() {
|
||||||
// Do some basic timing tests and report the results
|
// Do some basic timing tests and report the results
|
||||||
void runTimingTests() {
|
void runTimingTests() {
|
||||||
// How long does it take to make a call to get the time?
|
// How long does it take to make a call to get the time?
|
||||||
const int numTests = 1000000;
|
const int numTimingTests = 3;
|
||||||
int* iResults = (int*)malloc(sizeof(int) * numTests);
|
|
||||||
float fTest = 1.0;
|
|
||||||
float* fResults = (float*)malloc(sizeof(float) * numTests);
|
|
||||||
QElapsedTimer startTime;
|
QElapsedTimer startTime;
|
||||||
float elapsedNSecs;
|
float elapsedNSecs;
|
||||||
float elapsedUSecs;
|
float elapsedUSecs;
|
||||||
|
|
||||||
|
qCDebug(interfaceapp, "numTimingTests: %d", numTimingTests);
|
||||||
|
|
||||||
startTime.start();
|
startTime.start();
|
||||||
elapsedNSecs = (float)startTime.nsecsElapsed();
|
elapsedNSecs = (float)startTime.nsecsElapsed();
|
||||||
qCDebug(interfaceapp, "QElapsedTimer::nsecElapsed() ns: %f", (double)elapsedNSecs);
|
qCDebug(interfaceapp, "QElapsedTimer::nsecElapsed() ns: %f", (double)elapsedNSecs / numTimingTests);
|
||||||
|
|
||||||
// Test sleep functions for accuracy
|
// Test sleep functions for accuracy
|
||||||
startTime.start();
|
startTime.start();
|
||||||
|
for (int i = 0; i < numTimingTests; i++) {
|
||||||
QThread::msleep(1);
|
QThread::msleep(1);
|
||||||
|
}
|
||||||
elapsedNSecs = (float)startTime.nsecsElapsed();
|
elapsedNSecs = (float)startTime.nsecsElapsed();
|
||||||
qCDebug(interfaceapp, "QThread::msleep(1) ms: %f", (double)(elapsedNSecs / NSECS_PER_MSEC));
|
qCDebug(interfaceapp, "QThread::msleep(1) ms: %f", (double)(elapsedNSecs / NSECS_PER_MSEC / numTimingTests));
|
||||||
|
|
||||||
startTime.start();
|
startTime.start();
|
||||||
|
for (int i = 0; i < numTimingTests; i++) {
|
||||||
QThread::sleep(1);
|
QThread::sleep(1);
|
||||||
|
}
|
||||||
elapsedNSecs = (float)startTime.nsecsElapsed();
|
elapsedNSecs = (float)startTime.nsecsElapsed();
|
||||||
qCDebug(interfaceapp, "QThread::sleep(1) s: %f", (double)(elapsedNSecs / NSECS_PER_MSEC / MSECS_PER_SECOND));
|
qCDebug(interfaceapp, "QThread::sleep(1) s: %f", (double)(elapsedNSecs / NSECS_PER_MSEC / MSECS_PER_SECOND / numTimingTests));
|
||||||
|
|
||||||
|
const int numUsecTests = 1000;
|
||||||
startTime.start();
|
startTime.start();
|
||||||
|
for (int i = 0; i < numUsecTests; i++) {
|
||||||
usleep(1);
|
usleep(1);
|
||||||
|
}
|
||||||
elapsedNSecs = (float)startTime.nsecsElapsed();
|
elapsedNSecs = (float)startTime.nsecsElapsed();
|
||||||
qCDebug(interfaceapp, "usleep(1) us: %f", (double)(elapsedNSecs / NSECS_PER_USEC));
|
qCDebug(interfaceapp, "usleep(1) (1000x) us: %f", (double)(elapsedNSecs / NSECS_PER_USEC / numUsecTests));
|
||||||
|
|
||||||
startTime.start();
|
startTime.start();
|
||||||
|
for (int i = 0; i < numUsecTests; i++) {
|
||||||
usleep(10);
|
usleep(10);
|
||||||
|
}
|
||||||
elapsedNSecs = (float)startTime.nsecsElapsed();
|
elapsedNSecs = (float)startTime.nsecsElapsed();
|
||||||
qCDebug(interfaceapp, "usleep(10) us: %f", (double)(elapsedNSecs / NSECS_PER_USEC));
|
qCDebug(interfaceapp, "usleep(10) (1000x) us: %f", (double)(elapsedNSecs / NSECS_PER_USEC / numUsecTests));
|
||||||
|
|
||||||
startTime.start();
|
startTime.start();
|
||||||
|
for (int i = 0; i < numUsecTests; i++) {
|
||||||
usleep(100);
|
usleep(100);
|
||||||
|
}
|
||||||
elapsedNSecs = (float)startTime.nsecsElapsed();
|
elapsedNSecs = (float)startTime.nsecsElapsed();
|
||||||
qCDebug(interfaceapp, "usleep(100) us: %f", (double)(elapsedNSecs / NSECS_PER_USEC));
|
qCDebug(interfaceapp, "usleep(100) (1000x) us: %f", (double)(elapsedNSecs / NSECS_PER_USEC / numUsecTests));
|
||||||
|
|
||||||
startTime.start();
|
startTime.start();
|
||||||
|
for (int i = 0; i < numTimingTests; i++) {
|
||||||
usleep(1000);
|
usleep(1000);
|
||||||
|
}
|
||||||
elapsedNSecs = (float)startTime.nsecsElapsed();
|
elapsedNSecs = (float)startTime.nsecsElapsed();
|
||||||
qCDebug(interfaceapp, "usleep(1000) us: %f", (double)(elapsedNSecs / NSECS_PER_USEC));
|
qCDebug(interfaceapp, "usleep(1000) us: %f", (double)(elapsedNSecs / NSECS_PER_USEC / numTimingTests));
|
||||||
|
|
||||||
startTime.start();
|
startTime.start();
|
||||||
|
for (int i = 0; i < numTimingTests; i++) {
|
||||||
|
usleep(1001);
|
||||||
|
}
|
||||||
|
elapsedNSecs = (float)startTime.nsecsElapsed();
|
||||||
|
qCDebug(interfaceapp, "usleep(1001) us: %f", (double)(elapsedNSecs / NSECS_PER_USEC / numTimingTests));
|
||||||
|
|
||||||
|
startTime.start();
|
||||||
|
for (int i = 0; i < numTimingTests; i++) {
|
||||||
usleep(1500);
|
usleep(1500);
|
||||||
|
}
|
||||||
elapsedNSecs = (float)startTime.nsecsElapsed();
|
elapsedNSecs = (float)startTime.nsecsElapsed();
|
||||||
qCDebug(interfaceapp, "usleep(1500) us: %f", (double)(elapsedNSecs / NSECS_PER_USEC));
|
qCDebug(interfaceapp, "usleep(1500) us: %f", (double)(elapsedNSecs / NSECS_PER_USEC / numTimingTests));
|
||||||
|
|
||||||
startTime.start();
|
|
||||||
usleep(2500);
|
|
||||||
elapsedNSecs = (float)startTime.nsecsElapsed();
|
|
||||||
qCDebug(interfaceapp, "usleep(2500) us: %f", (double)(elapsedNSecs / NSECS_PER_USEC));
|
|
||||||
|
|
||||||
startTime.start();
|
startTime.start();
|
||||||
usleep(15000);
|
usleep(15000);
|
||||||
elapsedNSecs = (float)startTime.nsecsElapsed();
|
elapsedNSecs = (float)startTime.nsecsElapsed();
|
||||||
qCDebug(interfaceapp, "usleep(15000) us: %f", (double)(elapsedNSecs / NSECS_PER_USEC));
|
qCDebug(interfaceapp, "usleep(15000) (1x) us: %f", (double)(elapsedNSecs / NSECS_PER_USEC));
|
||||||
|
|
||||||
|
const int numTests = 1000000;
|
||||||
|
int* iResults = (int*)malloc(sizeof(int) * numTests);
|
||||||
|
float fTest = 1.0;
|
||||||
|
float* fResults = (float*)malloc(sizeof(float) * numTests);
|
||||||
|
|
||||||
// Random number generation
|
// Random number generation
|
||||||
startTime.start();
|
startTime.start();
|
||||||
|
|
Loading…
Reference in a new issue