uber / tchannel

network multiplexing and framing protocol for RPC
MIT License
1.15k stars 129 forks source link

lightweight code errors POC #1333

Closed rf closed 9 years ago

rf commented 9 years ago

By avoiding the pit of despair that is v8's Error objects, we can eliminate the 15% of the process or so we spend creating these objects by using a lightweight container class. Arguably, stack traces aren't necessary here.

before:

1:      SET 4KiB, 10000/0 min/max/avg/p95:  852/4506/2585.58/3779.10   7238ms total,  2763.19 ops/sec
1:      SET 4KiB, 10000/0 min/max/avg/p95:  881/4373/2658.98/4036.20   7260ms total,  2754.82 ops/sec
1:      SET 4KiB, 10000/0 min/max/avg/p95:  655/4438/2662.27/3855.65   7217ms total,  2771.23 ops/sec
1:      GET 4KiB, 10000/0 min/max/avg/p95:  628/4482/2248.48/3562.50   6118ms total,  3269.04 ops/sec
1:      GET 4KiB, 10000/0 min/max/avg/p95:  628/4080/2357.28/3738.55   6087ms total,  3285.69 ops/sec
1:      GET 4KiB, 10000/0 min/max/avg/p95:  689/4894/2442.56/3894.10   6334ms total,  3157.56 ops/sec
1:      SET 4KiB, 20000/0 min/max/avg/p95: 1789/5460/3375.80/5231.55   7626ms total,  2622.61 ops/sec
1:      SET 4KiB, 20000/0 min/max/avg/p95: 1658/5809/3494.39/5613.70   7784ms total,  2569.37 ops/sec
1:      SET 4KiB, 20000/0 min/max/avg/p95: 1655/6978/4041.88/6666.85   8966ms total,  2230.65 ops/sec
1:      GET 4KiB, 20000/0 min/max/avg/p95: 1430/5415/3422.20/4720.40   6320ms total,  3164.56 ops/sec
1:      GET 4KiB, 20000/0 min/max/avg/p95: 1172/5391/2866.71/4797.00   6257ms total,  3196.42 ops/sec
1:      GET 4KiB, 20000/0 min/max/avg/p95: 1670/6135/3153.97/5514.10   6561ms total,  3048.32 ops/sec
1:     SET 16KiB, 10000/0 min/max/avg/p95: 1011/5140/3759.07/4948.55  10402ms total,  1922.71 ops/sec
1:     SET 16KiB, 10000/0 min/max/avg/p95: 1319/5496/3914.08/5205.55  10728ms total,  1864.28 ops/sec
1:     SET 16KiB, 10000/0 min/max/avg/p95: 1199/5471/3639.33/5101.30  10074ms total,  1985.31 ops/sec
1:     GET 16KiB, 10000/0 min/max/avg/p95:  637/4293/2425.64/4017.00   6353ms total,  3148.12 ops/sec
1:     GET 16KiB, 10000/0 min/max/avg/p95: 1082/4054/2287.95/3746.10   6215ms total,  3218.02 ops/sec
1:     GET 16KiB, 10000/0 min/max/avg/p95:  692/4383/2366.44/3606.10   6542ms total,  3057.17 ops/sec
1:     SET 16KiB, 20000/0 min/max/avg/p95: 3106/9059/6129.85/8764.75  12186ms total,  1641.23 ops/sec
1:     SET 16KiB, 20000/0 min/max/avg/p95: 3014/9196/5897.33/8722.30  12347ms total,  1619.83 ops/sec
1:     SET 16KiB, 20000/0 min/max/avg/p95: 2633/8174/5211.64/7738.55  11013ms total,  1816.04 ops/sec
1:     GET 16KiB, 20000/0 min/max/avg/p95: 1811/4470/3147.27/4137.30   6016ms total,  3324.47 ops/sec
1:     GET 16KiB, 20000/0 min/max/avg/p95: 1654/27002/16802.13/25903.10  28112ms total,   711.44 ops/sec
1:     GET 16KiB, 20000/0 min/max/avg/p95: 1819/4525/3244.00/4139.65   6458ms total,  3096.93 ops/sec

flame

after:

1:      SET 4KiB, 10000/0 min/max/avg/p95:  774/3602/2271.58/3075.75   6263ms total,  3193.36 ops/sec
1:      SET 4KiB, 10000/0 min/max/avg/p95:  743/3621/2138.66/3230.10   5954ms total,  3359.09 ops/sec
1:      SET 4KiB, 10000/0 min/max/avg/p95:  717/3529/2185.37/3217.65   6022ms total,  3321.16 ops/sec
1:      GET 4KiB, 10000/0 min/max/avg/p95:  445/3396/1821.72/2664.00   4749ms total,  4211.41 ops/sec
1:      GET 4KiB, 10000/0 min/max/avg/p95:  542/3115/1813.47/2568.20   4805ms total,  4162.33 ops/sec
1:      GET 4KiB, 10000/0 min/max/avg/p95:  458/3958/2018.70/3611.55   4952ms total,  4038.77 ops/sec
1:      SET 4KiB, 20000/0 min/max/avg/p95: 1340/4181/2734.49/3928.00   6088ms total,  3285.15 ops/sec
1:      SET 4KiB, 20000/0 min/max/avg/p95: 1397/4521/2924.58/4375.00   6238ms total,  3206.16 ops/sec
1:      SET 4KiB, 20000/0 min/max/avg/p95: 1739/4629/3037.95/4489.55   6544ms total,  3056.23 ops/sec
1:      GET 4KiB, 20000/0 min/max/avg/p95: 1079/4720/2477.85/4390.55   5348ms total,  3739.72 ops/sec
1:      GET 4KiB, 20000/0 min/max/avg/p95: 1056/5314/2853.16/4862.65   5457ms total,  3665.02 ops/sec
1:      GET 4KiB, 20000/0 min/max/avg/p95: 1328/4469/2963.96/4220.55   5186ms total,  3856.54 ops/sec
1:     SET 16KiB, 10000/0 min/max/avg/p95:  986/7145/3774.42/6210.75  10517ms total,  1901.68 ops/sec
1:     SET 16KiB, 10000/0 min/max/avg/p95: 1186/5949/3741.59/5413.95   9951ms total,  2009.85 ops/sec
1:     SET 16KiB, 10000/0 min/max/avg/p95: 1073/4793/3053.61/4398.10   8593ms total,  2327.48 ops/sec
1:     GET 16KiB, 10000/0 min/max/avg/p95:  291/2904/1756.49/2513.00   4832ms total,  4139.07 ops/sec
1:     GET 16KiB, 10000/0 min/max/avg/p95:  806/3372/1852.70/2855.40   4793ms total,  4172.75 ops/sec
1:     GET 16KiB, 10000/0 min/max/avg/p95:  555/4133/2162.79/3268.65   5621ms total,  3558.09 ops/sec
1:     SET 16KiB, 20000/0 min/max/avg/p95: 2918/6519/4579.50/6299.55   9716ms total,  2058.46 ops/sec
1:     SET 16KiB, 20000/0 min/max/avg/p95: 2667/6947/4606.71/6832.75  10059ms total,  1988.27 ops/sec
1:     SET 16KiB, 20000/0 min/max/avg/p95: 2769/7175/4767.64/6800.95  10148ms total,  1970.83 ops/sec
1:     GET 16KiB, 20000/0 min/max/avg/p95: 1245/3976/2588.52/3275.10   5040ms total,  3968.25 ops/sec
1:     GET 16KiB, 20000/0 min/max/avg/p95: 1536/4362/2852.55/4136.10   5132ms total,  3897.12 ops/sec
1:     GET 16KiB, 20000/0 min/max/avg/p95: 1358/4604/2672.56/4181.95   5961ms total,  3355.14 ops/sec

flame

Raynos commented 9 years ago

This will need to be rebased on top of github.com/uber/tchannel-node