Каковы ваши 3 лучших совета по производительности XPages для новых разработчиков XPages? - PullRequest
4 голосов
/ 12 марта 2012

Какие 3 вещи вы бы сказали разработчикам, впервые знакомым с XPages, чтобы помочь максимизировать производительность их приложений XPages?

Ответы [ 6 ]

5 голосов
/ 12 марта 2012
3 голосов
/ 12 марта 2012

Поскольку вы запрашиваете только 3, вот советы, которые, на мой взгляд, имеют самое большое значение:

  1. Определите, что ваши пользователи / клиенты имеют в виду под "эффективностью", и установите параметр сохранения страницысоответственно.Если они означают масштабируемость (максимальное количество одновременных пользователей), сохраняйте страницы на диске.Если они означают скорость, держите страницы в памяти.Если они хотят идеального сочетания скорости и масштабируемости, сохраните текущую страницу в памяти.Последний вариант действительно должен быть сервером по умолчанию (установленным в файле xsp.properties сервера), переопределенным только по мере необходимости для приложения.
  2. Задать привязки значений для вычисления при загрузке страницы (обозначается в исходном XML-коде как $) везде, где возможно вместо динамического вычисления (обозначается #).$ bindings оцениваются только один раз, # bindings пересчитываются снова и снова, поэтому изменение вычислений, которые нужно загружать только один раз на страницу, к $ bindings ускоряет как начальную загрузку страницы, так и любые события, инициируемые после загрузки страницы.
  3. Минимизируйте использование SSJS.Везде, где возможно, используйте вместо этого стандартный EL (например, $ {database.title} вместо $ {javascript: return database.getTitle ();}).Каждое выражение SSJS должно быть проанализировано в абстрактном синтаксическом дереве для оценки, которое постепенно медленнее, чем стандартный распознаватель EL.

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

3 голосов
/ 12 марта 2012
  1. Не уверен, что этот совет предназначен для начинающих, но используйте любой из LifeCyclePhaseListeners из фрагментов OpenNTF, чтобы увидеть, что происходит в ваших источниках данных во время полного или частичного обновления (http://openntf.org/XSnippets.nsf/snippet.xsp?id=a-simple-lifecyclelistener-)

  2. Используйте расширение Library. Сообщайте об ошибках (или о том, что вы считаете ошибкой) в OpenNTF.

  3. Используйте SampleDb из extLib. Вы можете легко изменить образцы для собственных нужд. Даже хорошо подходит для тестирования, если проблема, с которой вы столкнулись, воспроизводима в этой БД.
  4. Используйте Firebug (или аналогичный инструмент, поставляемый с выбранным вами браузером). Если вы видите ошибку на вкладке ошибок, перейдите и исправьте ее.
2 голосов
/ 12 марта 2012
 1. Use the Script Library instead writing a bulk of code into the Xpage.
 2. Use the Theme or separate CSS class for each elements [Relational] 
 3. Moreover try to control your SSJS code. Because server side request only reduce our system  performance.
 4. Final point consider this as sub point of 3, Try to get the direct functions from our SSJS, Don't use the while llop and for loop for like document collection, count and other things.
1 голос
/ 12 марта 2012

Многое зависит от того, что вы подразумеваете под производительностью.Для производительности приложения:

  1. Используйте вычисления при загрузке страницы, где это возможно.Это значительно повышает производительность.
  2. В частности, в более крупных XPages объединяйте код в единые элементы управления, где это возможно.Например, используйте один элемент управления Computed Field, сочетающий буквенные строки, EL и SSJS, а не один элемент управления для каждого языка.В этом случае EL работает лучше, чем SSJS, а SSJS на XPage работает лучше, чем SSJS в библиотеке сценариев.
  3. Используйте dataContexts для свойств, которые рассчитываются более одного раза на XPage.

Режим частичного выполнения - очень сильная рекомендация, но, вероятно, за пределами новых разработчиков XPages на данный момент.Java также будет работать лучше, чем SSJS в библиотеке скриптов, но опять же за пределами новых разработчиков.Элементы управления XPages, созданные вами с помощью Extensibility Framework, должны работать лучше, поскольку они должны запускать меньше строк Java, чем несколько элементов управления, но я этого не проверял.

Если вы имеете в виду производительность разработчика:

  1. Получите библиотеку расширений.
  2. Используйте темы для установки свойств по умолчанию, например, стандартный стиль для всех ваших пейджеров.
  3. Используйте Firebug.Если вы разрабатываете для Notes Client или IE, все еще используйте Firebug.Вы будете тратить больше времени на страдания через Client / IE, спасибо, что исправите те немногочисленные причуды, которые останутся.
1 голос
/ 12 марта 2012

Основы типа

  1. Используйте немедленные флаги (или один из других флагов) на серверных событиях, если это возможно
  2. Отметьте флаг, который (забыл свое имя ..) генерирует CSS и JS как один большой файл во время выполнения, поэтому минимизирует количество запросы.
  3. Мудро выбирай себе прицел. Не помещайте все в свою сессионную область, но определите, когда, где и как вы используете данные и на основании этого используете правильную область. Это может привести к лучшему использованию памяти ..

И, конечно, самое важное - прочитать книгу мастеринга на xpages.


Другие советы, которые я бы добавил:

  1. При получении данных используйте viewentrycollections или viewnavigstor
  2. Обновление до 8.5.3
  3. Используйте html-теги по умолчанию, если это возможно. Если вам не нужны функциональные возможности панели xp: div или xp:, используйте вместо этого <div>, чтобы не создавать дополнительный uicomponent на дереве.
  4. Определите, какой режим сохранения страницы вам нужен
...