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

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

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

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

Ответ 1

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

Некоторые из вещей, которые вы могли бы сделать в GUI:

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

Ответ 2

Представьте сначала некоторые промежуточные, интересные результаты. "Мы нашли 2 359 zetuyls, соответствующих вашему запросу, мы просто вычисляем их будущую ценность".

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

Ответ 3

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

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

Ответ 4

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

Ответ 5

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

Ответ 6

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

(10 минут спустя...)

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

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

Ответ 8

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