J'essaye d'obtenir les défauts de page quand j'exécute un programme avec deux parties différentes. Ce que je fais est quelques opérations utilisant deux méthodes de multiplication de matrice et essayent de comprendre lequel cause plus de défauts de page.Comment utiliser getrusage pour lire les erreurs de page en C?
/Operations for method 1
getrusage (RUSAGE_SELF, &usage);
fault1=usage.ru_minflt;
/operations for Method 2
getrusage (RUSAGE_SELF, &usage);
fault2=usage.ru_minflt-fault1;
Mais semble que fault2 = 0, ce que je ne pense pas est correct. Si j'utilise deux variables différentes utilisation et utilisation2, ne semble pas fonctionner non plus. Y a-t-il une commande pour commencer à compter les défauts pour chaque méthode de multiplication? Est-ce que je me trompe avec le code?
Merci pour les réponses
Merci pour le commentaire, comment puis-je vérifier les failles du cache à la place? – Peter
Exécutez-le sous 'cachegrind' (le cache frappe et se perd dans le matériel, en dessous du niveau du système d'exploitation, de sorte que le système d'exploitation ne les garde pas). – caf