Skip to content

Commit 3eea97e

Browse files
committed
add updated content from Holly, new throughput icon, and centered icons vertically with content.
1 parent 2fe7030 commit 3eea97e

File tree

5 files changed

+100
-15
lines changed

5 files changed

+100
-15
lines changed

_includes/performance.html

Lines changed: 40 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,64 @@
11
<div class="full-width-bg component">
22
<div class="grid-wrapper">
3-
<div class="width-3-12 width-12-12-m">
4-
<img class="light-only" src="{{site.baseurl}}/assets/images/performance/icon-performance.svg" alt="Performance image">
5-
<img class="dark-only" src="{{site.baseurl}}/assets/images/performance/icon-performance-dark.svg" alt="Performance image">
3+
<div class="width-3-12 width-12-12-m img-vert-center">
4+
<img class="light-only" src="{{site.baseurl}}/assets/images/performance/icon-performance.svg" alt="Performance icon">
5+
<img class="dark-only" src="{{site.baseurl}}/assets/images/performance/icon-performance-dark.svg" alt="Performance icon">
66
</div>
77
<div class="width-9-12 width-12-12-m">
88
<h2>The Quarkus Way</h2>
9-
<p>Quarkus redefines Java development by shifting most framework optimizations to the build phase. This approach minimizes runtime dependencies, maximizes dead code elimination, and introduces clear metadata contracts, resulting in leaner and more efficient applications.</p>
9+
<p>Quarkus redefines Java development by shifting work to the build phase. This approach minimizes runtime dependencies, maximizes dead code elimination, and introduces clear metadata contracts, resulting in leaner and more efficient applications.</p>
10+
<p>The Quarkus approach helps to "strip out" all code which is only necessary to validate the user model</p>
11+
<ul>
12+
<li>compile classes or apply bytecode enhancements</li>
13+
<li>introspect in the model</li>
14+
<li>parse of framework configuration files</li>
15+
<li>discover extensions and services, or “apply auto-configuration"</li>
16+
</ul>
17+
<p>All that code is run only during the compilation phase; the classes don't even get loaded when the app is started. This means the JIT can make much better optimisations, and spend less memory in doing so.</p>
1018
<p>By performing these optimizations at build time, Quarkus ensures that the heavy lifting is done once, not at every startup, reducing memory usage and startup time.</p>
1119
<p>This approach benefits both GraalVM native images and traditional HotSpot JVM deployments, leading to faster, smaller, and more resource-efficient Java applications.</p>
1220
</div>
13-
<div class="width-3-12 width-12-12-m">
14-
<img class="light-only" src="{{site.baseurl}}/assets/images/performance/icon-memory.svg" alt="Performance image">
15-
<img class="dark-only" src="{{site.baseurl}}/assets/images/performance/icon-memory-dark.svg" alt="Performance image">
21+
<div class="width-3-12 width-12-12-m img-vert-center">
22+
<img class="light-only" src="{{site.baseurl}}/assets/images/performance/icon-memory.svg" alt="Memory icon">
23+
<img class="dark-only" src="{{site.baseurl}}/assets/images/performance/icon-memory-dark.svg" alt="Memory icon">
1624
</div>
1725
<div class="width-9-12 width-12-12-m">
1826
<h2>Reduced Memory</h2>
19-
<p>Quarkus reduces memory utilization for both traditional JVM deployments as well as native binaries using Ahead-of-Time (AOT) Compilation with GraalVM. It achieves this by leveraging build-time metadata processing, which shifts much of the runtime work to build time, lowering memory consumption during execution.</p>
27+
<p>Quarkus reduces memory utilization for both traditional JVM deployments as well as native binaries using Ahead-of-Time (AOT) Compilation with GraalVM. In a traditional architecture many classes are loaded into memory, only to be pruned out later. Quarkus is able to avoid this wasted classloading. Quarkus also leverages build-time metadata processing, lowering memory consumption during execution.</p>
2028
</div>
21-
<div class="width-3-12 width-12-12-m">
22-
<img class="light-only" src="{{site.baseurl}}/assets/images/performance/icon-startup.svg" alt="Performance image">
23-
<img class="dark-only" src="{{site.baseurl}}/assets/images/performance/icon-startup-dark.svg" alt="Performance image">
29+
<div class="width-3-12 width-12-12-m img-vert-center">
30+
<img class="light-only" src="{{site.baseurl}}/assets/images/performance/icon-startup.svg" alt="Startup icon">
31+
<img class="dark-only" src="{{site.baseurl}}/assets/images/performance/icon-startup-dark.svg" alt="Startup icon">
2432
</div>
2533
<div class="width-9-12 width-12-12-m">
2634
<h2>Fast Startup Time</h2>
27-
<p>Quarkus delivers fast startup times that allow for automatic scaling up and down of microservices on containers or Kubernetes deployments. It achieves fast startup times by performing build-time processing for both JVM and native binary deployments, reducing the work done during runtime. Quarkus precomputes metadata and optimizes class loading, significantly cutting down on initialization time. For natively compiled binaries, Quarkus uses GraalVM to eliminate startup overhead resulting in near-instant startup times by running directly as a native executable.</p>
35+
<p>Quarkus delivers fast startup times that allow for automatic scaling up and down of microservices on containers or Kubernetes deployments. It achieves fast startup times by performing build-time processing for both JVM and native binary deployments, reducing the work done during runtime. Quarkus precomputes metadata and optimizes class loading, significantly cutting down on initialization time. For example, some frameworks do “auto-wiring” to external dependencies by attempting to load many possible implementations, using Java Reflection APIs. Quarkus is able to pre-wire in the dependency and bypass this rather slow process.</p>
36+
<p> For natively compiled binaries, Quarkus uses GraalVM to eliminate startup overhead resulting in near-instant startup times by running directly as a native executable.</p>
2837
</div>
29-
<div class="width-3-12 width-12-12-m">
30-
<img class="light-only" src="{{site.baseurl}}/assets/images/performance/icon-diskspace.svg" alt="Performance image">
31-
<img class="dark-only" src="{{site.baseurl}}/assets/images/performance/icon-diskspace-dark.svg" alt="Performance image">
38+
<div class="width-3-12 width-12-12-m img-vert-center">
39+
<img class="light-only" src="{{site.baseurl}}/assets/images/performance/icon-throughput.svg" alt="Throughput icon">
40+
<img class="dark-only" src="{{site.baseurl}}/assets/images/performance/icon-throughput-dark.svg" alt="Throughput icon">
41+
</div>
42+
<div class="width-9-12 width-12-12-m">
43+
<h2>Higher Throughput</h2>
44+
<p>Doing more work upfront at build time doesn’t just improve memory footprint and startup times. It also makes normal program execution faster. How? The output of a Quarkus build process is JIT-friendly, which means the JIT can make better optimizations, and get the application to a super-optimized state faster. For example, because there’s less unused bytecode in a Quarkus application, the JIT can inline more effectively. Early elimination of unused classes also enables the JVM to use monomorphic method dispatching, instead of the much slower megamorphic method dispatching. Megamorphic dispatching is necessary when there are several implementations of the same interface present on the classpath.</p>
45+
</div>
46+
<div class="width-3-12 width-12-12-m img-vert-center">
47+
<img class="light-only" src="{{site.baseurl}}/assets/images/performance/icon-diskspace.svg" alt="Disk footprint icon">
48+
<img class="dark-only" src="{{site.baseurl}}/assets/images/performance/icon-diskspace-dark.svg" alt="Disk footprint icon">
3249
</div>
3350
<div class="width-9-12 width-12-12-m">
3451
<h2>Disk Footprint</h2>
3552
<p>Quarkus reduces the footprint of Java applications by employing build-time processing to eliminate unnecessary runtime dependencies and by optimizing the application’s deployment artifacts. It packages only the essential classes and resources needed at runtime, removing unused code through techniques like dead code elimination. When using GraalVM for native compilation, Quarkus further reduces the footprint by compiling the application into a compact native binary, stripping out the JVM and related dependencies.</p>
53+
<p>Traditionally, when optimizing software performance, there is often a tradeoff between throughput and memory footprint, or between startup time and eventual throughput. In contrast, many of the Quarkus optimizations, such as dead code elimination, improve multiple aspects of application performance. The Quarkus way eliminates wasted work and results in a leaner application which both starts fast and runs fast, all while consuming less memory.</p>
54+
</div>
55+
<div class="width-12-12 width-12-12-m">
56+
<h2>Related Links</h2>
57+
<p><a href="https://quarkus.io/blog/reactive-crud-performance-case-study/">"Reactive CRUD Performance: A Case Study" Blog Post</a><br>
58+
<a href="https://quarkus.io/guides/performance-measure">"Measuring Performance" guide</a>
59+
</p>
3660
</div>
3761
</div>
3862
</div>
3963

64+

_sass/quarkus.scss

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -962,3 +962,11 @@ li {
962962
.bkg-grey {
963963
background-color: $grey-1;
964964
}
965+
966+
967+
/// image center
968+
969+
.img-vert-center {
970+
display: flex;
971+
justify-content: center;
972+
}
-16.1 KB
Binary file not shown.
Lines changed: 26 additions & 0 deletions
Loading
Lines changed: 26 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)