Как улучшить производительность [NSString drawInRect: withFont]? - PullRequest
2 голосов
/ 05 марта 2011

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

После запуска приложения с прибором я обнаружил, что [NSString drawInRect:withFont] занимает более 50% времени, особенно при первой прокрутке, после чего я могу довольно плавно прокручивать. Хотя [NSString drawInRect:withFont] по-прежнему занимает большую часть времени, он значительно более плавный, и заметной задержки не наблюдается.

Я не знаю, кэшированы ли слои или что-то в этом роде, но с точкой останова и NSLog я вижу, что drawRect и drawInRect все еще называются. Тогда почему он только лагает при первой прокрутке?

Официальное приложение твиттера действительно имеет отличную производительность. Есть ли инсайдер, который может рассказать мне некоторые практические трюки?

1 Ответ

0 голосов
/ 05 марта 2011

На самом деле, Лорен Бричер, разработчик приложения для Twitter, написал сообщение в блоге об этом.

Вы можете проверить его здесь: http://blog.atebits.com/2008/12/fast-scrolling-in-tweetie-with-uitableview

(Tweetie - это имяофициальное приложение Twitter до того, как оно было куплено Twitter, на случай, если вы не знали.)

...