Программирование под виртуальной машиной - за и против
Я пользователь 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 столько памяти, сколько сможете, и, если возможно, разрешите ей работать на реальном жестком диске вместо виртуального ввода-вывода.