jmh
picocli
jmh | picocli | |
---|---|---|
26 | 29 | |
2,025 | 4,720 | |
2.7% | - | |
6.3 | 8.8 | |
3 days ago | 1 day ago | |
Java | Java | |
GNU General Public License v3.0 only | Apache License 2.0 |
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.
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.
picocli
-
GraalVM for JDK 21 is here
Picocli allows using a compiler annotation processor to generate classes at compile time instead [0].
[0]: https://github.com/remkop/picocli/blob/main/picocli-codegen/...
-
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.
Picocli is a pretty good one for writing CLI apps
-
“Why I develop on Windows”
"and there are simply no good command line input parsing libraries for Java."
Looks like author missed the most obvious and popular OSS one: https://picocli.info/
-
Java 20 / JDK 20: General Availability
The command line example gave me the "ick". It is usually preferrable to parse the command line arguments into one instance of a custom "command class", rather than into a list of things. Like jcommander, picocli or jbock do.
-
any opinion good or bed about a code that smells?
Complex argument parsing needs to be auto-generated by libraries like picocli. Even if you need something custom, it'd be quicker to write an Annotation processor from scratch than editing that file.
-
Owl: A toolkit for writing command-line user interfaces in Elixir
https://github.com/remkop/picocli
"Picocli-based applications can be ahead-of-time compiled to a GraalVM native image, with extremely fast startup time and lower memory requirements, which can be distributed as a single executable file."
https://picocli.info/quick-guide.html
-
Building a Java CLI. How can I make it more powershell-friendly
Using picocli to handle your command line options gives you the best chance to automatically generate an ArgumentCompleter script in the future, but won't help you today (other than possibly making your command line handling more standardized & easier).
-
must known frameworks/libs/tech, every senior java developer must know(?)
Picocli
-
🔍 Validate New-Caledonia Phone Numbers from cli ⌨️
Then we released a JBang! and picocli based cli that would be, on any OS running a jvm runtime :
-
📲 Inspired by Twilio we started to build our own (pico)cli to send sms
picocli : "a mighty tiny command line interface"
What are some alternatives?
async-profiler - Sampling CPU and HEAP profiler for Java featuring AsyncGetCallTrace + perf_events [Moved to: https://github.com/async-profiler/async-profiler]
Spring Shell 3 - Spring based shell
opentelemetry-java-instrumentation - OpenTelemetry auto-instrumentation and instrumentation libraries for Java
JCommander - Command line parsing framework for Java
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.
args4j - args4j
async-profiler - Sampling CPU and HEAP profiler for Java featuring AsyncGetCallTrace + perf_events
Airline - Java annotation-based framework for parsing Git like command line structures
go - The Go programming language
JLine - JLine is a Java library for handling console input.
Arthas - Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas
JewelCLI - JewelCli uses an annotated interface definition to automatically parse and present command line arguments