Javascript - динамический мониторинг использования ЦП/памяти
Я рассматриваю возможность написания игры на JavaScript с использованием WebGL и связанных с ней технологий. Я хотел бы сделать игру настолько умной, насколько это возможно, поэтому я смотрю на мониторинг использования процессора/памяти.
Например:
- Для использования большого количества процессоров масштабируйте назад графики или выгружаемые вычисления на сервер.
- Для использования высокой памяти выгружайте данные на сервер для хранения (и более позднего извлечения)
Я хотел бы получить данные, которые Chrome предлагает в нем Task Manager
. Я знаю, как отслеживать FPS, и это может привести к некоторой гибкости, но я хотел бы иметь как можно больше информации. Основной вариант использования - для режима с низким энергопотреблением, где процессор используется как можно меньше (для ноутбуков) или в режиме ожидания, когда пользователь просматривает форумы и т.д.
Я знаю, как использовать профайлеры, но я хотел бы получить доступ к этим инструментам из JavaScript.
Возможно ли это? Если нет, знаете ли вы, было ли предложено стандартизацию?
Я хотел бы жить с расширением, если он может быть запрошен с JavaScript, но я бы хотел его избежать, если существует родная функция. Я пытаюсь настроить последние версии Firefox и Chrome, но я могу ограничить себя одним браузером, если вы это поддерживаете.
Ответы
Ответ 1
Ну, нет прямого обращения к javascript для получения такой информации (что было бы серьезной проблемой безопасности). Но там есть решение для вашей проблемы, вы можете использовать пулы работников, которые являются litterally нитями для javascript для эмуляции функции, которая будет выполнять некоторые вычисления в фоновом режиме для вычисления использования ЦП.
Но поскольку вы создаете 3D-приложение, я не советую делать это, потому что он будет излишне дорого стоить вам много использования ЦП, чтобы узнать текущий уровень использования ЦП, который будет похож на убийство мухи автоматом.
Однако я советую вам сосредоточиться только на кадре в секундах, потому что они связаны с вашим приложением и являются точным показателем бенчмаркинга, который вам нужен. Не заботясь о загрузке процессора, ваше приложение напрямую не зависит от этого, особенно если у вас двухъядерный или четырехъядерный процессор. Возможно, вы также можете посмотреть использование GPU для своего приложения и то, как вы можете полностью воспользоваться преимуществами графического процессора в совместимом браузере (последние версии Chromes используют ускорение GPU).
Удачи вам в игре!