Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> java

Java 10: улучшение производительности через AppCDS (Application Class-Data Sharing)

JEP 310 — Application Class-Data Sharing

При запуске JVM загружает классы в память. При множестве JAR-файлов возникает заметная задержка при первом запросе. В бессерверной архитектуре (serverless) это увеличивает cold-start время. AppCDS позволяет поместить классы приложения в общий архив, уменьшая время запуска и память за счёт совместного использования метаданных классов между несколькими Java-процессами.

Процесс (3 шага)

  1. Создание списка классов для архивации — генерируем список welcome.lst для класса Greeting.java в welcome.jar:
    $ java -Xshare:off -XX:+UseAppCDS -XX:DumpLoadedClassList=welcome.lst -cp welcome.jar Greeting
  2. Создание AppCDS-архива — архивируем список классов:
    $ java -Xshare:dump -XX:+UseAppCDS -XX:SharedClassListFile=welcome.lst -XX:SharedArchiveFile=welcome.jsa -cp welcome.jar
  3. Использование AppCDS-архива — запуск с архивом:
    $ java -Xshare:on -XX:+UseAppCDS -XX:SharedArchiveFile=welcome.jsa -cp welcome.jar Greeting

Это особенно актуально для микросервисов и serverless-функций, где скорость холодного старта критична.

java

  1. Освоение операторов Java: типы, синтаксис и практические примеры
  2. Комментарии в Java: типы, использование и лучшие практики
  3. Освоение улучшенного цикла for в Java: синтаксис, примеры и лучшие практики
  4. Освоение строк в Java: создание, методы и лучшие практики
  5. Интерфейсы в Java: концепции, реализация и лучшие практики
  6. Анонимные внутренние классы в Java: определение, синтаксис и практические примеры
  7. Try-with-resources в Java: автоматическое управление ресурсами
  8. Аннотации в Java: типы, размещение и практические примеры
  9. Assertions в Java: практическое руководство по обнаружению багов и обеспечению надежности кода
  10. Понимание Java Vector: использование, особенности и сравнение с ArrayList