Y a-t-il un petit outil qui me donne accès aux données recueillies par les comptoirs Intel CPU (comme L1 / L2 Misses cache, échecs de prédiction des succursales ... Vous savez qu'il y a des chandeux d'entre eux sur des CPU de Core2 modernes). p>
Il doit fonctionner sur Windows (tout en pouvant l'utiliser avec Solaris, FreeBSD, Linux, MacOSX serait bien sûr bien). P>
7 Réponses :
Vous n'avez pas écrit de vos recherches à la recherche d'une application ou d'une bibliothèque. P>
pour Windows Il y a Intel Vtutune. Mais ce n'est pas vraiment un petit outil. Pour Linux, j'ai utilisé Oprofile, qui fonctionne sans patchs de noyau. P>
Je cherche une bibliothèque parce que je veux écrire un profileur instrumenté qui enregistre des événements instructions_Retretiked au lieu de Millisonds. Oui et peut-être d'autres choses, afin que vous puissiez le voir comme une petite vtune comme l'outil que je veux m'écrire.
Je ne pense pas qu'il y ait une bibliothèque. Le registre du moniteur de performance est accessible via les instructions RDMSR et WRSRR. Pour un démarrage, vous pouvez consulter le Manuel "Intel 64 et IA-32 Architectures Architectures Manuel" (Google pour la dernière version) Volume 3b, chapitre 18.11FF. Il est décrit exactement ce que vous avez besoin d'accéder aux compteurs de performance.
sur OS X, Shark vous permet d'obtenir des données de la PMC. Je ne sais pas ce qui est disponible sur Windows autre que les outils d'Intel (VTune, comme mentionné par Drhirsch). P>
essayer ceci http://icl.cs.utk.edu/papi/ C'est une bibliothèque complète qui vous permet de lire des données de compteur CPU, fonctionne à la fois sur Windows et Linux [et d'autres OS] P>
PapI est une tête très prometteuse, cependant, je crois qu'ils ont interrompu un soutien pour Windows (et donc .net c #) il y a plusieurs années. P>
Sur le front de Windows, Visual Studio 2010 Premium est livré avec Explorateur de performance. Si vous exécutez un projet ou un mode binaire en mode instrumentation, vous pouvez accéder aux événements matériels tels que les instructions à la retraite. P>
Les résultats peuvent être un peu mélangés et incompatibles en fonction des facteurs externes, mais il s'intègre bien à Visual Studio et vous obtenez des comptes détaillés (AVG, un maximum, total) sur un niveau de méthode / module. P>
Intel V-Tune Performance Analyzer l'expose également de manière native. Je n'ai pas encore joué avec cet outil, mais cela pourrait être une API plus flexible que ce que Visual Studio 2010 expose. P>
Merci mais je suis dans l'entreprise de développer et de vendre des IDE's moi-même. Donc, cela ne m'aide évidemment pas.
Ce fil semble un peu vieux, mais si vous êtes toujours intéressé, j'ai écrit un HOWTO récemment sur ce sujet en utilisant rien de plus que RDMSR et WrmsR sous Linux. Il ne traite que les compteurs de performance sur un inconvénient d'Intel pour Westmere, mais le processus que j'ai décrit pourrait vous aider à déterminer ce dont vous avez besoin si vous ne l'avez pas déjà fait. Je suis sûr que Windows a un programme équivalent ou un appel de fonction à RDMSR et à TRMSR. Le problème est que vous devez avoir la sonnerie 0 (mode du noyau) pour lire MSRS. Je n'ai aucune idée de la façon de faire cela dans Windows. Je ne pourrai pas aider avec des questions Windows mais pourra peut-être répondre à des questions liées au MSR si vous en avez. Je ne suis en aucun cas un expert cependant. P>
Ce fil a l'air assez vieux. Mais toujours, tous les compteurs mentionnés ci-dessus sont disponibles à Intel PCM .Ce comptoirs peut être utilisé comme plug-in Microsoft Perfmon ou une interface d'invite de commande. L'Intel PCM donne des informations telles que le ratio L2 et le cache de cache L3, des misses de cache, etc. P>
Découvrez l'outil Intel PCM (Performance Counter Monitor) qui fait exactement ce que vous voulez faire. P>
Intel PCM fournit une API riche qui vous permet d'instruminer votre code. De plus, à ce jour, PCM est également le seul outil à lire des événements incertains. p>
Bon dans l'intervalle, j'ai trouvé la bibliothèque Papi. Mais c'est plus ou moins un Linux uniquement (Soutenir Solaris uniquement sur SPARC) et nécessite des patchs de noyau Linux - Ouais je sais que Linus dit que la surveillance des performances est l'une des deux faiblesses réelles. Et j'ai trouvé Perfmon2 et lapin (un projet mort) qui sont également Linux uniquement. Pas un coup pour Windows jusqu'à présent.