Blog on Java, Performance, Concurrency, NIO, Unsafe, Low latency, Programming, Software, Philosophy| psy-lob-saw.blogspot.com
Inlining is a powerful and common optimization technique used by compilers. | Psychosomatic, Lobotomy, Saw
JDK 9 is out! But as a library writer, this means change, and change can go either way... Once we've satisfied that JCTools works with JDK9, what other observations can we make? Well, one of the main motivations for using JCTools is performance, and since the code has been predominantly tested and run with JDK8, is it even better with JDK9? is it worse?| Psychosomatic, Lobotomy, Saw
FlameGraphs are superawesome. If you've never heard of FlameGraphs and want to dive straight in the deep end, you should run off and check out the many many good resources provided by Brendan Greg in his one stop shop page here. This post will give a quick intro and some samples to get you started with collecting profiles for all JVMs everywhere. I'm taking a slightly different tack then Brendan in presenting the topic, so if it turns out my explanations suck you should see if his make more s...| Psychosomatic, Lobotomy, Saw
Paved with well intended definitions it is.| Psychosomatic, Lobotomy, Saw
JCTools has a bunch of benchmarks we use to stress test the queues and evaluate optimizations. | Psychosomatic, Lobotomy, Saw
When considering concurrent queues people often go for either:| Psychosomatic, Lobotomy, Saw
This has been a very slow year blogging wise... too much work, travel, and family. 4 years ago I aimed for 2 posts a month. I nearly hit it in 2013, failed by a little in 2014, and went on to not meeting at all the last 2 years...| Psychosomatic, Lobotomy, Saw
Copyright © 2016 Apache Software Foundation| Psychosomatic, Lobotomy, Saw
So, going on from my whingy post on safepoint bias, where does one go to get their profiling kicks? One option would be to use an OpenJDK internal API call AsyncGetCallTrace to facilitate non-safepoint collection of stack traces.| Psychosomatic, Lobotomy, Saw
I've just run into this issue this week, and it's very cute, so this here is a summary. Akka has their own MPSC linked queue implementation, and this week in was suggested they'd swap to using JCTools. The context in which the suggestion was made was a recently closed bug with the mystery title: AbstractNodeQueue suffers from nepotism| Psychosomatic, Lobotomy, Saw
This post builds on the basis of a previous post on safepoints. If you've not read it you might feel lost and confused. If you have read it, and still feel lost and confused, and you are certain this feeling is related to the matter at hand (as opposed to an existential crisis), please ask away.| Psychosomatic, Lobotomy, Saw
In this previous post about Safepoints I claimed that this here piece of code:| Psychosomatic, Lobotomy, Saw
I've been giving a couple of talks in the last year about profiling and about the JVM runtime/execution and in both I found myself coming up against the topic of Safepoints. Most people are blissfully ignorant of the existence of safepoints and of a room full of people I would typically find 1 or 2 developers who would have any familiarity with the term. This is not surprising, since safepoints are not a part of the Java language spec. But as safepoints are a part of every JVM implementation ...| Psychosomatic, Lobotomy, Saw
Continuing from previous post on the expansion of the Queue interface to support new ways of interacting with queues I have gone ahead and implemented relaxedOffer/Poll/Peek for the JCTools queues. This was pretty easy as the original algorithms all required a bit of mangling to support the strong semantic and relaxing it made life easier. Implementing batch/continuous interactions was a bit more involved, but the results were interestingly rewarding. I will save discussing the drain/fill res...| Psychosomatic, Lobotomy, Saw
In my work on JCTools I have implemented a fair number of concurrent access queues. The Queue interface is part of the java.util package and offers a larger API surface area than I found core to concurrent message passing on the one hand, and still missing others. I'm hoping to solicit some discussion on some new methods, and see if I can be convinced to implement those I decided to avoid thus far.| Psychosomatic, Lobotomy, Saw
There is an edge that JMH (read the jmh resources page for other posts and related nuggets) has over other frameworks. That edge is so sharp you may well cut yourself using it, but given an infinite supply of bandages you should definitely use it :-) This edge is the ultimate profiler, the perfasm (pronounced PERF-AWESOME!, the exclamation mark is silent). I've been meaning to write about it for a while and as it just saved my ass recently...| Psychosomatic, Lobotomy, Saw
It is a fact well known to those who know it well that "==" != "equals()" the example usually going something like:| Psychosomatic, Lobotomy, Saw
Yo, Check the diagonal, three brothers gone...| Psychosomatic, Lobotomy, Saw
{This post is part of a long running series on lock free queues, checkout the full index to get more context here}| Psychosomatic, Lobotomy, Saw
{This post turned rather long, if you get lazy feel free to skip to the summary}| Psychosomatic, Lobotomy, Saw
YCSB is the Yahoo Cloud Serving Benchmark(also on wiki): a generic set of benchmarks setting out | Psychosomatic, Lobotomy, Saw
Some years back I was working on a latency sensitive application, and since latency was sensitive it was a requirement that we somehow capture latency both on a transaction/event level and in summary form. The event level latency was post processed from the audit logs we had to produce in any case, but the summary form was used for live system monitoring. We ended up with a solution I've seen since in many places (mild variations on a theme), which is what I've come to think of as the linear ...| Psychosomatic, Lobotomy, Saw
{This post is part of a long running series on lock free queues, checkout the full index to get more context here}| Psychosomatic, Lobotomy, Saw
{This post assumes some familiarity with JMH. For more JMH related content start at the new and improved JMH Resources Page and branch out from there!}| Psychosomatic, Lobotomy, Saw
Blog on Java, Performance, Concurrency, NIO, Unsafe, Low latency, Programming, Software, Philosophy| psy-lob-saw.blogspot.com
Blog on Java, Performance, Concurrency, NIO, Unsafe, Low latency, Programming, Software, Philosophy| psy-lob-saw.blogspot.com
Blog on Java, Performance, Concurrency, NIO, Unsafe, Low latency, Programming, Software, Philosophy| psy-lob-saw.blogspot.com