summaryrefslogtreecommitdiff
path: root/benchmark
AgeCommit message (Collapse)Author
2014-06-23buffer: improve {read,write}{U}Int* methodsNick Apperson
Increase the performance and simplify the logic of Buffer#write{U}Int* and Buffer#read{U}Int* methods by placing the byte manipulation code directly inline. Also improve the speed of buffer-write benchmarks by creating a new call directly to each method by using Function() instead of calling by buff[fn]. Signed-off-by: Trevor Norris <trev.norris@gmail.com> Conflicts: lib/buffer.js
2013-08-31benchmark: Fix execArgv handlingisaacs
Bug in 01f3b46 causes the same benchmark to be run repeatedly. Not so useful for the compare scripts.
2013-08-31benchmark: Support passing v8 flags to benchmarksisaacs
The better to test --use-strict effects on performance. (Spoiler: it has no measurable effect on performance.)
2013-05-23http: save roundtrips, convert buffers to stringsBen Noordhuis
This commit adds an optimization to the HTTP client that makes it possible to: * Pack the headers and the first chunk of the request body into a single write(). * Pack the chunk header and the chunk itself into a single write(). Because only one write() system call is issued instead of several, the chances of data ending up in a single TCP packet are phenomenally higher: the benchmark with `type=buf size=32` jumps from 50 req/s to 7,500 req/s, a 150-fold increase. This commit removes the check from e4b716ef that pushes binary encoded strings into the slow path. The commit log mentions that: We were assuming that any string can be concatenated safely to CRLF. However, for hex, base64, or binary encoded writes, this is not the case, and results in sending the incorrect response. For hex and base64 strings that's certainly true but binary strings are 'das Ding an sich': string.length is the same before and after decoding. Fixes #5528.
2013-05-14benchmark: hash streamisaacs
2013-03-25bench: add child process read perf benchmarkBen Noordhuis
2013-03-20bench: compare binaries equal timesTrevor Norris
The benchmark compare would drop the last run of the binary pairs. So when they were only run once an error would arise because no data was generated for the second binary.
2013-03-20bench: add dgram send/recv benchmarkBen Noordhuis
2013-03-14http: Don't hot-path end() for large buffersisaacs
The benefits of the hot-path optimization below start to fall off when the buffer size gets up near 128KB, because the cost of the copy is more than the cost of the extra write() call. Switch to the write/end method at that point. Heuristics and magic numbers are awful, but slow http responses are worse. Fix #4975
2013-03-07bench: Do math on numbers in compare.js, not stringsisaacs
2013-03-06bench: Use environ to run compares more than onceisaacs
This will run the benchmarks the number of times specified by NODE_BENCH_RUNS, to attempt to reduce variability. If the number of runs is high enough, it'll also throw out the top and bottom quartiles, since that's where the outliers will be. It's not very fancy statistics-fu, but it's better than nothing. Also, linted this file. It had tabs in it. TABS!
2013-03-05bench: Add flag to be silent in runnerisaacs
This is helpful in tracking down bailouts and deopts in Stream classes, without triggering one from the string write in console.log
2013-02-25bench: Make http easier to profileisaacs
Do not run the http/simple.js server in a child process. Fix #4831
2013-02-20benchmark: Fix alignment issues on --html compare outputisaacs
2013-02-19bench: Add bench-cryptoisaacs
2013-02-19bench: Simplify duration arguments to benchmarksisaacs
For throughput benchmarks, run with just 5s durations rather than 1s and 3s. For startup benchmark, run with just a single 1s duration, since it's very consistent anyway.
2013-02-19bench: Consistency in benchmark filenamesisaacs
2013-02-19bench: Remove _bench_timer (no loner used)isaacs
2013-02-19bench: Use wrk for http benchmarkingisaacs
Remove ab, since it's no longer used.
2013-02-19bench: Show % change rather than % differenceisaacs
2013-02-19bench: Add --html to compare scriptisaacs
2013-02-19bench: Fail gracefully if function_call binding failsisaacs
2013-02-19bench: Remove old run scriptisaacs
2013-02-19bench: Replace tls-fragmentation with tls/throughputisaacs
2013-02-19bench: Move tls-connect into benchmark/tlsisaacs
Also, make it work properly with current node.
2013-02-19bench: Make io.c output easier to readisaacs
2013-02-19bench: Remove io.jsisaacs
Better covered by the other benchmark/fs scripts.
2013-02-19bench: Add fs write stream throughputisaacs
2013-02-19bench: Add read-stream throughputisaacs
2013-02-19bench: Move fs-readfile.js to fs/readfile.jsisaacs
2013-02-19bench: Move v8_bench into miscisaacs
2013-02-19bench: Move string_creation into miscisaacs
2013-02-19bench: Remove settimeout (Covered by misc/timeout.js)isaacs
2013-02-19bench: Move timers to misc/timersisaacs
2013-02-19bench: move next-tick to misc/next-tick-breadthisaacs
2013-02-19bench: Move nexttick-2 to misc/next-tick-depthisaacs
x
2013-02-19bench: Move process_loop to misc/spawn-echoisaacs
2013-02-19bench: Add function_call to bench-miscisaacs
2013-02-19bench: Arraysisaacs
2013-02-19bench: Add buffers/dataview_setisaacs
2013-02-19bench: Remove unused 'fast_buffer2' benchmarksisaacs
2013-02-19bench: Merge fast_buffer_creation and buffer_creationisaacs
2013-02-19bench: Buffer read/write benchmarksisaacs
2013-02-19bench: Buffer creationisaacs
2013-02-19bench: buffer-base64-encodeisaacs
2013-02-19bench: misc/startup.jsisaacs
2013-02-19bench: misc/urlisaacs
2013-02-19bench: http benchmarksisaacs
Also: make http_simple less chatty
2013-02-19bench: Remove client_latencyisaacs
No one actually knows what this is supposed to be doing, anyway. It's not a good benchmark.
2013-02-19bench: Remove throughput (covered by benchmark/net)isaacs