Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Performance page #2122

Draft
wants to merge 6 commits into
base: main
Choose a base branch
from
Draft

Conversation

insectengine
Copy link
Collaborator

  1. Add new performance page
  2. Add to index page (re-org features band)
  3. Add performance page to primary navigation (re-org navigation)
  4. Add link to continuum page (Reactive) to the primary navigation

@holly-cummins

Copy link

github-actions bot commented Sep 20, 2024

🎊 PR Preview db8c148 has been successfully built and deployed to https://quarkus-site-pr-2122-preview.surge.sh

  • Images of blog posts older than 3 months are not available.
  • Newsletters older than 3 months are not available.

@holly-cummins
Copy link
Contributor

holly-cummins commented Sep 23, 2024

+1 to having this page, but I made some suggestions on Jeff Beck's google document that it would be nice to see incorporated here. The version on this PR doesn't mention our excellent throughput, which we need to start talking about.

@insectengine
Copy link
Collaborator Author

@holly-cummins - please check this out again as I've updated the content.

@holly-cummins
Copy link
Contributor

Looks good to me, thanks! :)

I'm looking forward to using that throughput icon in other places, too.

@holly-cummins
Copy link
Contributor

I'd add an approving review but I don't have the permissions to assign reviewers.

@insectengine
Copy link
Collaborator Author

I added some reviews.

<li><a href="{{site.baseurl}}/developer-joy" class="{% if page.url contains '/developer-joy/' %}active{% endif %}">DEVELOPER JOY</a></li>
<li><a href="{{site.baseurl}}/kubernetes-native" class="{% if page.url contains '/kubernetes-native/' %}active{% endif %}">KUBERNETES NATIVE</a></li>
<li><a href="{{site.baseurl}}/standards" class="{% if page.url contains '/standards/' %}active{% endif %}">STANDARDS</a></li>
<li><a href="{{site.baseurl}}/continuum" class="{% if page.url contains '/continuum/' %}active{% endif %}">REACTIVE</a></li>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, we definitely don't want to have REACTIVE here, the page is NOT about reactive.

@@ -15,10 +15,11 @@
<ul class="submenu">
<li><a href="{{site.baseurl}}/about" class="{% if page.url contains '/about/' %}active{% endif %}">WHAT IS QUARKUS?</a></li>
<li><a href="{{site.baseurl}}/container-first" class="{% if page.url contains '/container-first/' %}active{% endif %}">CONTAINER FIRST</a></li>
<li><a href="{{site.baseurl}}/continuum" class="{% if page.url contains '/continuum/' %}active{% endif %}">VERSATILITY</a></li>
<li><a href="{{site.baseurl}}/performance" class="{% if page.url contains '/performance/' %}active{% endif %}">PERFORMANCE</a></li>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why did you move the continuum page to the end, and put performance here?

<img class="dark-only" src="{{site.baseurl}}/assets/images/about/icon-reactive-dark.svg">
<h3><a href="/continuum">Reactive Core</a></h3>
<p>Built on a robust reactive core, Quarkus ensures fast and efficient performance, supporting the development of a wide variety of modern applications.</p>
<img class="light-only" src="{{site.baseurl}}/assets/images/performance/icon-performance.svg">
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would not have put performance in the second item, on the second line.

I know it's a core strength, but, that's not going to attract lots of developers (otherwise, many languages would not be as popular as they are...).

<img class="light-only" src="{{site.baseurl}}/assets/images/performance/icon-performance.svg">
<img class="dark-only" src="{{site.baseurl}}/assets/images/performance/icon-performance-dark.svg">
<h3><a href="/performance">Performance</a></h3>
<p>Quarkus streamlines framework optimizations in the build phase to reduce runtime dependencies and improve efficiency. By precomputing metadata and optimizing class loading, it ensures fast startup times for JVM and native binary deployments, cutting down on memory usage.</p>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hum, this is semantically equivalent to the last sentence of the container feature.

<img class="dark-only" src="{{site.baseurl}}/assets/images/performance/icon-performance-dark.svg" alt="Performance icon">
</div>
<div class="width-9-12 width-12-12-m">
<h2>The Quarkus Way</h2>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

HTML makes reviewing very hard. Could you try the technique I used for continuum?

<img class="dark-only" src="{{site.baseurl}}/assets/images/performance/icon-memory-dark.svg" alt="Memory icon">
</div>
<div class="width-9-12 width-12-12-m">
<h2>Reduced Memory</h2>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be h3 - it's part of the quarkus way, which actually is named" build-time principle.

<img class="dark-only" src="{{site.baseurl}}/assets/images/performance/icon-startup-dark.svg" alt="Startup icon">
</div>
<div class="width-9-12 width-12-12-m">
<h2>Fast Startup Time</h2>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same, h3

</div>
<div class="width-9-12 width-12-12-m">
<h2>Higher Throughput</h2>
<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>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not the reason, it's only a sub-part of the reason. The main reason is the reactive core. This is great, but as the cherry on the top, the cake is the reactive core.

</div>
<div class="width-9-12 width-12-12-m">
<h2>Disk Footprint</h2>
<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>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would hide this.

Our disk footprint is 10 times bigger than the equivalent Go application.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(and compressing native executable comes with a cost)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants