Многопоточность в мобильном Chrome - как посмотреть нагрузку по веб-воркерам и ядрам?
Написал простую систему видеонаблюдения с распознаванием людей на чистом JavaScript. Работу с нейросетью засунул в отдельный тред (воркер), а собственно видеозапись ведется в главном треде. Идеально работает в Chrome под линуксом даже на древнем 2-х ядерном железе. А на относительно новом 4-х ядерном андроид-телефоне в момент работы нейросети подвисает и главный тред, то есть начинает лагать пользовательский интерфейс !
Как посмотреть в хроме - сколько воркеров запущено, как они распределены по ядрам, и где основные задержки ?
PS Все приложенение написано на async/await, главный тред нигде не блокируется, в воркер передается всего один видеокадр (массив пикселей), тормоза начинаются именно в момент распознавания. Может быть TensorFlow как-то странно процессор использует или встроенную видеокарту (хотя, в ноуте тоже встроенная).
Собственно воркер с нейросетью
А вот главный тред с вызовом воркера
Буду благодарен за любые идеи !
Ответы (1 шт):
Буду благодарен за любые идеи !
Как посмотреть в хроме - сколько воркеров запущено?
см. раздел release note
Как они распределены по ядрам?
На сколько я знаю:
Новый воркер - новый поток "ядро".
Но я не знаю как оно разруливается если их больше "ядер".
В мысле оно работает, но максимальная производительность если их столько же сколько потоков поддерживает процессор.
Ещё вопрос с ситуацией когда есть "большие" и "малые" ядра.
Где основные задержки ?
- ,-
ядра
- Ядра на PC и "мобильные" - не одно и то же.
- Ядра даже внутри одного процессора могут быть разные.
- Смотреть нужно не ядра а потоки, т.к. на ядро их может быть более одного.
Тест
Начните с написания тестового примера, для наблюдения как оно работает, грузит процессор.
Там есть код для ноды (правда его нужно немного переписать)
release note (что нового) от 2018/01
Get Started with Remote Debugging Android Devices
Загрузка процессора.
Загрузку по ядрам(потокам) хром не умеет даже на PC -> нужно использовать системные утилиты.
- AnTuTu (программа для телефона)
или
Проверка поддержки webgl.
я не в курсе нужен ли он в tensorflowJS но там -> "News & announcements" они что-то говорят про "WebGL acceleration"
We have launched the alpha version of first-class React Native support for TF.js, including WebGL acceleration on supported platforms. Learn how to bring performant ML into your React Native app.