Оптимизация программ на Java

Производительность программ на Java™ в AIX моно улучшить разными способами.

  • Для того чтобы при выполнении большого числа операций со строками избежать создания ненужных объектов, после которых нужно будет освобождать память, вместо конкатенации строк можно использовать функцию StringBuffer.
  • Постарайтесь максимально сократить число операций вывода данных на консоль Java, так как для этого требуется выполнить некоторые действия над строками, отформатировать текст и записать данные.
  • По возможности создавайте переменные простых типов, так как для работы с ними требуется меньше ресурсов системы.
  • Заносите часто используемые объекты в кэш; это позволит уменьшить нагрузку на функцию сбора мусора и избежать многократного создания этих объектов.
  • Объединяйте в группы внутренние операции для уменьшения числа вызовов интерфейса JNI Java.
  • Для снижения числа процессов в JVM и операционной системе не применяйте синхронизированные методы, когда задачу можно решить другими способами.
  • Вызывайте функцию сбора мусора только при необходимости. Запускать эту функцию рекомендуется только во время простоя или низкой загруженности системы.
  • Используйте тип int вместо long всегда, когда это возможно, потому что 32-разрядные операции выполняются быстрее, чем 64-разрядные.
  • Объявляйте методы с ключевым словом final всегда, когда это возможно. В JVM такие методы обрабатываются быстрее.
  • Для снижения числа операций по инициализации переменных создавайте константы с ключевым словом static final.
  • Постарайтесь сократить число ссылок "cast" и "instanceof", поскольку соответствующие ссылки в Java преобразуются во время выполнения.
  • Старайтесь использовать массивы вместо векторов.
  • Добавляйте и удаляйте элементы из конца вектора.
  • Избегайте операций выделения памяти под объекты внутри циклов.
  • Пользуйтесь буферизованным вводом-выводом и выберите оптимальный размер буфера.
  • Пользуйтесь пулами соединений и предварительной подготовкой операторов при работе с базами данных.
  • Пользуйтесь пулами соединений с базой данных и повторно используйте соединения вместо того, чтобы всякий раз открывать и закрывать соединения.
  • Применяйте максимальное возможное время жизни нити и минимизируйте количество операций по созданию и уничтожению нитей.
  • Минимизируйте конкуренцию за общие ресурсы.
  • Минимизируйте количество операций создания объектов, используемых в течение непродолжительного времени.
  • Старайтесь как можно реже вызывать удаленные методы.
  • Пользуйтесь функциями callback для того, чтобы избежать блокирования обращений к удаленным методам.
  • Не создавайте объекты, которые будут применяться только для обращения к методам.
  • По возможности не пользуйтесь синхронизированными методами внутри циклов.
  • Храните строковые и символьные данные в базе данных в формате Unicode.
  • Выберите оптимальный порядок библиотек в переменной CLASSPATH.