Brian Goetz recently provided new details on the status of JSR 335 in his OpenJDK document "State of the Lambda: Libraries Edition." Project Lambda is a fundamentally important enhancement to Java 8. And, based on the response of developers in our recent poll...
A few nights ago, I was browsing the chapters about concurrent programming in Herbert Schildt's excellent "Java: The Complete Reference, 8th Edition," and I was struck by the evolution of concurrency in Java over the years, from threads, through the richness of Java 5's Concurrency Utilities, and on to Java 7's Fork/Join Framework...
With the advent of multicore processors on everything from desktop computers to tablets, pads, and even mobile phones, parallel processing is gaining increasing attention. This is at least in part what's behind the release of the Fork/Join Framework in Java 7, and the inclusion of Lambda Expressions...
In my previous blog post, I did some experimentation with simultaneous execution of multiple threads. Since the threads were all doing relatively large chunks of work, the overhead from thread creation and management was almost irrelevant. In this post, I take a look at the overhead that launching a series of threads...
Try find the billionth fibonacci number. The answer should be in hexadecimal, and to prove that you have the whole number, you need to post the first 10 bytes and the last 10 bytes. I solved it in 2500 seconds on an 8-core machine. Winner will get special mention.
What is the largest double that could in theory be produced by Math.random()? In this newsletter, we look at ways to calculate this based on the 48-bit random generator available in standard Java. We also prove why in a single-threaded program, (int)(Random.nextDouble() + 1) can never be rounded up to 2.
I mentioned the idea to use Wordle as an execution profiler while presenting the profiling section of my performance tuning course in Paris last December. The idea was seeded by presentation that Neal Ford did a few years ago in which he used Wordle to expose the vocabulary of a Java application. Instead of vocabulary, I wanted to see if Wordle could be used to visualize an applications dominate behavior.
JavaFX 2.0 is not multiplatform! It can't do subpixel antialiasing!! … these were among the reactions to the first beta releases, that I'm not sure to understand as trolling or simple laziness. These mysteries are usually solved with a simple look at JavaFX's public JIRA issue tracking system. The current implementation is still a beta, not even a feature-complete beta, so there are many...
Release the newest version of the framework to persist objects in Apache Cassandra in easy way. Among improvement is the JPA annotations, also JPQL.
JCassandra jCassandra=persistence.createJCassandra("select * from Person"); List<Person> persons=jCassandra.getResultList();
table 1: sample using JPQL in Easy-Cassandra
The Memcached is the bestknown in-memory key-value store(cache). For using Memcached, you need clients and many clients already exist. You can also find Memcached clients based on Java.
Though there are already good Memcached clients which have optimized Memcached operations a long time, I would like to introduce GrizzlyMemcached based on Grizzly framework which is very scalable and gives high performance.
In some earlier posts, I've talked about Java threads, Java Thread Overhead, and Amdahl's Law and Parallel Processing Speed-Up. My next investigation in this series is Java 7's new Fork/Join Framework. I plan to spend quite a lot of time in this particular investigation...
invokedynamic is getting faster, a lot of faster.
Easy-Cassandra is a framework ORM API and a high client for Apache Cassandra in java, with this is possible persist information from the Java Object in easy way. For this is only necessary add some annotations in some fields and your class. It works like an abstraction's tier in the Thrift, doing call for Cassandra.
Today I decided it was past time to reorganize the slides in the performance testing section of the course. I added a number of new diagrams and charts to help organize the materials and then I went back and started to review some of the definitions that I was using. First up was the question; what is performance testing and how is it related to load testing
"The multicore challenge" is the challenge to developers of software products to write code that effectively utilizes modern multi-core / multi-processor computers. Two years ago, I wondered if the multicore challenge was still relevant. In part, I was thinking about how applications were moving from the desktop into the cloud. So, if the apps people are running are running in a browser, does it matter if their desktop system (or pad or phone) is multicore?...
This page is for introducing Grizzly-Thrift server/client modules and sharing various benchmarking results.
Object serialization/deserialization of Java comes expensive. For improving this lack, we sometimes used to use other frameworks for RPC such as Protobuf and Thrift which support various programming languages, RPC and own data structures.
Especilally, Thrift has already provided various...
One of the old bits of tuning advice given when Java memory management was not as tall as it it today was to set max heap to min heap. After all, we don't really want the JVM messing around with memory when it should really be getting on with things. Fast forward a few years and the adaptive memory management picture has matured considerably.
Just wrapped up my last performance tuning course for this year and for the second time running, some members of my Parisian group had the opportunity to run the exercises on virtualized hardware. The results were interestingly horrible
In my last blog I’ve introduced JavaFX 2.0 beta, describing an initial port of JavaFX Balls, also in beta stage at that time. Now I finally finish JavaFX Balls 3.
Look ma, no design!
I don’t pretend to be a designer, and the consequence is that when I make a mashup of animation, video and web, that’s the result. Get the source code here.
I’ve added new layers of content...
By now, you are hopefully well aware that Glassfish 3.1 has been released. Because the performance group has been a little quiet lately, maybe you're thinking there aren't a lot of interesting performance features in this release. In fact, there are two key performance benefits: one which benefits developers, and one which is important for anyone using Glassfish's new clustering and high-...