Javascript - динамически контролировать использование процессора / памяти - PullRequest
14 голосов
/ 02 марта 2012

Я подумываю о написании игры на JavaScript с использованием WebGL и сопутствующих технологий. Я хотел бы сделать игру максимально интеллектуальной, поэтому я слежу за мониторингом использования процессора / памяти.

Например:

  • Для высокой загрузки ЦП немного уменьшите графику или выгрузите вычисления на сервер
  • Для высокого использования памяти выгрузить данные на сервер для хранения (и последующего извлечения)

Я хотел бы получить данные, которые предлагает Chrome, в Task Manager. Я знаю, как отслеживать FPS, и это может привести к некоторой гибкости, но я хотел бы иметь как можно больше информации. Основной вариант использования - для режима «низкого энергопотребления», когда ЦП используется как можно меньше (для ноутбуков), или режим ожидания, когда пользователь просматривает форумы и т. Д.

Я знаю, как использовать профилировщики, но я хотел бы получить доступ к этим инструментам из JavaScript.

Возможно ли это? Если нет, знаете ли вы, было ли это предложено для стандартизации?

Я бы хотел жить с расширением, если бы его можно было запрашивать из JavaScript, но я бы хотел избежать его, если существует нативная функция. Я пытаюсь настроить таргетинг на последние версии Firefox и Chrome, но я могу ограничиться одним браузером, если он поддерживает это.

1 Ответ

8 голосов
/ 02 марта 2012

Ну, нет прямого вызова javascript для получения такой информации (что было бы серьезной проблемой безопасности).Но есть решение вашей проблемы: вы можете использовать рабочие пулы, которые буквально являются потоками для javascript, чтобы эмулировать функцию, которая будет выполнять некоторые вычисления в фоновом режиме для вычисления загрузки ЦП.Но так как вы создаете 3D-приложение, я не буду советовать делать это, потому что вам неоправданно дорого обойдется загрузка процессора, чтобы узнать текущий уровень загрузки процессора, что все равно что убить муху из пистолета-пулемета.

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

Удачи в игре!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...