Who we are

We are the developers of Plastic SCM, a full version control stack (not a Git variant). We work on the strongest branching and merging you can find, and a core that doesn't cringe with huge binaries and repos. We also develop the GUIs, mergetools and everything needed to give you the full version control stack.

If you want to give it a try, download it from here.

We also code SemanticMerge, and the gmaster Git client.

sgen is getting ready for production

Monday, May 17, 2010 Pablo Santos 9 Comments

Last week I was running some tests together with Mark Probst on our test cluster using Plastic SCM and the new sgen garbage collector.

The load test consists on the following:

  • Each client downloads the entire project (runs an update from version control)
  • Creates a branch
  • Modifies 5 files
  • Checkins all changes
  • Goes back to step 1 (up to 5 times)

    So, we run 85 clients on 85 different machines against one single Plastic SCM server running MySql on Linux and using Mono + sgen.

    The results are: sgen, right now is only 15% slower than Boehm.


  • As you can see time gets better when you increase nursery size, but what's extremely better is overall memory usage: first VM peak mem is much lower and at the end of the test we checked how RES mem is also much, much lower. During the test memory consumption is also lower and you can see how sgen frees virtual memory (something you'll never see with Boehm, and ends up being a big problem).









    version (85 concurrent clients)time (sec)Peak VM(Gb)RES and GC (final)
    boehm gc4942.4600
    MONO_GC_PARAMS=nursery-size=4m
    10070.7200
    MONO_GC_PARAMS=nursery-size=16m6400.8200
    MONO_GC_PARAMS=nursery-size=32m5890.9200
    MONO_GC_PARAMS=nursery-size=256m5681.1200
    Pablo Santos
    I'm the CTO and Founder at Códice.
    I've been leading Plastic SCM since 2005. My passion is helping teams work better through version control.
    I had the opportunity to see teams from many different industries at work while I helped them improving their version control practices.
    I really enjoy teaching (I've been a University professor for 6+ years) and sharing my experience in talks and articles.
    And I love simple code. You can reach me at @psluaces.

    9 comments:

    1. How does RSS compare between sgen and Boehm?

      ReplyDelete
    2. In terms of memory usage SGEN is dramatically better than Boehm. Less than half of the mem info.

      ReplyDelete
    3. Is there a chance to get SGEN as default GC in the next Mono release? :)

      ReplyDelete
    4. Is this the measured collection time?
      How does the memory allocation perform?

      ReplyDelete
    5. Thanks a lot for doing the load testing with Sgen and for being willing to test this new garbage collector in Mono Pablo!

      Miguel.

      ReplyDelete
    6. Pretty sweet. So a 15% performance hit for 50% of the memory usage. I should start running with this locally ;)

      ReplyDelete
    7. Hi "anonymous" :-)

      No, the time is total test time: it means, our server finishing the entire test, handling 85 clients performing actions like crazy!

      Yes, results are very good and sgen is getting really ready for production. Sounds cool.

      And overall, Mono/C# performance is really strong: I'll be sharing some results with you (I already shared them with Miguel a week ago or so) about how Mono/Plastic outperforms Git doing a simple add/ci cycle...

      ReplyDelete
    8. Pablo, perhaps you could update the post to better highlight the memory savings (this comment came from the guys on IRC)

      ReplyDelete