Производительность наверху работает: в Smalltalk (конкретно Писк)

Так что это тот случай, когда имеет смысл отделить ваши данные от слоя просмотра. Обращаться к обновлениям проще, если у вас есть единственный источник правды, который вы обновляете, вместо того, чтобы пытаться обновлять свои блоки напрямую.

Итак, когда вы получаете обновление, снимите его с this.flights.data вместо чанка, а затем заставьте vue пересчитать ваши чанки. Это сохраняет ваш исходный массив data в качестве единственного источника истины, и вы каждый раз обновляете фрагменты из него для своего просмотра.

6
задан 7 May 2009 в 23:14
поделиться

1 ответ

#perform: не похож на eval () . Проблема с eval () (в любом случае с точки зрения производительности) заключается в том, что он должен компилировать код, который вы отправляете во время выполнения, что является очень медленной операцией. #perform: Smalltalk, с другой стороны, эквивалентно sendy (1142938) Руби или Objective-C executeSelector: (на самом деле оба эти языка были сильно вдохновлен Smalltalk). Такие языки уже ищут методы, основываясь на их имени - #perform: просто позволяет указать имя во время выполнения, а не во время записи. Он не должен анализировать какой-либо синтаксис или компилировать что-либо вроде eval () .

Это будет немного медленнее (стоимость как минимум одного дополнительного вызова метода), но это не так. t eval () . Кроме того, варианты с большим количеством аргументов не должны показывать никакой разницы в скорости по сравнению с простым исполнением : чем угодно . Я не могу говорить с таким большим опытом конкретно о Squeak, но именно так он обычно работает.

8
ответ дан 9 December 2019 в 22:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: