Skip to content

Instantly share code, notes, and snippets.

View mcollina's full-sized avatar

Matteo Collina mcollina

View GitHub Profile
@mcollina
mcollina / streams.js
Created July 2, 2015 12:30
Stream examples
var Readable = require('stream').Readable
var Writable = require('stream').Writable
var Transform = require('stream').Transform
var a = new Readable({ objectMode: true })
var b = new Transform({ objectMode: true })
var c = new Writable({ objectMode: true })
a.counter = 0
@mcollina
mcollina / master.txt
Created November 10, 2015 22:33
Node clearBuffer perf improvements
$ ../node common.js http
http/chunked.js
http/chunked.js num=1 size=1 c=100: 16496.27000
http/chunked.js num=1 size=64 c=100: 16891.47000
http/chunked.js num=1 size=256 c=100: 16802.94000
http/chunked.js num=4 size=1 c=100: 8066.31000
http/chunked.js num=4 size=64 c=100: 7630.74000
http/chunked.js num=4 size=256 c=100: 7591.24000
http/chunked.js num=8 size=1 c=100: 4801.81000
http/chunked.js num=8 size=64 c=100: 4770.07000
@mcollina
mcollina / person.js
Created November 30, 2015 17:02
Object oriented technology was great - now enter microservices with Node.js
{
person: {
name: 'Matteo'
surname: 'Collina'
}
}
@mcollina
mcollina / master.txt
Last active December 15, 2015 11:53
node clearBuffer improvements 2
$ make bench-net bench-http
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C out BUILDTYPE=Release V=1
make[1]: Nothing to be done for `all'.
ln -fs out/Release/node node
net/dgram.js
net/dgram.js len=1 num=100 type=send dur=5: 0.00123
net/dgram.js len=1 num=100 type=recv dur=5: 0.00017
net/dgram.js len=64 num=100 type=send dur=5: 0.07245
net/dgram.js len=64 num=100 type=recv dur=5: 0.01284
net/dgram.js len=256 num=100 type=send dur=5: 0.30798
@mcollina
mcollina / clearBuffer-small-chunks.txt
Last active December 19, 2015 17:02
Node clearBuffer improvements for small chunks
$ make bench-net bench-http
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C out BUILDTYPE=Release V=1
make[1]: Nothing to be done for `all'.
ln -fs out/Release/node node
net/dgram.js
net/dgram.js len=1 num=100 type=send dur=5: 0.00120
net/dgram.js len=1 num=100 type=recv dur=5: 0.00020
net/dgram.js len=64 num=100 type=send dur=5: 0.07694
net/dgram.js len=64 num=100 type=recv dur=5: 0.01286
net/dgram.js len=256 num=100 type=send dur=5: 0.30724
@mcollina
mcollina / new-dgram-bench.txt
Last active December 22, 2015 13:17
new-dgram-bench
$ make bench-dgram
dgram/headers.js
dgram/headers.js len=64 num=100 chunks=1 headers=4 type=concat dur=5: 0.05040
dgram/headers.js len=64 num=100 chunks=1 headers=4 type=multi dur=5: 0.06596
dgram/headers.js len=64 num=100 chunks=2 headers=4 type=concat dur=5: 0.05389
dgram/headers.js len=64 num=100 chunks=2 headers=4 type=multi dur=5: 0.06702
dgram/headers.js len=64 num=100 chunks=4 headers=4 type=concat dur=5: 0.05220
dgram/headers.js len=64 num=100 chunks=4 headers=4 type=multi dur=5: 0.06310
dgram/headers.js len=64 num=100 chunks=8 headers=4 type=concat dur=5: 0.04951
dgram/headers.js len=64 num=100 chunks=8 headers=4 type=multi dur=5: 0.05822
@mcollina
mcollina / index.js
Created December 31, 2015 10:33
aedes redis
'use strict'
var aedes = require('aedes')({
mq: require('mqemitter-redis')(),
persistence: require('aedes-persistence-redis')()
})
var server = require('net').createServer(aedes.handle)
var port = 1883
@mcollina
mcollina / keybase.md
Created September 19, 2016 15:36
keybase.md

Keybase proof

I hereby claim:

  • I am mcollina on github.
  • I am matteocollina (https://keybase.io/matteocollina) on keybase.
  • I have a public key whose fingerprint is 3ABC 0154 3F22 DD22 3928 5CDD 8186 7448 9FBC 127E

To claim this, I am signing this object:

var r = /hello/
console.time('instanceof')
for (var i = 0; i < 100000000; i++) {
r instanceof RegExp
}
console.timeEnd('instanceof')
'use strict'
var app = require('express')()
var http = require('http')
var server = http.createServer(app)
app.get('/', function (req, res) {
res.send('hello world')
})