Git Product home page Git Product logo

willsewell / gc-latency-experiment Goto Github PK

View Code? Open in Web Editor NEW
54.0 54.0 12.0 77 KB

Exploring some worst-case latencies in GCs, inspired by a post on GHC's runtime pause times: https://making.pusher.com/latency-working-set-ghc-gc-pick-two/

License: MIT License

Haskell 5.54% Java 6.08% D 5.34% Go 3.65% OCaml 4.44% PHP 3.26% Ruby 2.47% Racket 7.52% Shell 0.59% Makefile 16.19% JavaScript 3.14% Dockerfile 10.30% C# 7.49% Python 3.44% C 6.07% Erlang 3.82% Crystal 3.64% Common Lisp 7.01%

gc-latency-experiment's People

Contributors

chenzhekl avatar dm3 avatar filipevarjao avatar gasche avatar gillchristian avatar glutamatt avatar hilzu avatar jameshfisher avatar maxsnew avatar q3cpma avatar theunrepentantgeek avatar willsewell avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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

gc-latency-experiment's Issues

OCaml test not installing

Host Windows 10, 1909
Docker 2.2.0.3 (42716)
Docker is logged in.

$ make ocaml/results.txt
docker build -t gc-ocaml ocaml
Sending build context to Docker daemon  4.608kB
Step 1/10 : FROM ocaml/opam:debian-stable_ocaml-4.04.2
pull access denied for ocaml/opam, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
mingw32-make: *** [Makefile:27: ocaml/results.txt] Error 1

Count iteration rather than relying on RTS metrics

Normalise on just counting time at each iteration instead of trying to use the language runtime's monitoring flags, which are proving too fragile besides making the system more complex/fragile and harder to port to other languages.

License?

I'm looking to use the Common Lisp version of the benchmark in a paper, detailing a parallel non-moving GC for SBCL. There wouldn't appear to be any licenses in this repository; would you be willing to add one please?

(cc: @q3cpma who wrote the CL code.)

Consider doing K rounds of N iterations

Instead of doing N iterations with the same "channel" structure, I would like to do K rounds of N iterations, with each round allocating a new channel structure and forgetting about the new one. My intuition is that this would reveal latencies associated with deterministic reference-counting that are currently hidden from the benchmark while they may manifest themselves in realistic program. But I haven't actually experimented with it to check it; if there is no counting-collection pause time, it may not be worth the extra complexity.

The benchmark harness is not correct...

I assume it is the case for other VM based languages, but simply passing the following args

-XX:+UseG1GC -Xmx512m -Xms512m -XX:MaxGCPauseMillis=10

lowered the max time from 182 ms to 28 ms

You need to understand the environment in which things are being run a little better to do benchmarks.

Understanding java/results.txt issue

Should I hire Senior Java Developer full-time to read what is written in java/results.txt?
Because it's 80 KB long.
Or it's OK to ignore the whole file and just read "Worst push time"?

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.