Commit Graph

177 Commits (f9456a2d3657145878dfcae52af1defc1e22e3bb)

Author SHA1 Message Date
isaacs e82f97401f bench: net benchmarks using common script 2013-02-19 14:14:30 -08:00
isaacs baea73ccda bench: Move net-pipe into benchmark/net 2013-02-19 14:14:30 -08:00
isaacs aa2edd4b89 bench: A compare script for analyzing benchmarks 2013-02-19 14:14:30 -08:00
isaacs 37077de83d bench: add runner 2013-02-19 14:14:29 -08:00
isaacs dd069a2539 bench: Add ab() method to common for http testing 2013-02-19 14:14:29 -08:00
isaacs 00e1962495 bench: Add common script 2013-02-19 14:14:29 -08:00
isaacs 8476aefc8e fs: Change default WriteStream config, increase perf
This increases fs.WriteStream throughput dramatically by removing the
"higher default water marks" for fs.WriteStream.

Also includes a benchmark.  Current performance is significantly higher
than v0.8 for strings at all tested levels except size=1.  Buffer
performance is still lackluster.

Further improvement in the stream.Writable base class is required, but
this is a start.
2013-02-15 18:48:43 -08:00
Ben Noordhuis 19d29aa0e8 bench: make io.c file path configurable 2013-02-12 19:38:29 +01:00
isaacs ae6f4b32c4 benchmark: Add resume() in static_http_server 2013-01-17 14:54:59 -08:00
Trevor Norris 22b84e6216 buffer: floating point read/write improvements
Improvements:
* floating point operations are approx 4x's faster
* Now write quiet NaN's
* all read/write on floating point now done in C, so no more need for
  lib/buffer_ieee754.js
* float values have more accurate min/max value checks
* add additional benchmarks for buffers read/write
* created benchmark/_bench_timer.js which is a simple library that
  can be included into any benchmark and provides an intelligent tracker
  for sync and async tests
* add benchmarks for DataView set methods
* add checks and tests to make sure offset is greater than 0
2013-01-16 10:17:20 -08:00
isaacs 7550e31d1a benchmark: Make flamegraphs a bit more useful 2012-12-29 15:32:26 -08:00
isaacs ecdde7df15 benchmark: Set port range properly on Linux 2012-12-29 15:32:26 -08:00
Ben Noordhuis a329729537 buffer: speed up base64 encoding by 20%
Remove a lot of branches from the inner loop. Speeds up buf.toString('base64')
by about 20%.

Before:

  $ time out/Release/node benchmark/buffer-base64-encode.js
  real    0m6.607s
  user    0m5.508s
  sys     0m1.088s

After:

  $ time out/Release/node benchmark/buffer-base64-encode.js
  real    0m5.520s
  user    0m4.520s
  sys     0m0.992s
2012-12-28 13:20:07 +01:00
isaacs ec7455558f benchmark: Set ephemeral ports properly on sunos 2012-12-21 00:07:35 +00:00
isaacs 825af451fb benchmark: Make http.sh more useful 2012-12-21 00:07:34 +00:00
isaacs 79ec9dc1dd benchmark: Support names in http-flamegraph 2012-12-21 00:07:34 +00:00
isaacs 836593da23 benchmark: Improve http-flamegraph 2012-12-21 00:07:34 +00:00
Ben Noordhuis d1556fbdd2 bench: report stats in benchmark/net-pipe 2012-12-20 14:48:51 +01:00
Ben Noordhuis 79ae8b7ae2 Merge remote-tracking branch 'origin/v0.8' 2012-12-20 12:39:04 +01:00
Ben Noordhuis ba407ce410 bench: use res.end() for chunked encoding
Use res.end() for the final chunk so we can benchmark the 'hot path' shortcut
in lib/http.js that packs the headers and the body into a single packet.
2012-12-20 11:44:10 +01:00
isaacs 43538f4f8f benchmark: Add http-flamegraph
This is very similar to http.sh, but generates a flamegraph
with dtrace, pruning off the single-hit stacks so that we can
more easily see the places where relevant amounts of time are
spent.
2012-12-18 11:56:53 -08:00
isaacs 7742257feb benchmark: Add once() function to net-pipe benchmark fixture 2012-12-14 10:52:29 -08:00
isaacs 3149d2f7dc benchmark: Add net-pipe benchmark
Just sends a buffer to a server, which echoes it back, and then measures
the Gbits/second.  Very similar to throughput.js, but using a single
process, so that it's possible to dtrace and get the jsstack frames for
profile comparison.
2012-11-30 18:26:18 -08:00
isaacs e2bcff9aa7 bench: Use hrtime in throughput benchmark 2012-11-11 10:02:33 -08:00
Ben Noordhuis 2c97da82f5 bench: correct time calculation in url.js 2012-09-13 14:02:22 +02:00
Ben Noordhuis 10ba95c11a bench: improve url parser benchmark 2012-09-13 01:21:54 +02:00
Felix Böhm f5c68b280f bench: add url parser benchmark 2012-09-13 01:21:53 +02:00
jbergstroem 8eccc417a7 bench: fetch port from env
http_simple.js honors $PORT, http_simple_bench.sh should too.
2012-08-13 18:52:06 +02:00
Bert Belder 23dc099299 benchmark: add single process tls connection benchmark 2012-07-14 01:43:34 +02:00
Bert Belder d2e40f66cc Merge branch 'v0.6' into v0.8 2012-07-12 03:30:04 +02:00
isaacs 8a946c2ee7 benchmark: Backport improvements made in master
Ported to v0.6 for easier comparison in the 0.8.0 blog post.
2012-06-23 10:03:12 -07:00
Bert Belder 6e5217d320 Fix bug in io benchmark 2012-06-21 20:52:38 +02:00
Ben Noordhuis 5ff2ae8389 bench: start a worker for each CPU 2012-05-25 00:35:10 +02:00
Ben Noordhuis 7535e3930a bench: add http_simple_auto benchmark
Starts a server and benchmarks it with ab.
2012-05-25 00:35:07 +02:00
isaacs ee6c11876a benchmark for fs.readfile 2012-05-16 20:04:44 -07:00
Bert Belder 4ddafbd563 Benchmark: add /unicode/nnn bench to http_simple.js 2012-05-09 03:56:09 +02:00
Bert Belder 7f68f256cf Benchmark: clean up http_simple.js 2012-05-09 03:56:07 +02:00
Ben Noordhuis 12a90e98bf bench: add continuous stress test
Useful in tracking down or at least demonstrating memory leaks.
2012-04-27 23:11:32 +02:00
Ben Noordhuis 4e84dfa683 bench: run GC and dump stats if --expose-gc is set 2012-04-27 20:38:58 +02:00
isaacs 45c1d4f96f Add switches to http_simple bench to use domains 2012-04-17 13:14:55 -07:00
Ben Noordhuis 11770bf5e2 test: move pummel/test-tls-fragmentation to benchmark/
Said test takes over 90 seconds on my Core 2 Duo which is too long, even for
the pummel tests.
2012-03-29 17:25:37 +02:00
Bert Belder 408f450286 client latency benchmark: don't require('request') 2012-03-07 04:52:29 +01:00
isaacs 150053b3fa Typo in http_server_lag.js script
Thanks, @mscdex
2012-03-06 19:31:16 -08:00
isaacs fb53986a80 Bash script for running http-simple benchmarks 2012-03-06 18:19:17 -08:00
isaacs 17da4242b0 A server with configurable lag for testing 2012-03-06 18:19:17 -08:00
isaacs d5fca08da4 A benchmark script for measuring client latency 2012-03-06 18:19:17 -08:00
Ben Noordhuis 544e5ee1fb bench: add http_simple_auto benchmark
Starts a server and benchmarks it with ab.
2012-03-06 18:11:53 +01:00
Ben Noordhuis 8b2abed03d bench: add /echo endpoint to http_simple
Copies the POST request data verbatim into the response body.
2011-12-30 02:03:10 +01:00
Ben Noordhuis ed5bad754c bench: fix use of fd after close 2011-12-26 03:23:34 +01:00
Bert Belder c6347dcfb4 Add another nextTick benchmark
It tests how many iterations the event loop can make per second.
2011-12-23 03:09:36 +01:00
Ben Noordhuis 78ca555845 bench: optimize io.c benchmark
Use static buffers. Most clock ticks were spent in malloc() and free() instead
of read() and write().

Fix measurements. Really fast runs would result in bogus results like:

  Wrote 1048576000 bytes in -0.731630s using 8192 byte buffers: -1366.811093mB/s
2011-11-10 21:13:37 +01:00
Ben Noordhuis 4fc0fdc6ee bench: start (NUM_CPUS-1) workers
The master is a worker too so fork off one less worker.
2011-11-09 17:34:53 +01:00
koichik 1001cf412c bench: update static_http_server benchmark to new API
Fixes #2016.
2011-11-06 01:25:07 +09:00
Ben Noordhuis 89014c9d40 bench: add http_simple cluster edition benchmark 2011-11-04 23:53:01 +01:00
Ben Noordhuis 5fee1ff7bc bench: add process.nextTick() benchmark 2011-10-31 22:02:46 +01:00
Ryan Dahl 16e1d5b5ce Remove uname and git-rev detection from http_simple.js 2011-10-12 12:29:40 -07:00
Ryan Dahl 2b46959075 Add throughput benchmark 2011-10-11 22:40:04 -07:00
Ryan Dahl f018be3b5f Print libuv counters after http_simple exits 2011-10-06 15:02:27 -07:00
Ben Noordhuis 63607a0304 bench: make number of response body chunks configurable in http_simple 2011-08-17 23:26:23 +02:00
Ben Noordhuis d72c6940f8 bench: make http_simple send chunked encoding if requested 2011-08-17 20:39:20 +02:00
Ben Noordhuis 4726504663 typed arrays: preliminary benchmarks 2011-08-12 18:42:24 +02:00
Ryan Dahl 1fce3f0ef8 Add startup memory script to benchmarks 2011-02-18 14:01:04 -08:00
Ryan Dahl bd094103d7 Add script for running V8 benchmarks 2011-02-14 17:26:54 -08:00
Ryan Dahl 320a56b89d Bump size of bench histogram to 100ms 2011-01-10 18:00:21 -08:00
Ryan Dahl 08bec7ab0a Remove debugger statement from http_simple.js
results in slow bench
2011-01-06 18:07:50 -08:00
Ryan Dahl 62e0ca05a6 debugger: Disable/Enable raw mode for child 2010-12-30 15:46:47 -08:00
Ryan Dahl 73cfda12bb Abstract out a Server.prototype.pause method 2010-10-28 11:42:22 -07:00
Ryan Dahl ad61d77fa3 Abstract out net.Server.prototype._rejectPending
Does the same timeout action for maxConnections as it does for EMFILE.
2010-10-28 11:33:35 -07:00
Ryan Dahl 38dde9684f Add extra anti-DoS tech to net.Server 2010-10-27 12:09:16 -07:00
Ryan Dahl aeb9bed63e Improve idle benchmarks 2010-10-27 02:52:49 -07:00
Ryan Dahl ac54272218 Gracefully handle EMFILE
Implementing a tip from Marc Lehmann:
http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#The_special_problem_of_accept_ing_wh

Keep an extra FD around for every server. When you hit EMFILE, destroy that
FD, accept a connection, close it; in this way you can clear the connection
queue and let people know that you're overload.

No more timeout needed.
2010-10-27 02:12:25 -07:00
Ryan Dahl bc47353bbe Use the timer list for setTimeout 2010-10-26 14:53:18 -07:00
Ryan Dahl 33e45bbe46 Add incomplete R plot file 2010-10-20 21:28:49 -07:00
Ryan Dahl a313f38c34 use bash instead of sh in http_simple_bench.sh 2010-10-18 17:48:49 -07:00
Ryan Dahl 3cf4827ae0 Add idle connection test 2010-10-15 12:11:50 -05:00
Ryan Dahl ff456b3886 Add 'make bench' script 2010-10-13 16:20:24 -07:00
Ryan Dahl cdde22a27d Improve benchmark/http_simple.js 2010-10-13 14:30:50 -07:00
Micheil Smith e38eb0c5a4 Soft migration of sys -> util, Removal of deprecated utils module. 2010-10-11 15:21:36 -07:00
Ryan Dahl f9d6b074cf output time of function calls 2010-09-28 01:14:38 -07:00
Ryan Dahl 353e2565d5 Fix timing on I/O benchmark 2010-09-25 18:19:50 +02:00
Ryan Dahl 3fc9192d0d Add function_call benchmark 2010-09-23 22:27:44 -07:00
Ryan Dahl 7628905a9b Don't use empty.js - breaks module test 2010-09-09 16:22:57 -07:00
Felix Geisendörfer f870240dcf Simple benchmark for node's startup time 2010-09-09 15:51:17 -07:00
Ryan Dahl ff027d571b Update fast buffer benchmarks 2010-09-09 11:03:50 -07:00
Ryan Dahl 488aff085b Improve appendix markdown 2010-08-21 01:24:14 -07:00
Ryan Dahl 12a169e8ff Add buffer_creation benchmark 2010-08-19 01:40:28 -07:00
Ryan Dahl 41ad33910f Add Paul Querna's io benchmarks 2010-08-17 08:43:26 -07:00
Blake Mizerany 8c8534046c fix whitespace errors 2010-06-29 23:59:24 -07:00
Ryan Dahl 444b33584d Remove switch-replace residue 2010-06-24 09:37:36 -07:00
Ryan Dahl ba792ea202 :%s/sys.puts/console.log/g
and there was much rejoicing
2010-06-23 20:05:29 -07:00
Ryan Dahl ab723d022d Add buffer response to http_simple.js 2010-05-04 22:35:55 -07:00
Ryan Dahl 99984772df Allow different ports for http_simple.js 2010-05-02 17:26:18 -07:00
Ryan Dahl ac3bc2ed41 Simplify GC idle notification
In particular, don't leave the timeout running when the heap is fully
compacted.
2010-04-15 01:30:58 -07:00
Ryan Dahl b36f11d7b5 Set old/new from benchmark script args 2010-04-09 10:42:20 -07:00
Ryan Dahl 50c70ac714 Update stream API: forceClose() -> destroy(), close() -> end() 2010-04-08 12:24:29 -07:00
Ryan Dahl 62277ab79b Support both old and new HTTP closing APIs in benchmark program 2010-04-08 01:00:35 -07:00
Ryan Dahl 0281e1acf6 Fix benchmark script for testing both old and new version 2010-04-07 16:19:50 -07:00
Ryan Dahl 1b758ef268 Allow stream to write on close 2010-04-05 16:50:05 -07:00
arlolra 6f84063a3b Migrates benchmarks to the new api. 2010-03-23 08:13:17 -07:00
Ryan Dahl b80f6e9ed1 http2 now default 2010-03-19 19:52:09 -07:00