Skip to content

Instantly share code, notes, and snippets.

@clarkgrubb
Last active August 29, 2015 14:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save clarkgrubb/7ea9f5dac59a67b1b338 to your computer and use it in GitHub Desktop.
Save clarkgrubb/7ea9f5dac59a67b1b338 to your computer and use it in GitHub Desktop.
cat cat.js
#!/usr/bin/env node
var fs = require('fs');
var readline = require('readline');
var rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
terminal: false
});
rl.on('line', function(line) {
console.log(line);
});
$ cat cat.py
#!/usr/bin/env python
import json
import sys
for line in sys.stdin:
sys.stdout.write(line)
$ time ./cat.js < enron-events-sentiment.json > tmp.json
real 0m12.893s
user 0m7.640s
sys 0m3.818s
$ time ./cat.py < enron-events-sentiment.json > tmp.json
real 0m4.504s
user 0m0.660s
sys 0m2.634s
$ strace ./cat.js < enron-events-sentiment.json > tmp.json 2> /tmp/strace.node.out
$ strace ./cat.py < enron-events-sentiment.json > tmp.json 2> /tmp/strace.python.out
$ sed 's/(.*$//' < /tmp/strace.node.out | sort | uniq -c | sort -nr > /tmp/calls.node.out
$ sed 's/(.*$//' < /tmp/strace.python.out | sort | uniq -c | sort -nr > /tmp/calls.python.out
$ cat /tmp/calls.node.out | head -10
518149 write
63942 futex
31934 read
31918 epoll_wait
185 brk
128 mmap
62 munmap
43 mprotect
21 fstat
20 ioctl
$ cat /tmp/calls.python.out | head -10
402090 write
380763 read
353 open
151 brk
134 fstat
126 stat
89 close
88 mmap
68 rt_sigaction
51 munmap
$ strace -T ./cat.js < enron-events-sentiment.json > tmp.json 2> /tmp/strace.time.node.out
$ sed 's/(.*</ /' < /tmp/strace.time.node.out | sed 's/>$//' | awk '{sum [$1] += $2} END {for (i in sum) printf "%s %.6f\n", i, sum[i]}' | sort -nr -k2,2 | head -10
write 6.251365
futex 1.743357
epoll_wait 0.432010
read 0.202860
execve 0.003136
brk 0.002673
munmap 0.001824
mmap 0.001328
mprotect 0.000406
open 0.000362
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment