3 votes

Visual Studio Profiler Dans Machine Virtuelle

Je ne parviens pas à profiler une application en utilisant le profileur Visual Studio dans des machines virtuelles. J'ai utilisé des machines virtuelles d'Amazon EC2 au travail et Virtualbox, Vmware à la maison. J'ai également utilisé le profileur AMD Codeanalyst. Mais aucune des combinaisons ne fonctionne.

  1. Est-ce que quelqu'un sait pourquoi ça ne fonctionne pas?
  2. Comment puis-je faire en sorte que ça fonctionne?
  3. Connaissez-vous un bon profileur qui fonctionne?

3voto

noizetoys Points 494

Il y a quelques problèmes avec les profileurs dans les machines virtuelles :

  • Le temps ne peut vraiment pas être virtualisé, donc les horodatages vous disent moins que ce que vous voudriez. Cela est dû au fait que les processeurs virtuels ne fonctionnent pas en continu, et les concepteurs de systèmes de machines virtuelles doivent choisir entre suivre les horloges externes (comme celle sur le mur) et faire en sorte que le temps semble s'écouler de manière continue dans une VM. Pour faire fonctionner les protocoles réseau, presque tout le monde choisit le suivi du temps externe. Les profileurs, cependant, sont généralement orientés vers le temps passé sur une tâche, ce qui est le choix contraire.

  • Sous Windows, le profilage est effectué avec une horloge matérielle qui n'est pas utilisée pendant le fonctionnement normal de la machine. (Plus précisément, le Local APIC Timer.) Cela ne me surprendrait pas si ces machines virtuelles ne l'implémentaient pas car elles n'ont jamais vu leurs clients l'activer. J'utilise Hyper-V, qui l'implémente, donc je ne peux pas commenter Virtual Box ou VMWare.

1voto

Sean Aitken Points 111

http://blogs.msdn.com/b/mgoldin/archive/2010/01/09/visual-studio-profiler-in-virtual-environment.aspx

Il y a des informations de l'équipe de performance de Visual Studio ici. Il semble que Visual Studio 2010 prend en charge le profilage basé sur l'échantillonnage sous la virtualisation. Ce que j'observe cependant, c'est que c'est du code qu'ils ont ajouté à Visual Studio pour le gérer et semble fonctionner avec VMWare, Hyper-V et VPC. Cela ne semble pas fonctionner sous VirtualBox (confirmé aujourd'hui avec la version 4.0)

Je vais bientôt tester l'appliance que j'ai créée avec VirtualBox sous VMWare Player et voir si cela fonctionne. La bonne nouvelle est que vous pouvez utiliser le profilage basé sur des échantillons de Visual Studio 2010 sur du code construit avec la version 2008.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X