Решение проблем производительности по мере их возникновения позволит вам уверенно переходить от одной стадии разработки приложения к другой. Если производительность приложения вдруг резко упала, вы можете вернуться назад к известной точке, в которой все показатели были нормальными, и вновь использовать ее в своей работе в качестве отправной точки. Уст ранение проблем производительности по мере продвижения работы во многом подобно подъему по скале с использованием страховки, когда вы разбиваете маршрут на отдельные участки, в конце каждого из которых забиваете страховочные клинья; единственное, чем вы рискуете, если сорветесь — так это тем, что зависнете на уровне последнего из забитых клиньев. Если же вы пожалеете затратить время на фиксацию и страховку достигнутых результатов, то можете сорваться и пролететь вниз до самого подножия скалы, что чревато большими неприятностями. В процессе разработки не рвитесь необдуманно вперед и время от времени стабилизируйте показатели производительности своего приложения.
Определение задач, решение которых необходимо для достижения высокой производительности
Если конечные цели определены недостаточно четко, то судить об их достижении вам будет трудно, поскольку в этом случае невозможно точно сказать, когда именно пересекается финишная линия. Как бы парадоксально это ни звучало, но можно утверждать и обратное, а именно: достигать неопределенные цели легче, поскольку "достаточно хорошим" можно признать все, что угодно. В зависимости от ваших наклонностей, вы легко можете попасть в одну из этих двух ловушек и закончите тем, что либо приложите чрезмерные усилия к оптимизации тех частей приложения, которые этого никак не заслуживают, либо проигнорируете те, которые имеют решающее значение. Вероятнее всего, время от времени вы будете попеременно оказываться в лагере приверженцев каждой из этих позиций, решая то заняться оптимизацией того, что попроще или представляет интерес в качестве предмета исследования, то отложить устранение неприятных проблем, разрешение которых не обещает быть легким или требует выполнения рутинной трудоемкой работы.
Все может дополнительно усложниться, если вы работаете в составе группы, поскольку у разных людей может быть и разное мнение о том, что такое "приемлемая производительность". Часто это мнение подвержено влиянию того, каковы объемы дополнительной работы, которую необходимо выполнить для устранения проблемы, кому придется выполнять эту работу, и кто виноват в том, что что-то пошло не так, как хотелось бы. Конечно, приятно думать, что принимаемые нами решения являются хладнокровными, взвешенными и беспристрастными и основываются на объективных фактах, но весь человеческий опыт указывает на то, что это не всегда так. Все мы находимся под влиянием не только своих чувств, но и мыслей о том, насколько трудным, приятным, увлекательным или напряженным будет процесс устранения проблем, с которыми мы столкнулись.
Наилучший способ справиться с задачами повышения производительности заключается в том, чтобы записать эти задачи в основной документ проекта. Составьте подробный список этих задач и присвойте им номера. Обновляйте этот список в соответствии с тем, какие новые сведения появились у вас на данный момент, и обязательно фиксируйте вносимые в него изменения. Сформулировав конкретные цели, и всегда зная почему, как и когда они были изменены в процессе производственного цикла, вы и ваша группа никогда не собьетесь с пути, ведущего вас к решению поставленных задач.
Ha всем, что связано с оценкой производительности, лежит печать субъективности
Производительность приложения такова, какой ее воспринимает пользователь. Если пользователю кажется, что приложение работает медленно, значит, оно работает медленно. Если же он считает, что приложение отрабатывает мгновенно, значит, так оно и есть. Поскольку мы создаем мобильные приложения, которыми будут пользоваться люди, а не автоматы, вооруженные хронометрами, искусство измерения производительности заключается в правильном выборе показателей, с помощью которых можно было бы точно охарактеризовать пользовательское восприятие приложения. В случае каких-либо сомнений окончательное определение того, является ли производительность мобильного приложения достаточно хорошей, возможно на основании результатов его тестирования реальными конечными пользователями и высказанных ими оценок. Любые попытки доказать пользователю, у которого на этот счет иное мнение, что приложение в действительности работает очень хорошо, ничего не дадут. Критерии производительности субъективны.
Немедленная ответная реакция приложения