Какое максимальное количество переменных состояния я могу иметь в Swift UI Struct и будет ли производительность снижаться с увеличением переменных? - PullRequest
0 голосов
/ 07 марта 2020

Какое максимальное количество переменных состояния я могу иметь в структуре Swift UI?

struct Example: View {

    @State var first : Bool = true
    @State var second: Double = 94.4
    @State var third: CGFloat = 45.45
        .
        .
        .
     How many maximum ?

    var body: some View {
        Text("Hello ")
    }

}

Кроме того, большое количество переменных состояния на самом деле замедляет приложение? Мне нужна ясность в отношении масштабируемости этой вещи, потому что я новичок в декларативном программировании: P

1 Ответ

3 голосов
/ 07 марта 2020

Просто чтобы начать с ответа,

  1. Трудно поверить, что есть проблемы с производительностью. «Декларативного программирования» на самом деле не существует. Это просто компилятор / среда выполнения / все, что делает некоторую проверку. Там нет действительно существенного, парадигмального различия от других структур в конвейере.

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

Кроме того, ничего не стоит, что все, что связано с пользовательским интерфейсом на вашем телефоне, использует ошеломляющее количество вычислительной мощности. Рендеринг любого одного текстового символа! , который в то время находился на экране, представляет собой удивительный танец сплайновой кривой, мерцания и пр. c. Такие вопросы, как «проверка выполняется системой времени выполнения», действительно не имеют значения, за исключением невероятно необычных случаев.

Резюме : не учитывайте производительность в этой среде.

Сколько у вас может быть? Если вы вставите в несколько тысяч, он работает нормально. Трудно поверить, что есть какой-либо предел.

Резюме : Возможно, вы думаете о таком пределе, как "30". такого ограничения нет вообще.

(Может быть какой-то технический, тайный предел - например, 64 миллиона - но это совершенно не имеет отношения к тому, что вы делаете!)


Краткое содержание руководства: расслабьтесь и наслаждайтесь, это не проблема.


Подробнее о конкретном случае

Я пытаюсь анимировать, я использую анимацию для отображения процентного прогресса в кольце

Для числа описанных переменных состояния (скажем, что-либо меньше 100 000 - вы используете примерно "20 "), дополнительные накладные расходы на проверку совершенно не имеют значения. Он настолько низок, что вы не можете его измерить.

ТБ C это, вероятно, не самый элегантный способ сделать это , но, что касается вопроса производительности Speci c спросил , это абсолютно не проблема . Наслаждайтесь!

...