Как я могу улучшить субъективную скорость моего приложения? - PullRequest
26 голосов
/ 03 августа 2009

Сегодня мой коллега заметил, что при добавлении десятичного знака к индикатору прогресса создается впечатление, что программа работает быстрее, чем без. (то есть вместо 1,2,3 ... он показывает 1, 1,2, 1,4, 1,6, ...) Я проверил его, и я был удивлен, что у меня такое же впечатление, хотя я знал, что оно было подделано.

Это заставляет меня задуматься: Какие еще существуют вещи, чтобы создать впечатление быстрого приложения?

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

Ответы [ 8 ]

17 голосов
/ 03 августа 2009

Этот эффект может быть очень значительным: выполнение относительно большого объема работы, чтобы дать пользователям правильное и часто обновляемое состояние прогресса, может, конечно, замедлить фактическое время работы приложения (обновления экрана, отображение прогресса, необходимые вычисления и т. Д.) все еще давая пользователю ощущение, что это занимает меньше времени.

Некоторые вещи, которые вы можете сделать в графическом интерфейсе:

  • убедитесь, что ваше приложение остается отзывчивым (изменение размеров форм по-прежнему возможно, возможно, дайте кнопку отмены операции?) Во время фоновой обработки
  • быть очень последовательным при отображении сообщений о состоянии / курсоров песочных часов по всему приложению
  • если у вас что-то обновляется во время операции, убедитесь, что оно часто обновляется (например, почти нелепое отображение имен файлов и ключей реестра во время установки), или убедитесь, что есть возможность сделать это для пользователей, которые как это поведение
9 голосов
/ 03 августа 2009

Сначала представьте некоторые промежуточные, интересные результаты. «Мы нашли 2359 зетуйлов, соответствующих вашему запросу, мы просто рассчитываем их будущую стоимость».

Я видел, как системы бронирования транспорта делают такие вещи очень хорошо.

8 голосов
/ 03 августа 2009

Отображение подробностей (например, имен файлов, копируемых в процессе установки) часто может заставить вещи казаться, что они идут быстрее, потому что есть постоянная, заметная активность (в отличие от медленно ползучего индикатора выполнения). *

Если ваш алгоритм таков, что он генерирует список результатов, и у вас есть какой-то способ отображения результатов по мере их получения (в отличие от всех сразу в конце), сделайте это - чем раньше у пользователя что-то получится на что еще смотреть, кроме вертушки, тем лучше.

5 голосов
/ 03 августа 2009

Разрешить пользователю делать что-то еще, пока ваше приложение обрабатывает данные или ожидает результата. В области приложения вы можете разрешить некоторые уточнения поискового запроса или собрать информацию для подготовки следующих шагов. Или просто представьте какую-то другую «работу», необходимую для выполнения, или просто намеки, документацию, статистику, развлечения.

2 голосов
/ 03 августа 2009

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

(через 10 минут ...)

Еще один взгляд на Google Lane обнаружил следующие ссылки:

http://www.azarask.in/blog/post/hacking-memory/ http://blogs.msdn.com/time/

2 голосов
/ 03 августа 2009

Используйте один из тех анимированных индикаторов выполнения, которые выглядят так, как будто они что-то делают, даже если они не прогрессируют. Кроме того, как сказал peSHIr - напечатайте каждое копируемое имя файла и обновите его очень быстро - вы можете даже подделать его, циклически перебирая большой массив строк N раз в секунду.

0 голосов
/ 12 августа 2009

Вот статья о "Выражение времени в вашем пользовательском интерфейсе" и восприятии пользователем времени. Я не знаю, является ли это именно тем, что вы ожидаете в качестве ответа, но оно определенно стоит того, чтобы прочитать.

0 голосов
/ 03 августа 2009

Добавить поток сна в критических точках. С каждой проходной версией уменьшайте задержку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...