Ruby Bench Intros

If you would like to help out with the Ruby Bench project, please reply here:

  1. Who are you?
  2. What would you like to work on?
  3. How much time can you dedicate to the project?

I’ll start,

Sam Saffron, my blog is at http://samsaffron.com/ , I have always been passionate about all things performance.

I am very tight on time, can help coordinate stuff and assist with some raw scripts and vision.

I have about 2-4 hours max a week I can dedicate to this project.

Hi,

Damien Mathieu. I don’t have much experience in advanced performance tools.
But I would definitely give a hand on the UI and integration part of things.

The amount of time I can dedicate can vary a lot, let’s say it would be between 2 and 7 hours a week.

Hey, I’m Robert Jackson. I’ve been a Ruby programmer for quite a while (mostly Rails related projects), and more recently became a member of the Ember Release Management Team.

I am looking to create the same sort of long running benchmark process for the Ember project, and I think that the efforts here will likely be able to assist with that (if nothing more than to inform the process).

I could work on the backend API service to receive the benchmark numbers, the actual data gathering (benchmark script[s]), and the front-end (possibly an Ember UI consuming the API service?).

I can likely dedicate 10-20 hours per week on this project.

Next steps?

A clean API to run benchmarks and collect results. Perhaps we should use docker, to guarantee versioning. I started working on this, but it quickly can become a house of cards.

Repo is here: https://github.com/SamSaffron/ruby-bench/blob/master/run_bench.rb

Regarding UI, we need to decide if we can use one of the existing ones? clone one? build something entirely new? Extend something existing?

Perhaps we could schedule a kickoff call (hangout/skype/etc) to discuss overall vision so that we are all on the same page and we can come up with a plan.

1 Like

Sure, lets wait a few days for the rest to chime in, call next Tuesday, US morning time, if possible?

Hi all,

I’m Andy Pike, I’m relatively new to the Ruby community (3-4 years) and come from a .NET background. I’m happy to work on anything but I don’t have a great deal of experience with advanced Ruby topics like performance profiling (totally happy to learn this stuff). My time is hard to predict, some weeks I’ll have loads of time in the evenings to get stuck in but other weeks I’ll have hardly any time. I’m not the right person to take the lead on this one, but happy to support and work on whatever when I can. I’m in the UK and my availability is generally evenings from 8pm.

Cheers

Andy

@andypike @rwjblue @dmathieu

Can we do a quick, kick off call on Monday 5PM EST? (it works out to be 9AM my time) My Skype is sam.saffron<at>gmail.com ?

Hi everyone

My name is Mario Visic and i’ve been working with both ruby and rails since 2009, I currently work full time on web applications using rails and I live in Melbourne, Australia.

I don’t mind helping out whereever is neccessarily, I’m both a backend and frontend developer. Building a standardized way to run benchmarks and collect results interests me as well as displaying the data in an easy to use way. I’m also really into total end user performance so i’d like for the thing we build to itself be very quick!

I can dedicate around 5 to 10 hours a week to working on the project.

I’ll suppose i’ll speak to you all tomorrow.

Cheers
Mario

@sam: unfortunately, 5pm EST (which is my 11pm) is not going to be possible for me on such short notice :frowning:

No worries, will fill you in after the call.

Hi All,
I’m Dan McClain, a partner at DockYard, a Rails and Ember consultancy. I started working with ruby about 3-4 years ago, transitioning to it full time after leaving .Net 2 years ago. I maintain a couple of ActiveRecord related gems, and have started really thinking about performance. I don’t have much profiling experience, but definitely want to change that. I’d be interested in working on both the front end and the data gathering as well. I’d be able to help most on the front end (API and as @rwjblue suggested possible Ember UI) until I get up to speed on benchmarking practices. Most weeks I’d be able to contribute 5 hours, possible more.

I won’t be able to make the call at 5PM today

Perhaps we should schedule a call at a better time, or simply start planning without a call? Herding cats is complicated.

Indeed it is complicated. What we need is a quick breakdown of the steps, and an overall game plan. Doesn’t need to be super detailed yet, though.

I am still game for a call to layout the basic ideas and decide a general path forward…

Basic minutes of call:

@rwjblue @andypike @mariovisic and @sam attended.

  • We want to build this on Ruby all the way through, so will not reuse existing PyPy or Go front ends

  • Project will be split into 3 parts: UI, API and Runner. Runner will post up json results to the API, UI will talk to the API

  • Some suggested an Ember front end for the UI, personally I am happy with whatever the team working on the API decides on be it Ember or traditional. I do want to ensure it is very easy to contribute to the front end.

  • I created a home for the project at Github, will add people to the organisation as needed https://github.com/organizations/ruby-bench

  • @andypike and @rwjblue are interested in UI / API. @mariovisic and myself interested in Runner

  • We need to define a “language / format” for results posted to the API as a first priority, everything flows from that, @rwjblue to create a topic here to discuss a proposed format

  • Timelines are complicated to set at the moment

  • Long term goal is isolate performance gains and regressions for a particular bench suite.

  • Engine is to be capable of running a suite comparing MRI performance over time, Rails performance over time and so on. When comparing performance overtime environment will be fixed except for the component being tested. So, for example, if testing Rails perf over time one would only change the Rails git repo and keep gems and Ruby versions fixed.

  • We need to think of an efficient way to bootstrap environments, I suggested storing historic builds of every version of Ruby to speed up running any historic benches we need.

:slight_smile:

Howdy all! Looks like I’m a bit late, but I’m Ben Weintraub, relatively new to Ruby (~2.5 years) by way of a mishmash of C, Objective-C, and lots of other stuff. I work at New Relic on the newrelic_rpm gem, and have set up a system kind of like this internally (though much more limited in scope) for our internal benchmarks. I’m interested in helping to build something better and more general.

I’m specifically interested in helping out with the runner or the API (or both).

I’ve got probably 2-5 hours / week that I can dedicate, though possible more for a spell early next year.

That’s an awesome start. Sorry for not being able to make it.
About bootstrapping the environments, docker has already been mentioned, and I think it’s definitely the way to go to easily get stored and quickly bootable builds.

I could definitely work on setting up this kind of environment.

I’ll be immediately able to contribute to the front end/API if you are looking to allocate resources. I would be in the runner but i’d need to get up to speed before being able to make super useful contributions