Skip to content

Simple comparison of Future/Promises APIs in Java, GPars, Google Guava, Akka and Finagle/Util.

License

Notifications You must be signed in to change notification settings

vazexqi/JVMFuturesExploration

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Futures Exploration

This project aims to explore the different implementations of futures available to Java. The following libraries/languages are investigated.

Example Application

The application is derived from the stock exchange application in Chapter 5 of the Microsoft Parallel Programming with .NET book. As such, this repository is also licensed under the same license, i.e., the Microsoft Patterns and Practices license.

The libraries/jars that are used as part of this project are licensed under their own respective licenses. Please refer to each library/jar for more information.

Building

Run ./gradlew build. This should fetch the relevant files from their respective Maven directories including the necessary version of Gradle.

This might not be necessary, but I believe that the Groovy and Scala tools must also be installed prior to building/running.

Benchmarking

Benchmarking is done using Google Caliper.

To run the benchmark invoke gradle runBenchmark

Sample runs can be found at http://bit.ly/LdJE2f. Note that I have not designed the benchmark to be rigorous. I am more interested in the fluency of the API and how to express the different constructs in different languages/APIs. The benchmark is just a quick sanity check to ensure that I am not doing anything wrong — all implementations should perform roughly the same.

For fairness, all my implementations try to use the newer version of the ForkJoinPool that is part of jsr166y. The jar file is packaged as part of the Akka library. This new ForkJoinPool has several improvements over the existing one in Java 7. Unfortunately, it was not possible to use this new version with GPars easily and thus, it defaults to the version of ForkJoinPool that ships with Java 7.

About

Simple comparison of Future/Promises APIs in Java, GPars, Google Guava, Akka and Finagle/Util.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published