Какая виртуальная машина лучше всего подходит для разработки приложений WPF из OS X?

2556
MarqueIV

Все мои машины - Mac (Mac Pro, MacBook Pro, MacBook Air и Mac Mini (и Apple TV 2.0 тоже! :)), но для своей повседневной работы я разрабатываю приложения .NET / WPF. Обычно я просто загружаюсь в Boot Camp и развиваю таким образом, что, конечно, прекрасно работает, но бывают моменты, когда мне нужно одновременно переходить к вещам на моей стороне Mac для уравнения, поэтому я купил и VMware 3.1, и Parallels 6. Обе работают, однако, даже на моем Mac Pro, где я заплатил за обновление до лучших видеокарт (думаю, NVidia 8600s по сравнению со стандартными картами ATI) производительность WPF кусается !!

Теперь это меня смущает, так как оба хвастаются, что они поддерживают не только аппаратно-ускоренный OpenGL 2.1, но и аппаратно-ускоренный DirectX 9 (якобы даже VMware поддерживает DirectX 10!) Через их соответствующие виртуальные драйверы, и оба могут прекрасно запускать 3D-игры, даже в окно. Но даже простое изменение размера окна WPF с мозаичным фоном приводит к некоторому НЕПРАВИЛЬНОМУ перекрашиванию и изменению размеров. Это чертовски близко к тому, что вы ожидаете от RDP, не говоря уже о программном рендерере (полностью забудьте об ускоренном оборудовании!)

Итак ... может кто-нибудь сказать мне WTF WPF делает по-другому? Что еще более важно, как я могу ускорить производительность WPF? Должен ли я перейти на VirtualBox, который также поддерживает DirectX? Или мне просто нужно «побить» пулю (извините ... пришлось. Так что я люблю каламбуры! Спасибо Джону Стюарту!) И продолжаю использовать Boot Camp?

5
Попробуйте использовать VirtualBox и посмотрите, какова производительность. Rafe Kettler 13 лет назад 1
WPF использует DirectX, поэтому для ускорения работы требуется аппаратное ускорение, которое виртуальные машины обычно не поддерживают и не виртуализируют. BoltClock 13 лет назад 4
В любом случае, просто используйте Boot Camp. Я никогда не был большим поклонником виртуализации ОС в другой ОС. BoltClock 13 лет назад 0
I always have problems with WPF performance in virtual machines when trying to do fancy effects. And that is running dual core i7, 8gb memory and 120GB SSD using VirtualBox. 13 лет назад 0
@BoltClock, As I said above, and as is heavily advertised by both VMware and Parallels, they *do* support DirectX. And if I were just going to use Boot Camp, I wouldn't have asked the question. As I said, I need to use OS X stuff at the same time. MarqueIV 13 лет назад 0
@Dave, good to know. Now I don't have to waste time setting up VirtualBox. I just don't get why if they all support DirectX, they don't work? ...or does WPF need DX10 or later? (I know VM and P support DX9. Don't know which VBox uses.) MarqueIV 13 лет назад 0
WPF * будет * работать без DirectX; [используется резервный механизм] (http://stackoverflow.com/questions/4384192/how-does-hardware-acceleration-work-with-wpf/4384591#4384591) для адаптации к конфигурации текущей системы. Но дело в том, что вы не хотите заниматься разработкой WPF * без поддержки DirectX. Идеальным решением является использование Boot Camp, но очевидным недостатком является невозможность одновременного запуска приложений Mac OS X. Так что выбирайте между VMware и Parallels; либо являются твердыми кандидатами. Вы можете найти отзывы и сравнения в другом месте онлайн; это не по теме для этого сайта. Cody Gray 13 лет назад 0
@Cody, I know WPF will work without DirectX. That's not what I asked. I'm trying to find *good* performance, not just 'can it be done.' As I also said above, I already have the latest versions of both VMware and Parallels, and both have bad WPF performance even for the simplest of things. That's why I posted this question. I'm wondering if there are any settings/tweaks I can make, or perhaps another VM solution altogether that works better than those because using Boot Camp has not been a smooth experience considering how much back-and-forth I have to do boot-wise. MarqueIV 13 лет назад 0
Unfortunately, no. There isn't any button or switch for this. Emulation isn't perfect, and Windows keeps changing all the rules. Most emulators and even virtualization software doesn't support Aero Glass yet. There's a big reason I haven't migrated to WPF. It's incredible how much smoother redraw, resize, and other animation is in OS X compared to Windows. A vintage 2000 Blue & White G3 on OS X runs circles around my Windows machine from a couple of years ago, and I say that as a Windows developer. I wish there was such a simple switch! Cody Gray 13 лет назад 0
@studiohack, вы отредактировали мой вопрос, чтобы изменить регистр «MacBook», чтобы в нижнем регистре была буква «b», что неверно (смотрите на передней части блоков), поэтому я изменил их обратно. MarqueIV 12 лет назад 0
FWIW, Virtualbox * поддерживает * DirectX - он просто говорит «экспериментальный» рядом с флажком. Alain Pannetier 12 лет назад 0
И вы нашли решение этой проблемы? Я сталкиваюсь с той же проблемой здесь ... rdkleine 12 лет назад 0
Я оставил это сейчас. Не удалось заставить что-либо работать на ВМ достаточно хорошо, что действительно удивительно, учитывая, что я практически могу заставить Portal 2 работать на ВМ просто отлично, но я не могу плавно анимировать проклятый прямоугольник от одной стороны пустого окна до другой. Я люблю программировать WPF, но, черт возьми, разве они не мешали реализации? Анимации Javascript в виртуальной машине работают лучше, чем это! MarqueIV 12 лет назад 0

4 ответа на вопрос

1
Alec

Я точно знаю, что у VMWare есть определенные расширения или драйверы, которые вы можете установить для повышения производительности; попробуй те. Будучи большим пользователем виртуальных машин, их производительность не может соответствовать родным скоростям; просто привыкни к этому. Я пытался программировать на виртуальных машинах, потом мне это надоело, и я приобрел другой компьютер, один для Windows, другой для Linux.

Я полагаю, вы имеете в виду драйверы для ВМ. Это верно для любой современной виртуальной машины. Чего я не понимаю, так это того, что 3D-приложения прекрасно работают с этими драйверами, но простые WPF-приложения работают очень быстро. Я начинаю понимать, что это более ужасная реализация рендеринга WPF от MS, чем от клиента или драйверов, на которых он работает. В статье WPF Deep Dive показано, что это за беспорядок. MarqueIV 12 лет назад 0
Как бы мне не хотелось это говорить, лучшее решение - установить компьютер с Windows. В противном случае, если вы можете использовать RDP в своей коробке на работе, это было бы еще одним фантастическим решением. Alec 12 лет назад 1
Производительность RDP ужасна с WPF. И хотя было бы замечательно приобрести другую машину, я спрашиваю, какое из них является наилучшим виртуальным решением (т.е. продукт и настройки), поскольку именно с этим мне приходится работать. Спасибо хоть. MarqueIV 12 лет назад 0
К сожалению, я думаю, что вам просто придется продолжать использовать Boot Camp Alec 12 лет назад 0
Boot Camp не вариант, так как мне нужно загружаться в Mac одновременно, отсюда и публикация здесь о виртуальной машине. Спасибо, в любом случае. MarqueIV 12 лет назад 0
0
Karthik

Попробуй это !!

Установите и играйте в любую из последних игр для ПК (Call of Duty, NFS и т. Д.) На своей виртуальной машине, поскольку почти все игры для ПК используют DirectX. Эти игры являются идеальным тестом для вашего оборудования и программного обеспечения.

Если игровой процесс не был хорошим, то должны быть проблемы с VMWare / аппаратным обеспечением. Если нет, то это может быть проблема с самим WPF. Я помню, как читал где-то, что у WPF мало известных проблем с производительностью в среде Citrix. следовательно, есть вероятность, что проблема, с которой вы сталкиваетесь, может быть также связана с этим.

@PrinceCoder, I don't have any PC-games that I can install since I'm not a gamer. BUT... this is an 8-core Mac Pro with 16GB of RAM and 2 higher-end NVidia cards (much better performance than the stock ATIs) and everything is (or was when I bought this 2 yrs back) top of the line. When I'm booted in Boot Camp, it's smooth as glass even on quad monitors. The Mac side too is smooth as glass... except for Windows running in a VM. I have the latest VMware and Parallels drivers to so I know it's not that either. Not sure what it is, but it seems I'm not alone in having this issue and it bites. MarqueIV 13 лет назад 0
@MarqueIV Некоторые последние (иш) игры, например, Армия Америки, бесплатны. Daniel Beck 12 лет назад 1
0
Journeyman Geek

Я думаю, что здесь есть фундаментальное недоразумение технологии VM. Виртуальная машина никогда не сможет полностью передать информацию физическому оборудованию без промежуточного уровня. Когда вы «запускаете» DX-приложения, они запускаются на виртуальной видеокарте, которая, если вам повезет, ускоряет вывод на аппаратном уровне (так что прямая X -> виртуальная видеокарта -> opengl-> фактическая видеокарта) или, если вам не повезло, программная эмуляция (в этом случае все работает на процессоре, который, естественно, не справляется с такими задачами, иначе нам не понадобятся видеокарты).

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

Re: "In short, your fancy hardware isn't doing anything with respect to what's in the VM" -- If that were true (which it isn't as they explicitly tout hardware acceleration) then 3D games would fall flat on their face as a software-only implementation would completely choke them. Yet they play quite well, even in a window specifically because they *are* hardware accelerated. Again, it's just WPF that's causing performance issues. My guess is WPF is doing something different than just pure DX or else it should work. MarqueIV 13 лет назад 0
Я думаю, я нашел, в чем проблема ... кажется, что WPF все еще слишком сильно связан с процессором, поэтому при виртуализации, даже если трехмерные части передаются на ускоренное аппаратное обеспечение, блокировка и синхронизация между процессором и графическим процессором, когда виртуализирован, просто убить производительность. Короче говоря, не похоже, что когда-нибудь будет решение, пока они не «исправят» WPF. http://jeremiahmorrill.com/2011/02/14/a-critical-deep-dive-into-the-wpf-rendering-system/ MarqueIV 12 лет назад 0
0
Web Habitat

Я был разработчиком программного обеспечения в течение 27 лет. (Да, еще когда это были просто текстовые и цветные символы ascii ...)

Сегодня я старший разработчик для Windows / Web / Mac и занимаюсь основным программированием на MacBook Pro (с двумя внешними мониторами - DVI и USB).

В то время как я делаю 95% своего кодирования WINDOWS (.NET) через Windows 7 на Fusion (VMWare). У меня все еще есть раздел на 100 ГБ с BootCamp.

По BootCamp? Вы уже знаете почему, потому что вы не можете получить полную производительность видео через виртуальную машину / эмулятор.

Да, и БОЛЬШОЙ СОВЕТ --- Не запускайте Windows 7 BootCamp через Fusion, даже если говорят, что вы можете. На самом деле это будет foobar лицензии Windows 7, и вы будете звонить Microsoft для перерегистрации (потому что он скажет вам, что это нелегальная копия Windows ...)

Я регулярно использую мой Win7 64-битный раздел Boot Camp с VMware или Parallels без проблем. Да, вам нужно перерегистрировать Windows, но вы должны сделать это только один раз, и MS активирует ее без проблем. Кроме того, хотя да, вы не можете получить * полную * производительность видео в виртуальной среде, но вы можете * получить * действительно приличную частоту кадров в играх DirectX 3D, поэтому нет никаких причин, по которым нужно было бы что-то такое простое, как прокрутка списка или анимация слайдов в WPF. кусать грязь так сильно. Это просто плохая реализация. MarqueIV 11 лет назад 0

Похожие вопросы