29

Я тестирую AJAX-тяжелое веб-приложение. Я работаю на новом Mac, но я использую VmWare Fusion (в настоящее время 3.1.2) для тестирования в Windows XP, используя IETester для имитации более старых версий IE.

Это позволяет мне увидеть, как старые версии IE будут отображать сайт, но я также хотел бы посмотреть, как сайт будет работать на более старой машине. Я вижу в настройках виртуальной машины, что я могу уменьшить оперативную память; Есть ли способ также снизить скорость процессора? Как еще я могу симулировать медленную машину?

(Я также собираюсь проверить, как симулировать медленное интернет-соединение.)

7 ответов7

17

Поток, ограничивающий скорость процессора в виртуальной машине, предлагает несколько советов:

  • В VMWare ESX и ESXi вы можете создать пул ресурсов и ограничить ресурсы ЦП для этого пула. Это позволит вам ограничить скорость процессора любых систем, созданных в этом пуле ресурсов.
  • Настройки в MS hyper-V позволяют ограничить виртуальную машину до процента от общего хоста. Поэтому, если у вас 8-ядерный хост, работающий на частоте 2 ГГц, вы можете попробовать ограничить клиентскую виртуальную машину одним ядром и не более 45% от ядра.

Парень из Virtual PC замечает в « Замедлении виртуальных машин», что:

установка виртуальной машины с максимальным ресурсом ЦП 10% под виртуальным сервером (например) означает, что ей будет разрешено запускаться на ЦП только в течение 10% от общего времени планирования системы в течение определенного периода времени. Во время работы виртуальной машины она все еще работает на полной скорости процессора (хотя и реже, чем в противном случае).

Он предлагает использовать вместо Turbo для замедления ВМ. Он также предлагает использовать продукты эмуляции, которые намного медленнее, чем виртуализация, такие как DOSBox и Bochs.

6

Вы можете использовать cpulimit, чтобы ограничить время обработки, выделяемое вашему процессу. Это доступно в репозиториях для большинства дистрибутивов Linux.

Использование очень просто, если, например, ваша виртуальная машина работает как процесс 12345, и вы хотите выделить для нее только 5% циклов ЦП, используйте следующие параметры:

$ cpulimit -l 5 -p 12345
4

Это действительно невозможно надежно сопоставить производительность старой машины. Даже если вам удастся задушить загрузку процессора и объем памяти, как вы будете душить скорость памяти или скорость FSB?

Сказав это, вы можете использовать инструмент управления процессами Mac, чтобы ограничить использование ЦП самой VMWare Fusion. Если вы сделаете это достаточно хорошо, чтобы эмулировать более старую машину, то все приложение VMWare, вероятно, будет работать очень медленно - точно так же, как старая машина с поддержкой XP.

Я не знаю, для чего предназначена графическая программа Mac, но посмотрите, поддерживает ли ваш Mac команду renice : откройте терминал и наберите man renice чтобы узнать о том, как она работает на Mac.

Кстати, XP-готовые машины, вероятно, сейчас очень дешевы. Реальный, вероятно, можно было купить за ~ 75 долларов. Затем вы можете перенести свою виртуальную машину в реальную ...

1

Один верный способ замедлить работу виртуальной машины - это загрузить как можно больше ее клонов!

Ваш процессор, FSB, RAM и все другие быстрые компоненты вашей машины будут разделены между кубиками и распределены между ними (если у вас есть что-то интенсивное - например, одна из заставок openGL), и вы почувствуете, что Вы снова в 1990 году ...

1

Установите небольшую утилиту в гостевой виртуальной машине XP для управления частотой процессора с помощью встроенного в XP динамического переключения частот. Например, такая утилита, как SpeedswitchXP. Я никогда не пробовал что-то подобное, и потенциально могут возникнуть проблемы, если виртуальный ЦП, который VMWare представляет гостевой ВМ, не поддерживает динамическое переключение частоты.

1

Это действительно зависит от того, насколько медленной является машина, которую вы хотите эмулировать. Если вы откатите XP обратно к 128 МБ ОЗУ, это будет мучительно медленно, до такой степени, что я не уверен, будет ли скорость виртуального процессора действительно существенной. Вы также можете запускать файлы виртуальных машин со старого внешнего жесткого диска USB1 (посмотрите, сможете ли вы найти диск на 4200 об / мин). Это должно замедлить ход событий.

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .