Производительность важна! PDF Печать E-mail

(В оригинале It's all about performance)

Представьте себе автомобиль. Просторный, комфортабельный, с очень низким расходом, дешевый и перерабатываемый на 98%. Хотите себе такой? А если окажется, что он не ездит быстрее чем 10 км/ч? Все еще его хотите? Вот на таком простом примере можно показать, что производительность столь же важна, как и любой другой критерий.

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

Иногда производительность меряют временем реакции системы на ввод данных от пользователя. Но и это еще не все. Проектировщик должен учитывать и другие аспекты, такие как производительность программистов, разрабатывающих систему, производительность пользователей, работающих с ней, и производительность неинтерактивной части системы.

Производительность программистов часто называют продуктивностью. Она важна, поскольку напрямую влияет на стоимость и сроки сдачи проекта. Использование специальных утилит и библиотек может существенно повлиять на скорость разработки системы и приблизить начало получения прибыли.

Производительность пользователей критична для сдачи проекта. Многие критерии, описанные в дизайне, лежат в этой плоскости, чаще всего это время реакции на ввод данных. Но время реакции – не единственный фактор. Столь же важны и интуитивность интерфейса, и количество действий для получения результата, одинаково сильно влияющие на производительность.

По хорошему, стоит измерять время выполнения задачи. Задача должна определяться в терминах предметной области и включать все взаимодействия пользователя с системой. Тогда в измерения попадут и время, потраченное оператором на обдумывание, и время, потраченное на ввод данных. С одной стороны, эти вещи не подконтрольны системе, с другой – их включение в измерение будет очень сильно мотивировать создание удобного и оптимального интерфейса. Должное внимание к тому, как представить информацию и как оптимизировать необходимое количество действий для выполнения задачи приведет к серьезному повышению производительности с точки зрения пользователя.

Производительность неинтерактивных компонент, «техническая» производительность, тоже важна. Как пример – «ночной» скрипт, запускаемый каждую ночь, не сможет работать, если для его работы будет требоваться более 24-х часов. Производительность может быть очень важна, например, в системе восстановления после катастрофы. Насколько быстро будет возможно полное восстановление системы после полного выхода из строя одной из ее частей?

Желая сделать успешную систему, архитекторы должны всегда обращать внимание на ее производительность.

Автор оригинала - Craig L Russell