iPhone профилирование и оптимизация - PullRequest
0 голосов
/ 06 мая 2011

Итак, я недавно внес некоторые изменения в одно из своих табличных представлений и заметил, что при перезагрузке ячеек (возвращающихся на экран тем или иным образом) наблюдается отставание от четверти до половины секунды. Я решил, что буду использовать хороший встроенный в Xcode 4 профилировщик. Что я обнаружил, так это то, что во время этих пиков большую часть времени бега проводят в gzopen и png_read_filter_row

Я отслеживал эти функции в дереве вызовов viwer вплоть до основного, и его никогда не было в моем реальном коде. Единственная сомнительная вещь, которую я делаю, это маленькие файлы изображений (по 1 на ячейку) каждый раз, когда вызывается cellForRowAtIndexPath.

Я думаю, мой вопрос таков:

  1. Является ли файловый ввод / вывод медленным, чтобы я переключился на кэширование этих изображений в памяти, а не в файловой системе?
  2. Как я могу выяснить, что именно так сильно тормозит мое приложение, используя инструмент профилирования?

Спасибо!

1 Ответ

0 голосов
/ 06 мая 2011
  1. Можете ли вы загружать изображения асинхронно - покажите спиннер, куда движется изображение, и запустите фоновую нить, чтобы отобразить изображение. Это общее решение проблемы «миниатюра изображения в строке таблицы».

  2. Я думаю, что вы уже использовали инструмент профилирования для отслеживания проблемы: загрузка изображений. По общему признанию, я не эксперт по профилировщику, но я думаю, что вы знаете, что вам нужно знать. Поэтому реализуйте свою таблицу a) без изображений b) с изображениями, загруженными из файлов c) с изображениями, загруженными асинхронно, и придерживайтесь самого быстрого. (Я не пытаюсь быть легкомысленным, я просто предвзято отношусь к тому, чтобы вынести код на улицу.)

Надеюсь, это поможет. -Mike

...