Giter Club home page Giter Club logo

skater's Introduction

Skater

A framework for benchmarking shell-commands. Written in Haskell.

Goals

The idea is to provide a simple, but precise, easy-to-use environment where it is possible to launch benchmarks and collect execution time.

Building

stack tool is required. After you have install it in your system:

git clone https://github.com/fusiled/Skater
cd Skater
stack build

The library heavily leverages Turtle for spawning shell commands. The execution time is collected with the criterion package.

Usage

stack exec Skater-exec <path-to-skater-context> <path-to-benchmark-file>

A basic test example can be launched with:

stack exec Skater-exec examples_json/default_context.json examples_json/benchmark_example.json

You can write you own JSON files by looking at the simple examples provided in the examples_json folder. If you want to add different type of Benchmark you can extend the data Benchmark inside src/Skater.hs

TODO

  • Improve JSON parsing. The JSON parsing is very simple. The idea is to use generics for making the system more flexible (Removing a Map from the source code in Skater.hs)
  • Implement usage of stderr stream (a Turtle limitation?). It seems that with Turtle it is possible to use the stdout stream. It could be possible to try to hard-code in the command string the redirection to /dev/stderr, but it doesn't look very nice.
  • Implement test-cases

Post-Note

This is my first work written in Haskell. Please be patient if everything is not performed in the Haskell way. For any feedback, please contact me.

skater's People

Contributors

fusiled avatar

Stargazers

 avatar

Watchers

 avatar

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.