$30 off During Our Annual Pro Sale. View Details »

Rubinius Euruko 2012 Lightning talk

Rubinius Euruko 2012 Lightning talk

A short story about optimizing Rubinius for a web application

Dirkjan Bussink

June 01, 2012
Tweet

More Decks by Dirkjan Bussink

Other Decks in Programming

Transcript

  1. Rubinius
    Use Ruby

    View Slide

  2. Dirkjan Bussink
    [email protected]

    View Slide

  3. 20 reqs/s
    750 reqs/s

    View Slide

  4. Disclaimer
    All these numbers are just relative
    for this specific test app on Rubinius.
    They cannot just be extrapolated
    to your application
    DO try this at home!

    View Slide

  5. View Slide

  6. 0
    10
    20
    30
    40
    10 20 30 40 50 60 70 80 90 100
    requests / second
    Concurrent clients
    Requests

    View Slide

  7. 0
    7.5
    15
    22.5
    30
    50 100 150 200 250 300 350 400 450 500
    requests / second
    Concurrent clients
    Requests

    View Slide

  8. View Slide

  9. View Slide

  10. class Hash
    def find_item(key)
    key_hash = key.hash
    ...
    end
    end

    View Slide

  11. 0
    15
    30
    45
    60
    10 20 30 40 50 60 70 80 90 100
    requests / second
    Concurrent clients
    Requests

    View Slide

  12. 0
    7.5
    15
    22.5
    30
    50 100 150 200 250 300 350 400 450 500
    requests / second
    Concurrent clients
    Requests

    View Slide

  13. View Slide

  14. View Slide

  15. bool ObjectMemory::refill_slab(STATE, gc::Slab& slab) {
    SYNC(state);
    Address addr = young_->allocate_for_slab(slab_size_);
    ...
    }

    View Slide

  16. 0
    75
    150
    225
    300
    10 20 30 40 50 60 70 80 90 100
    requests / second
    Concurrent clients
    Requests

    View Slide

  17. 0
    200
    400
    600
    800
    50 100 150 200 250 300 350 400 450 500
    requests / second
    Concurrent clients
    Requests

    View Slide

  18. 0
    200
    400
    600
    800
    50 100 150 200 250 300 350 400 450 500
    requests / second
    Concurrent clients
    Requests Before 2 Before 1

    View Slide

  19. View Slide