Skip to content

Instantly share code, notes, and snippets.

View shigeki's full-sized avatar

Shigeki Ohtsu shigeki

View GitHub Profile
@shigeki
shigeki / http-request_rev.js
Created May 24, 2012 12:45
Node.js HTTP Request Sample Code
var http = require('http');
var ran = 0;
var queryNum = 100;
var parallel = 10;
var agent = new http.Agent({maxSockets: parallel});
if (process.argv.length != 5) {
console.error('usage: node http-request.js host port url\n' +
'ex). node http-request.js example.com 8080 /index.html');
process.exit(-1);
@shigeki
shigeki / socketio_checkmemory.js
Created May 30, 2012 15:11
Check memory leak on socket.io
var io = require('socket.io').listen(8081);
var parser = require('socket.io').parser;
io.sockets.on('connection', function(socket) {
var pre;
var i = 0;
io.transports[socket.id].parser.on('data', function(p) {
var packet = parser.decodePacket(p);
if(packet.type === 'heartbeat') {
var memoryUsage = process.memoryUsage();
var rss = memoryUsage.rss;
@shigeki
shigeki / test.js
Created May 31, 2012 01:30
socket.io memoryUsage profile with heatbeat by manually gc
var io = require('socket.io').listen(8081);
var parser = require('socket.io').parser;
io.sockets.on('connection', function(socket) {
var pre;
var i = 0;
io.transports[socket.id].parser.on('data', function(p) {
var packet = parser.decodePacket(p);
if(packet.type === 'heartbeat') {
if(global.gc) global.gc();
var memoryUsage = process.memoryUsage();
@shigeki
shigeki / superagent-proxy-patch.diff
Created June 13, 2012 01:11
superagentをプロキシ対応するパッチ(SSL対応:要 tunnel モジュール) original from https://gist.github.com/2914780
--- node_modules/tower/node_modules/superagent/lib/node/index.js.org 2012-06-03 04:27:15.000000000 +0900
+++ node_modules/tower/node_modules/superagent/lib/node/index.js 2012-06-13 10:07:53.142584979 +0900
@@ -458,6 +458,29 @@
// initiate request
var mod = exports.protocols[url.protocol];
+ // use proxy
+ if(process.env.http_proxy) {
+ var proxy = parse(process.env.http_proxy);
+ if (url.protocol === 'http:') {
@shigeki
shigeki / domain_stack.js
Created July 4, 2012 11:21
Domain Stack Sample
// domain stack sample
var domain = require('domain');
var d1 = domain.create();
var d2 = domain.create();
var d3 = domain.create();
d1.on('error', function(err) {
console.log('d1:', err.message);
});
d2.on('error', function(err) {
@shigeki
shigeki / domain_stack2.js
Created July 4, 2012 11:30
Domain Stack Sample #2
// domain stack sample
var domain = require('domain');
var d1 = domain.create();
var d2 = domain.create();
var d3 = domain.create();
d1.on('error', function(err) {
console.log('d1:', err.message);
});
d2.on('error', function(err) {
@shigeki
shigeki / domain_stack3.js
Created July 4, 2012 11:53
Domain Stack Sample #3
// domain stack sample #3
var domain = require('domain');
var d1 = domain.create();
var d2 = domain.create();
var d3 = domain.create();
d1.on('error', function(err) {
console.log('d1:', err.message);
});
d2.on('error', function(err) {
@shigeki
shigeki / domain_stack4.js
Created July 4, 2012 14:00
Domain Stack Sample #4
// domain stack sample #3
var domain = require('domain');
var d1 = domain.create();
var d2 = domain.create();
var d3 = domain.create();
d1.on('error', function(err) {
console.log('d1:', err.message);
});
d2.on('error', function(err) {
@shigeki
shigeki / domain_stack4.js
Created July 4, 2012 14:02
Domain Stack Sample #4
// domain stack sample #3
var domain = require('domain');
var d1 = domain.create();
var d2 = domain.create();
var d3 = domain.create();
d1.on('error', function(err) {
console.log('d1:', err.message);
});
d2.on('error', function(err) {
@shigeki
shigeki / domain_stack5.js
Created July 6, 2012 00:11
Domain Stack Sample #5
// domain stack sample
var fs = require('fs'), domain = require('domain');
// >> ClassA
function ClassA() {
}
ClassA.prototype.fnA = function(cb) {
setTimeout(cb, 300);
throw new Error('fnA');