Я написал простую программу на C ++, использующую цикл for для печати чисел от 1 до 100. Я хочу найти количество попаданий и пропусков TLB, происходящих для конкретной программы во время работы.Есть ли возможность получить эти данные?
Я использую Ubuntu.Я использовал перфорированный инструмент.Но это дает разные результаты в разное время.Я очень озадачен тем, какая часть моего кода приводит к такому огромному количеству хитов TLB, пропусков TLB и кешей.
Конечно, могут быть и другие процессы, работающие одновременно, такие как Ubuntu GUI.Но включает ли этот результат и этот процесс?я использовал команду: perf stat -e dTLB-load -e счетчик статистики dTPerformance для './hellocc':
результат: первый раз--
909,822 dTLB-loads
2,023 dTLB-misses # 0.22% of all dTLB cache hits
4,512 cache-misses
0.006821182 seconds time elapsed
LB-misses ./hellocc
результат: Второй раз - статистика счетчика производительности для './hellocc':
907,810 dTLB-loads
2,045 dTLB-misses # 0.23% of all dTLB cache hits
4,533 cache-misses
0.006780635 seconds time elapsed
Мой простой код:
#include <iostream>
using namespace std;
int main
{
cout << "hello" << "\n";
for(int i=1; i <= 100; i = i + 1)
cout<< i << "\t" ;
return 0;
}