Go Mobile Performance: регулярные разрывы в использовании ЦП на iOSIOS

Программируем под IOS
Ответить
Anonymous
 Go Mobile Performance: регулярные разрывы в использовании ЦП на iOS

Сообщение Anonymous »

Я обнаружил интересную картину производительности при запуске теста Go на iOS с использованием gomobile. Загрузка ЦП показывает регулярные промежутки в 30 и 40 мс между периодами выполнения при мониторинге с помощью инструментов.
Вот мое минимальное воспроизведение:

Код: Выделить всё

// benchmark/benchmark.go
package benchmark

func BasicOperations() {
var sum float64

for i := int32(1); i != 0; i++ {
sum += 1
sum *= 2
sum -= 1
sum /= 2
}
}
Я создаю структуру, используя:

Код: Выделить всё

gomobile bind -target=ios -o Benchmark.xcframework ./benchmark
При запуске этого на устройстве iOS и профилировании с помощью инструментов я наблюдаю:
Регулярные шаблоны использования ЦП продолжительностью около 30 мс и 40 мс (показаны как синие полосы в профиле ЦП)
Промежутки между этими периодами использования ЦП различной продолжительности
Этот шаблон последовательно повторяется на протяжении всего выполнения
Изображение
Вопросы:
  • Почему среда выполнения Go представить эти регулярные пробелы в выполнении на iOS?
  • Это ожидаемое поведение Go на мобильных платформах?

    Как я могу минимизировать эти пробелы для достижения более стабильное использование ЦП?
Среда:
iOS 18.2
Go 1.21
последняя версия gomobile
Тестирование на физическом устройстве iPhone

Подробнее здесь: https://stackoverflow.com/questions/792 ... aps-on-ios
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»