如何在 Allegro 5 中以秒为单位计算时间

How to count time in seconds in Allegro 5

我在 Allegro5 中计算时间时遇到问题。 我必须去学校做项目,在那里我将展示 shellsort,它是如何工作的以及它对数组排序的速度有多快,但有一个问题

我不知道如何以秒为单位计算时间,我做了一些这样的代码,但不起作用

ALLEGRO_TIMER *shellTimer = al_create_timer(1.0);
al_start_timer(shellTimer);

// ALGORYTM SHELLA
while (distance) {
    shellCounter++;
    for (int j = NUMBER_OF_ELEMENTS - distance - 1; j >= 0; j--) {
        pos = array[j];
        i = j + distance;
        shellCounter += 2;
        while ((i < NUMBER_OF_ELEMENTS) && (pos > array[i])) {
            array[i - distance] = array[i];
            i += distance;
            counter += 2;
        }
        array[i - distance] = pos;
        shellCounter++;
    }
    distance /= 3;
    shellCounter++;
}

shellTime = al_get_timer_count(shellTimer);
al_stop_timer(shellTimer);

当我执行它时它什么都不做,shellTime变量是一个int64_t

您可以使用 al_get_time 获取当前时间(以秒为单位),但 allegro 计时器的准确性仅与底层 os 时钟一样准确。

您真正需要的是针对这种情况的高性能计时器。看看Query performance counter

在 Windows 和 clock_gettime 在 Linux

他们会给你 nanos秒精度