Производительность – Введение
Производительность информационных систем зависит как от приложения, так и от программно-аппаратной среды, в которой работает приложение. Хотя различие между производительностью приложений и систем несколько условно, производительность приложения зависит от дизайна кода и методов программирования, в то время как производительность системы зависит также от реализации платформы OpenEdge и ограничений, присущих системе аппаратных средств, операционной системе и сети.
Максимальная производительность достигается за счет эффективного распределения программно-аппаратных ресурсов среды, эффективного программирования, и эффективного дизайна баз данных.
Рассмотрение проблем производительности, связанных с настройкой программно-аппаратной среды, а также настройкой OpenEdge, выходит за рамки данного курса.
Ниже мы будем рассматривать только проблемы повышения производительности с точки зрения программиста. В то же время следует иметь в виду, что программист может выявить проблемы производительности, не связанные непосредственно с программным кодом – и может предоставить важную информацию, необходимую специалистам по настройке производительности базы данных и программно-аппаратной среды в целом.
Progress Software рекомендует при разработке программного обеспечения для достижения максимальной производительности сосредоточить внимание на следующем:
- Эффективный доступ к данным и использование индексов.
- Размер транзакций – минимальный размер транзакций уменьшает количество записей в BEFORE-IMAGE.
- Минимизация ввода-вывода.
- Минимизация рекурсии.
- Минимизация вызовов операционной системы
Эти рекомендации, безусловно, правильные, но носят несколько общий характер. С другой стороны, грамотный дизайн базы данных и систематическое использование эффективных приемов кодирования (best practices, еще лучше – следование принятым в организации стандартам кодирования) обычно «автоматически» обеспечивают достаточную эффективность приложения.
При возникновении же реальных проблем с производительностью требуется более детальный анализ для выявления и устранения узких мест.
Ниже будут детально рассмотрены обе эти составляющие.