[Daily Fresh Mushroom] Приводит ли обновление до Spring Boot 2.2.7 к повышению производительности?

Микросервисы
[Daily Fresh Mushroom] Приводит ли обновление до Spring Boot 2.2.7 к повышению производительности?

основное введение

Другими словами, в Spring Boot 2.2 были сделаны значительные оптимизации производительности. Приложения будут запускаться быстрее и использовать меньше памяти. Затем я протестирую его с проектом, который уже запущен в сети, это правда?

Согласно краткому описанию проекта, исходная версия Spring Boot — 2.1.3, планируется обновление до 2.2.7, сравниваются две. Конечно просто обновить версию и изменить номер порта, остальные не меняются. контейнерUndertow.

Начальное время

2.1.3.RELEASE

Started SyncApplication in 11.747 seconds (JVM running for 12.292)

2.2.7.RELEASE

Started SyncApplication in 11.955 seconds (JVM running for 12.577)

Суммировать

Без изменения конфигурации время запуска не меняется.Если сравнивать три записи запуска, то на самом деле2.1.3.RELEASEБыстрее. но,Spring Boot 2.2Для ускорения запуска приложения также добавлен глобальный параметр конфигурации отложенной инициализации.spring.main.lazy-initialization, после установки значения true время запуска будет следующим:

Started SyncApplication in 13.123 seconds (JVM running for 13.783)

Минимальная память после запуска [после GC]

2.1.3.RELEASE

已用: 47.7Mb
已提交: 1.1Gb
活动线程: 34
线程峰值: 37
已加载类: 15511

2.2.7.RELEASE

已用: 37.4Mb
已提交: 1.6Gb
活动线程: 33
线程峰值: 35
已加载类: 15519

Суммировать

2.2.7.RELEASEНачальное использование памяти по-прежнему относительно невелико, но расширение после запуска происходит относительно быстро, и количество потоков также намного меньше.2.1.3.RELEASEВыделение памяти растет с небольшим градиентом.

простой тест

2.1.3.RELEASE

Running 20s test @ http://127.0.0.1:9801/sync/welcome
  4 threads and 100 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    24.42ms   19.78ms 261.02ms   67.57%
    Req/Sec     1.09k   320.95     1.73k    68.72%
  Latency Distribution
     50%   11.95ms
     75%   44.17ms
     90%   46.44ms
     99%   86.46ms
  86984 requests in 20.05s, 13.27MB read
Requests/sec:   4337.66
Transfer/sec:    677.76KB

2.2.7.RELEASE

Running 20s test @ http://127.0.0.1:9802/sync/welcome
  4 threads and 100 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    22.23ms   16.77ms 176.80ms   66.22%
    Req/Sec     1.20k   348.48     1.82k    66.71%
  Latency Distribution
     50%   13.22ms
     75%   36.49ms
     90%   44.61ms
     99%   72.03ms
  95815 requests in 20.05s, 14.62MB read
Requests/sec:   4778.59
Transfer/sec:    746.65KB

Суммировать

2.2.7.RELEASEСоотношение запросов в секунду2.1.3.RELEASEЭто немного высоковато, но особого преимущества в использовании памяти нет, а при прогреве обнаруживается, что2.2.7.RELEASEПроизойдет всплеск загрузки ЦП, и последующие тесты вернутся в нормальное состояние.

индукция

Spring BootНовая версия по-прежнему хороша в отрасли,SpringЕго стабильность и надежность заслуживают доверия, и мы надеемся, что он будет становиться все лучше и лучше.