jdk7u-jdk | jmh | |
---|---|---|
15 | 26 | |
519 | 2,016 | |
0.6% | 2.2% | |
0.0 | 6.3 | |
4 months ago | 11 days ago | |
Java | Java | |
GNU General Public License v3.0 only | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
jdk7u-jdk
-
What Cannot Be Skipped About the Skiplist: A Survey of Skiplists and Their Appl
Skip lists are relatively simple to make lock-free, while lock-free (even unbalanced) binary search trees are an absolute nightmare.
https://github.com/openjdk-mirror/jdk7u-jdk/blob/master/src/...
-
Requiem for a Stringref
Here is the JDK 7 String#hashCode(), which operates on characters: https://github.com/openjdk-mirror/jdk7u-jdk/blob/f4d80957e89....
That's changed in the newer versions, because String has a `byte[]` not a `char[]`, but it was just fine. A hash algorithm can take in bytes, characters, ints, it doesn't matter.
In Java, you don't get access to the bytes that make up a string, to preserve the string's immutability. So for many operations where you might operate on bytes in a lower level language, you end up using characters (unless you're the standard library, and you can finagle access to the bytes), or alternately doing a byte copy of the entire string.
I admit, checksums using characters are a bit weird sounding, but they should also be perfectly well-defined.
-
Don't Share Java FileChannels
"AbstractInterruptibleChannel" seems to be doing this, and the comments/javadocs offer some hint. As to why they're designed this way, that's a good question.
https://github.com/openjdk-mirror/jdk7u-jdk/blob/master/src/...
-
Computer sucks at math
In Java, you could use BigDecimal. I linked to the source code, because it highlights the amount of complexity you get.
- In Defense of Linked Lists
- System.in and System.out
-
Default editor launched from AWT toolkit?
The windows implementation of AWT Desktop just calls the Win32 API ShellExcute function. This then quickly descends into questions such as "what version of windows do you have"; "does it correctly understand the difference between open vs. edit"; what does your registry currently contain"; etc.
- Why do we need Scanner class in order to input something?
-
Help with StringArray-changing function
ArrayList is a class, it is not an array. It stores two values. An array and its size. You can see this if you read the source code for ArrayList.
-
How does StringBuilder build the string?
The source code for the Java SDK is available on github.
jmh
- Experimenting with GC-less (heap-less) Java
-
Any library you would like to recommend to others as it helps you a lot? For me, mapstruct is one of them. Hopefully I would hear some other nice libraries I never try.
JMH for benchmarks
-
Scala collections benchmark - revisited
I would recommend using JMH instead.
- What are some advantages to Java devs learning assembly?
-
Is calling a method with reflection slower than calling a method normally? If so, by how much?
Reflection is probably very roughly between 10 and 1000 times slower. Why don't you measure it yourself using JMH?
- I benchmarked kotlin rust and go. The results will shock you , or not.
-
Need help navigating the Java ecosystem (coming from C++)
Aleksey Shipilev is another such leader, whom is especially knowledgeable about the internals of the JVM. His writings are invaluable. He is (was) the lead of the Java microbenchmark framework (JMH} which is how one would write small performance experiments in Java, and learn what really makes a difference or now.
- Are Long better than Integer as keys for a Map?
-
Threads vs Coroutines - ParallelMap Performance
In the last episode we implemented a parallelMap operation using streams, raw threads, a threadpool with futures, and coroutines. At first glance the raw threads was quickest, followed by futures, coroutines and then streams. In this, part 56 of an exploration of where a Test Driven Development implementation of the Gilded Rose stock control system might take us in Kotlin, we investigate the performance of the different functions further, in particular digging down into why coroutines seem to be slow and finding a way to speed them up. We also find a way to use a particular ForkJoinPool to run the streams code, making it as fast as the others (bar the raw threads). Frankly we only use very rough benchmarks here, with no statistical testing except 'it looks like'. That's OK for gross differences, but is highly suspect when deciding which of two similarly performant approaches is faster. For that check out JMH and you could watch my video from KotlinConf 2017
-
Just another way to run JMH benchmark with Eclipse
A few months ago, we started to use JMH in our project to test and find performance issues. The tool provides multiple modes and profilers, and we found this useful for our purposes.
What are some alternatives?
re2j - linear time regular expression matching in Java
async-profiler - Sampling CPU and HEAP profiler for Java featuring AsyncGetCallTrace + perf_events [Moved to: https://github.com/async-profiler/async-profiler]
libcxx - Project moved to: https://github.com/llvm/llvm-project
opentelemetry-java-instrumentation - OpenTelemetry auto-instrumentation and instrumentation libraries for Java
multichase
OpenJ9 - Eclipse OpenJ9: A Java Virtual Machine for OpenJDK that's optimized for small footprint, fast start-up, and high throughput. Builds on Eclipse OMR (https://github.com/eclipse/omr) and combines with the Extensions for OpenJDK for OpenJ9 repo.
rust - Empowering everyone to build reliable and efficient software.
async-profiler - Sampling CPU and HEAP profiler for Java featuring AsyncGetCallTrace + perf_events
Taren - Useful C++ templates
go - The Go programming language
OpenVDB - OpenVDB - Sparse volume data structure and tools
Arthas - Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas