Измерение степени ассоциативности кэш-памяти

#include <stdio.h>
#include <windows.h>

int main()
{
    FILE* f;
    fopen_s(&f, "as.txt", "w");
    LARGE_INTEGER begin, end, time, t_sec;
    int blocksize = 1024, offset = 1024 * 1024, fragment = 32;
    int *a = new int[offset / 4 * fragment];
    QueryPerformanceFrequency(&t_sec);
    for (int n = 1; n <= fragment; n++)
    {
        QueryPerformanceCounter(&begin);
        for (int k = 0; k < 512 * 512; k++)
            for (int i = 0; i < blocksize / n / 4; i++)
                for (int j = 0; j < n; j++)
                    *(a + i + j * offset / 4) = i;
        QueryPerformanceCounter(&end);
        time.QuadPart = end.QuadPart - begin.QuadPart;
        printf("%d: %lf sec\n", n, (double)time.QuadPart / (double)t_sec.QuadPart);
        fprintf(f, "%d: %lf sec\n", n, (double)time.QuadPart / (double)t_sec.QuadPart);

    }
    return 0;
}

Напишите, пожалуйста, комментарии к коду, или хотя бы объясните, как работает. Код не мой.


Ответы (0 шт):