Permalink
Browse files

1.9.0

* Refactored code for easier maintenance
* Created benchmark tests to detect performance and memory regressions
* Fixed memory leak introduced in 1.8.0
  • Loading branch information...
1 parent cad2ce0 commit a69156ac26a189af7ced61eef9ec03f65e52f4b3 Chris Scribner committed Jan 19, 2012
Showing with 467 additions and 1 deletion.
  1. +406 −0 benchmark/benchmark.js
  2. +52 −0 benchmark/results/ab_1.8.0-node_0.6.6-linux-vm.txt
  3. +6 −0 changelog
  4. +1 −0 lib/asyncblock.js
  5. +1 −1 package.json
  6. +1 −0 run_benchmarks.sh
View
@@ -0,0 +1,52 @@
+Machine name: mint
+OS: Linux 2.6.38-8-generic
+CPU: AMD Athlon(tm) II X2 260 Processor x64 3107 Mhz
+Virtual machine: true
+----
+asyncblock version: 1.8.0
+node version: v0.6.6
+----
+Memory: { rss: '12 MB', heapTotal: '6 MB', heapUsed: '4 MB' }
+
+
+When creating 100,000 asyncblocks: 4580 ms
+Memory: { rss: '55 MB', heapTotal: '55 MB', heapUsed: '21 MB' }
+When creating 100,000 asyncblock.nostacks: 2258 ms
+Memory: { rss: '52 MB', heapTotal: '50 MB', heapUsed: '33 MB' }
+When creating 100,000 asyncblock.enumerators: 3762 ms
+Memory: { rss: '66 MB', heapTotal: '57 MB', heapUsed: '20 MB' }
+When doing 100,000 echos with add / wait in series: 1938 ms
+Memory: { rss: '49 MB', heapTotal: '40 MB', heapUsed: '12 MB' }
+When doing 100,000 echos with add / wait in parallel: 1510 ms
+Memory: { rss: '117 MB', heapTotal: '107 MB', heapUsed: '86 MB' }
+When doing 100,000 echos with get / set in series: 2017 ms
+Memory: { rss: '113 MB', heapTotal: '104 MB', heapUsed: '52 MB' }
+When doing 100,000 echos with flow.func in series: 2982 ms
+Memory: { rss: '115 MB', heapTotal: '105 MB', heapUsed: '18 MB' }
+When doing 100,000 echos with flow.sync(1) in series: 2510 ms
+Memory: { rss: '28 MB', heapTotal: '23 MB', heapUsed: '9 MB' }
+When doing 100,000 echos with flow.sync(2) in series: 3205 ms
+Memory: { rss: '34 MB', heapTotal: '24 MB', heapUsed: '5 MB' }
+When doing 100,000 echos with flow.future(1) in series: 2515 ms
+Memory: { rss: '50 MB', heapTotal: '41 MB', heapUsed: '6 MB' }
+When doing 100,000 echos with flow.future(2) in series: 3627 ms
+Memory: { rss: '54 MB', heapTotal: '45 MB', heapUsed: '17 MB' }
+When doing 100,000 asyncblock.wraps: 1630 ms
+Memory: { rss: '55 MB', heapTotal: '46 MB', heapUsed: '16 MB' }
+When doing 100,000 asyncblock.wrap sync calls: 2638 ms
+Memory: { rss: '55 MB', heapTotal: '46 MB', heapUsed: '16 MB' }
+When doing 100,000 yields with asyncblock.enumerator: 9284 ms
+Memory: { rss: '140 MB', heapTotal: '130 MB', heapUsed: '107 MB' }
View
@@ -1,3 +1,9 @@
+1.9.0
+
+* Refactored code for easier maintenance
+* Created benchmark tests to detect performance and memory regressions
+* Fixed memory leak introduced in 1.8.0
+
1.8.0
* Enumerators!
View
@@ -66,6 +66,7 @@ var asyncblock = function(fn, options) {
//Prevent memory leak
fn = null;
fiber = null;
+ flow = null;
}
};
View
@@ -1,6 +1,6 @@
{
"name": "asyncblock",
- "version": "1.8.0",
+ "version": "1.9.0",
"description": "A simple and powerful abstraction of node-fibers",
"keywords": [
"fiber", "fibers", "coroutine", "stop", "go", "green", "red" ],
View
@@ -0,0 +1 @@
+./node_modules/vows/bin/vows ./benchmark/benchmark.js

0 comments on commit a69156a

Please sign in to comment.