From Mexico.purplecow.org

Jump to: navigation, search

System call breakdown for ruby's "gem" command

Overview

Called with no parameters - the sole actual work is to print usage information. It takes a long time, so let's have a look at what happens:

A quick truss

$ truss gem >rubygem.truss 2>&1
$ grep -c open rubygem.truss
656
$ grep -c stat rubygem.truss
1372
$ wc -l rubygem.truss
    4836 rubygem.truss

Breakdown

Oh dear! So what is it actually doing?

  • brk: 701
  • close: 553
  • stat: 1371
  • llseek: 535
  • read: 889
  • open: 656
  • write: 22 (That's actually printing the usage information)
  • other: 234 (mainly mmap)

A graph

image:rubygempie.png