Вот мое минимальное воспроизведение:
Код: Выделить всё
// 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
Регулярные шаблоны использования ЦП продолжительностью около 30 мс и 40 мс (показаны как синие полосы в профиле ЦП)
Промежутки между этими периодами использования ЦП различной продолжительности
Этот шаблон последовательно повторяется на протяжении всего выполнения

Вопросы:
- Почему среда выполнения Go представить эти регулярные пробелы в выполнении на iOS?
- Это ожидаемое поведение Go на мобильных платформах?
Как я могу минимизировать эти пробелы для достижения более стабильное использование ЦП?
iOS 18.2
Go 1.21
последняя версия gomobile
Тестирование на физическом устройстве iPhone
Подробнее здесь: https://stackoverflow.com/questions/792 ... aps-on-ios
Мобильная версия