Clone and build Node for analysis:
$ git clone https://github.com/joyent/node.git
$ cd node
$ export GYP_DEFINES="v8_enable_disassembler=1"
$ ./configure
$ make -j4
package com.example.helloworld.resources; | |
import javax.jws.WebMethod; | |
@javax.jws.WebService( | |
name = "AddNumbersPortType", | |
serviceName = "AddNumbersService", | |
targetNamespace = "http://duke.example.org") | |
@javax.jws.soap.SOAPBinding( | |
style = javax.jws.soap.SOAPBinding.Style.DOCUMENT, |
{-# LANGUAGE OverloadedStrings #-} | |
import qualified Network.HTTP.Conduit as H | |
import Control.Exception | |
import Web.Scotty | |
import System.Environment | |
import System.IO | |
import System.Directory | |
import Control.Monad | |
import Control.Monad.IO.Class | |
import qualified Data.ByteString.Lazy.Char8 as BS |
dtrace -n 'syscall::writev:entry /execname == "node" && arg2 > 16/ { printf("iovcnt: %d", arg2); }' -n 'syscall::writev:return /execname == "node" && arg1 == -1 && errno == 22/ { printf("%s %s %d\\n", curpsinfo->pr_psargs, probefunc, errno); jstack(100, 8000); }' | |
1 10260 writev:entry iovcnt: 57 | |
1 10261 writev:return node --nouse-idle-notification /voxer/server/node_router/node_router.js /voxer/ writev 22\n | |
libc.so.1`__writev+0x15 | |
node`uv__write.part.5+0x18f | |
node`uv_write2+0x1b9 | |
node`uv_write+0x35 | |
node`_ZN4node10StreamWrap6WritevERKN2v89ArgumentsE+0x678 | |
node`_ZN2v88internalL21Builtin_HandleApiCallENS0_12_GLOBAL__N_116BuiltinArgumentsILNS0_21BuiltinExtraArgumentsE1EEEPNS0_7IsolateE+0x157 | |
<< internal code >> |
[{"author":"Barry Smith","text":"Test"},{"author":"James Brown","text":"ASDFG!"}] |
'use strict'; | |
exports.register = function (plugin, options, next) { | |
function addRoutes(server) { | |
var serverPluginSettings = server.settings.plugins || {}, | |
serverSpecificSettings = serverPluginSettings.routify || {}, | |
routes = serverSpecificSettings.routes || options.routes; | |
if (routes) { | |
server.route(routes); |
The prep-script.sh
will setup the latest Node and install the latest perf version on your Linux box.
When you want to generate the flame graph, run the following (folder locations taken from install script):
sudo sysctl kernel.kptr_restrict=0
# May also have to do the following:
# (additional reading http://unix.stackexchange.com/questions/14227/do-i-need-root-admin-permissions-to-run-userspace-perf-tool-perf-events-ar )
sudo sysctl kernel.perf_event_paranoid=0
These rules are adopted from the AngularJS commit conventions.
This text explains how to create and deploy a Docker-based AWS Elastic Beanstalk site and how to control it using CloudFormation.
Please find the CloudFormation template at the end of this Gist.
We assume that you are familiar with AWS ElasticBeanstalk, AWS CloudFormation and Docker.
#!/bin/bash | |
# | |
# Publishes CloudWatch metrics about Buildbox queue length | |
set -e | |
API='https://api.buildbox.io' | |
BUILDS_ROUTE='v1/accounts/ACCOUNT_NAME/projects/PROJECT_NAME/builds' | |
# Determines whether a binary exists on the current $PATH |