Программирование под виртуальной машиной - за и против

Я пользователь Ubuntu Linux, и я использую Win XP только для своих целей работы.

В последнее время я настроил виртуальную машину с XP + Visual Studio 2008 (работает на kvm-quemu).

Мои вопросы:

  • Кто-нибудь пытался эффективно работать в среде, установленной на виртуальной машине? Есть ли проблемы с производительностью? Например, немного хуже производительность под VM влияет на вашу нормальную эффективность?

  • Есть ли другие (помимо производительности) негативные аспекты разработки программного обеспечения под VM? Существуют ли какие-либо проблемы, которые я бы не смог обнаружить или решить в такой среде? (мы говорим о разработке своего рода более крупного проекта, создании приложения для среды Win, без аппаратного или встроенного материала).

Ответы

Ответ 1

Я делаю всю свою работу с клиентом в виртуальных машинах и большую часть моих хобби на виртуальных машинах. Операционная система хоста - это Windows 7, и если у моего клиента нет другого предпочтения, я использую очень отличный VirtualBox.

У меня есть умеренно мощный ноутбук, который поддерживает аппаратную виртуализацию и работает ли Linux или Windows XP в качестве гостевого O/S, производительность, по-видимому, не является для меня ограничивающим фактором. Одним из важных способов предотвращения удара производительности является наличие диска виртуальной машины на другом шпинделе, чем основной жесткий диск моего компьютера. Я использую внешний жесткий диск USB 2. Отлично работает.

Для меня неоценимое преимущество того, что я могу настроить свою среду разработки очень специфично для очень конкретных проектов. Это значительно снижает неопределенности, возникающие при наличии нескольких версий языков программирования, библиотек и функций операционной системы для поддержки нескольких проектов. Меня очень редко удивляют неясные ошибки, вызванные неожиданными взаимодействиями компонентов, которые истекают из одного проекта в другой.

Ответ 2

Две наиболее неприятные вещи при использовании среды разработки под виртуальной машиной

  • ваша виртуальная машина получает только часть основной памяти вашей основной системы

  • если вам нужно перезагрузить ваш хост, вам придется ждать, пока хост и перезапустить виртуальную машину.

Еще одна проблема может заключаться в том, что вашему приложению нужны специальные драйверы, например, драйвер лицензионного ключа. Мы убедились, что не каждый VM-разработчик может справиться с этим (для нас VMWare был прекрасен, каждый другой поставщик, которого мы пробовали, не работал).

Ответ 3

Мой магазин разрабатывает решения SharePoint. Наша среда разработки на виртуальных машинах. Кроме того, поражение производительности (что не так уж плохо - у нас действительно быстрые машины) и огромное использование дискового пространства, мы не видим никаких негативных последствий.

Нам это очень нравится, про легко перевешивает con: мы можем быстрее перезагрузить нашу среду, мы можем легко создать резервную копию виртуального hdd, мы можем быстро переключить VM и протестировать на другой ОС, если мы сбой "машины", мы быстро выполняем резервное копирование и работаем без ущерба для нашей операционной системы хоста

Ответ 4

Я пользователь Win7, но моя компания (я работаю удаленно) использует Windows XP, и все компьютеры, находящиеся внутри сети компании (даже через VPN), должны иметь набор приложений, которые я не хочу установите на моем ноутбуке, поэтому я создал виртуальную машину с VMWarePlayer, и это делает довольно приличную работу. Это не похоже на настоящую, но профи компенсируют недостатки.

Плюсы:

  • Мне не нужно устанавливать программное обеспечение для мусора на моей машине.
  • Мне не нужно использовать интернет, поэтому я не под политика управления
  • Я могу установить любое программное обеспечение, которое я хочу попасть в хост, так как я администратор это

Минусы:

  • Производительность немного хуже чем это могло бы быть, если бы я не использовал VM

Ответ 5

Я регулярно разрабатываю и тестирую среду разработки, работающую под VMWare Workstation и VirtualBox. Если у вас довольно многоплодная рабочая станция, вы не должны видеть слишком большой удар производительности. Единственный раз, когда у меня были проблемы, когда я запускал много (5+) экземпляров Visual Studio в VM или более двух или трех виртуальных машин в одной системе.

Есть довольно хороший аргумент в том, что вы можете моментально снижать, восстанавливать и повторно развертывать среду разработки, хотя на практике другие инструменты, которые могут вам понадобиться, могут ограничить, например, такие параметры управления источником.

Ответ 6

Проблемы с производительностью не зависят от машины. Черт возьми, у меня есть проблемы, иногда работающие с VS/Windows на металле, когда машины, с которыми я работаю, увязли из-за низких характеристик или корпоративного беспорядка (дерьмо, которое ваша компания устанавливает для вас.)

Ваши самые большие проблемы будут на диске и в памяти. Поэтому дайте VM столько памяти, сколько сможете, и, если возможно, разрешите ей работать на реальном жестком диске вместо виртуального ввода-вывода.