Проблемы с производительностью Android (JUCE) при НЕ касании экрана - PullRequest
0 голосов
/ 20 декабря 2018

Я портирую приложение для iOS, созданное в JUCE, на Android (в настоящее время в бета-версии).У меня есть какое-то странное поведение, когда я получаю глюки звука и пропуски кадров GUI, которые появляются, только когда НЕ касаются экрана.

Приложение использует OBOE с JUCE 5.4.0 и скомпилировано только для Android 8.0 и выше.Странно, эта проблема возникает только на Galaxy S9 (тесты в порядке на Note 8, Note 9, Xiaomi mi A1 и некоторых других устройствах).Я попытался с новым заводским сбросом на Galaxy S9.

Я новичок в разработке Android.

1 Ответ

0 голосов
/ 20 декабря 2018

То, что вы испытываете, вероятно, будет масштабатором частоты процессора на Galaxy S9, который агрессивно уменьшает частоту процессора, когда к экрану не прикасаются.Это приводит к недостаточной вычислительной полосе пропускания, в результате чего ваше приложение занимает слишком много времени внутри звукового обратного вызова, что приводит к недоработке / сбоям.

Для проверки используйте systrace и профилировщик Android Studio .Systrace покажет вам как недогрузки, так и частоту процессора.

Нажмите на экран во время трассировки, и вы увидите увеличение частоты ЦП, а затем вскоре падение.

В этом случае вы можете попробовать несколько вещей:

  1. Убедитесь, что вы используете наиболее оптимальные флаги компилятора -Ofast или -O3
  2. Используйте недавно выпущенный StabilizedCallback класс в Oboe, который был разработан именно для этой цели - он будет пытаться поддерживать вращение процессора, чтобы избежать его уменьшения.
  3. Контролируйте опустошения (доступны через AudioStream::getUnderruns()) и уменьшайте свою вычислительную нагрузку, пока не прекратите получать их.

Если у вас по-прежнему возникают проблемы, опубликуйте свой код или хотя бы его достаточно, чтобы воспроизвести проблему, на github, и я постараюсь взглянуть.

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

...