Назад | Перейти на главную страницу

Профилировщик Visual Studio на виртуальной машине

Я не могу профилировать какое-либо приложение с помощью профилировщика Visual Studio на виртуальных машинах. Я использовал виртуальные машины Amazon EC2 на работе и Virtualbox, Vmware дома. Также я использовал профилировщик AMD Codeanalyst. Но ни одна из комбинаций не работает.

  1. Кто-нибудь знает Зачем это не работает?
  2. Как я могу сделай так, чтобы это работало?
  3. Вы знаете кого-нибудь хороший профайлер, который работает?

Есть несколько проблем с профилировщиками в виртуальных машинах:

  • Время действительно нельзя виртуализировать, поэтому отметки времени говорят вам меньше, чем вам хотелось бы. Это связано с тем, что виртуальные процессоры не работают постоянно, и разработчики систем виртуальных машин должны выбирать между отслеживанием времени внешними часами (например, теми, что на стене) и временем, которое кажется непрерывным, протекает внутри виртуальной машины. Чтобы сетевые протоколы работали, почти все выбирают отслеживание внешнего времени. Однако профилировщики обычно ориентированы на время, потраченное на задачу, что является противоположным выбором.

  • В Windows профилирование выполняется с помощью аппаратных часов, которые в большинстве случаев не используются во время обычной работы машины. (В частности, локальный таймер APIC.) Меня не удивит, если на этих виртуальных машинах он не будет реализован, потому что они никогда не видели, чтобы их клиенты действительно включали его. Я использую Hyper-V, который его реализует, поэтому я не могу комментировать Virtual Box или VMWare.

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

Здесь есть некоторая информация от команды VS Performance. Кажется, что Visual Studio 2010 поддерживает профилирование на основе выборки в виртуализации. Однако я наблюдаю, что это код, который они добавили в Visual Studio, чтобы справиться с этим, и, похоже, работает с VMWare, Hyper-V и VPC. Похоже, он не работает под VirtualBox (подтверждено сегодня с 4.0)

Я собираюсь протестировать устройство, которое я создал с помощью VirtualBox в VMWare Player, и посмотреть, работает ли оно. Хорошей новостью является то, что вы можете использовать профилирование на основе образцов Visual Studio 2010 для кода, созданного с помощью 2008.