Giter VIP home page Giter VIP logo

clashofthelambdas's Introduction

Clash of the Lambdas

Microbenchmarking Stream APIs of the VM-based, multiparadigm languages: Java 8, Scala, C#, F# on Windows and on Linux.

The results are discussed in our ICOOOLPS'14 workshop paper:

http://arxiv.org/abs/1406.6631

To run the benchmarking suite as is, you will need a system with approximately 3GB of free space for heap allocation. Regarding execution time, a run on a single platform takes approximately 30-40 minutes on an Intel Core i5.

Setting up on Windows

  • Install JDK8. Create the JAVA_HOME env variable (for maven to work) and add to Path the JAVA_HOME\bin directory
  • Install Gnu Make for Windows and put the bin directory to PATH
  • Extract Maven and put the bin directory to PATH
  • Install the C#, F# compilers (if you have Visual Studio 2013 you already have them)
  • Update the paths in Makefile

Setting up on Ubuntu

Running the microbenchmarks

(via a console on Linux o via a Powershell console on Windows)

  • Compile all tests with make
  • Clean with make clean
  • Compile a specific suite with make {java, csharp, fsharp, scala}
  • Run microbenchmarks with make bench-{java, csharp, fsharp, scala} (e.g., make bench-java).

Processing the results

If you want to process the unified results we offer a gawk script for linux (that also makes use of the dos2unix command to convert windows result file encoding).

  • Run the benchmark suite with on both windows and linux with make bench > results.{windows, linux} (any filename), or use it with tee to view the results as it runs with make bench | tee results.{windows, linux}
  • See the unified results for all languages, platforms and benchmarks (the comma separated values are benchmark, mean, mean error, sdev) by running ./process results.linux results.windows > results.processed (make the script executable first).

Team

@biboudis, @NickPalladinos and Y. Smaragdakis

Footnotes:

  1. A utility that was factored out as a seperate project.

clashofthelambdas's People

Contributors

biboudis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

clashofthelambdas's Issues

Run CLR benchmarks using 64-bit.

There is a fairly significant improvement to the C# (and presumably F#) benchmarks on Windows if you force x64:
csc /platform:x64

Would also be interesting to test it with the upcoming RyuJIT CLR.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.