Jean-Philippe Bempel

474 Followers
19 Following
166 Posts
Sr Sw Eng @Datadoghq, optimize software running on JVM. Love performance topics and mechanical sympathy supporter. Java Champion & @javamissionctrl committer
@jpbempel.bsky.social
WEBhttp://jpbempel.github.io
Blue Sky@jpbempel.bsky.social

RT @[email protected]

IntelliJ IDEA 2023.1 EAP contains a nice feature: it helps to complete -XX VM options when you are editing the run configuration. Just type -XX: and start typing substring of the option you need.

🐦🔗: https://twitter.com/tagir_valeev/status/1620354382620672002

Tagir Valeev on Twitter

“IntelliJ IDEA 2023.1 EAP contains a nice feature: it helps to complete -XX VM options when you are editing the run configuration. Just type -XX: and start typing substring of the option you need.”

Twitter

RT @[email protected]

For the last half year I developed an IntelliJ plugin based on Firefox Profiler, to view JFR files directly in IntelliJ and to profile applications using async-profiler and JFR: I just released the early beta of Java JFR Profiler
https://mostlynerdless.de/blog/2023/01/31/firefox-profiler-beyond-the-web/

🐦🔗: https://twitter.com/parttimen3rd/status/1620373834384936961

Firefox Profiler beyond the web | Mostly nerdless

RT @[email protected]

Looks at TR 3970X core-to-core latency figures in oscillating awe and disgust. This is a part of "Yea, run 2-thread producer-consumer benchmarks on a large and busy machine, what could possibly go wrong".

🐦🔗: https://twitter.com/shipilev/status/1620344426651607040

Aleksey Shipilëv on Twitter

“Looks at TR 3970X core-to-core latency figures in oscillating awe and disgust. This is a part of "Yea, run 2-thread producer-consumer benchmarks on a large and busy machine, what could possibly go wrong".”

Twitter

RT @[email protected]

Another example of what RyuJIT is capable to fold in .NET 8.0 - this whole thing is folded to a just `ret const` including accesses to static arrays by index (via https://github.com/dotnet/runtime/pull/81005) No magic intrinsics involved

🐦🔗: https://twitter.com/EgorBo/status/1617516242419724289

Optimize "new DateTime(<const args>)" via improvements in JIT VN by EgorBo · Pull Request #81005 · dotnet/runtime

This PR is the last missing piece to fold new DateTime(2023, 1, 22) call into just a constant in JIT. While there is not much value in folding DateTime specifically, the PR(s) improves constant fol...

GitHub

RT @[email protected]

JCStress now knows about NUMA configuration and is able to run the variable-affinity tests knowing that. I.e. it now automatically covers the question "What happens if we run two actor threads on different NUMA nodes?"

Example detected config on TR 3970X:

🐦🔗: https://twitter.com/shipilev/status/1616405717547728896

Aleksey Shipilëv on Twitter

“JCStress now knows about NUMA configuration and is able to run the variable-affinity tests knowing that. I.e. it now automatically covers the question "What happens if we run two actor threads on different NUMA nodes?" Example detected config on TR 3970X:”

Twitter

RT @[email protected]

Like every second week, I blogged again, this week on AsyncGetStackTrace, a better stack trace API for the JVM: https://mostlynerdless.de/blog/2023/01/19/asyncgetstacktrace-a-better-stack-trace-api-for-the-jvm/

I will also talk on this topic at FOSDEM, and I am happy to meet people there.

🐦🔗: https://twitter.com/parttimen3rd/status/1616090222810333184

AsyncGetStackTrace: A better Stack Trace API for the JVM | Mostly nerdless

RT @[email protected]

Wouldn't you like to be able to allocate an infinite amount of memory on your machine?

Read my latest post on how we almost can get there allocating 64 terabytes on a laptop!

Java 20: An Almost Infinite Memory Segment Allocator

http://minborgsjavapot.blogspot.com/2023/01/java-20-almost-infinite-memory-segment.html

@[email protected]

🐦🔗: https://twitter.com/PMinborg/status/1615681981995433985

Java 20: An Almost Infinite Memory Segment Allocator

A blog about Java

See my blog post for explanation of the phenomenon
https://jpbempel.github.io/2020/05/22/startup-containers-tieredcompilation.html

RT @[email protected]

Here's the comparison of my Spring Boot app startup time between standard and native compilation depending on the CPU limit (from 1 core to 0.1 core). I'm testing on Kubernetes.

🐦🔗: https://twitter.com/piotr_minkowski/status/1615456665729474567

Startup, containers & Tiered Compilation

Startup, containers & Tiered Compilation Introduction Since the introduction of containers, the way we are running JVM applications has changed a lot. In the same time, microservices architecture rises and the usage of container orchestration like Mesos or Kubernetes has transformed our approach of deployment. With all of that, I end up encountering people configuring a container with less than 1 core. Yes, with docker, for example, we can specify that the container will run with a fraction of a core (called millicores in Kubernetes). The kernel is dealing with that using cpu scheduling quota (see CFS bandwidth). If it could make sense to put 1.5 or 2.5 on an already multi-core machine, putting less than a core has different implications…

It’s All Relative

RT @[email protected]

Extended OpenJDK JOL (https://github.com/openjdk/jol) to simulate current and future Lilliput project better. You can feed it classes or heapdumps to get an total size estimate under different layout strategies: https://gist.github.com/shipilev/ce53bccd9142ca4f56c703e9df2a8600

🐦🔗: https://twitter.com/shipilev/status/1615095410569232384

GitHub - openjdk/jol: https://openjdk.org/projects/code-tools/jol

https://openjdk.org/projects/code-tools/jol. Contribute to openjdk/jol development by creating an account on GitHub.

GitHub

RT @[email protected]

@[email protected] @[email protected] My first step for checking inlining would be to visualise in #JITWatch where you can view annotated invoke bytecodes and the tooltips tell you inlined/vcall. Next I would use JFR method profiling for top itable/vtable stubs (get a good sized profile).

🐦🔗: https://twitter.com/chriswhocodes/status/1612933176900329473

@[email protected] on Twitter

“@forked_franz @p_bouda My first step for checking inlining would be to visualise in #JITWatch where you can view annotated invoke bytecodes and the tooltips tell you inlined/vcall. Next I would use JFR method profiling for top itable/vtable stubs (get a good sized profile).”

Twitter