Skip to content

Instantly share code, notes, and snippets.

@derek
Created June 27, 2013 04:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save derek/5873943 to your computer and use it in GitHub Desktop.
Save derek/5873943 to your computer and use it in GitHub Desktop.
Y.Promise performance test results
Promise creation
┌──────────────┬───────────────────────────────────┬────────────────────────────────────┬────────────────────────────────┐
│ │ Chrome │ Safari │ Firefox │
├──────────────┼───────────────────────────────────┼────────────────────────────────────┼────────────────────────────────┤
│ v3.9.1 │ 8982495.01hz ±3.53% (4% slower) │ 1529537.13hz ±2.62% (11% slower) │ 369421.66hz ±3.75% (Fastest) │
│ v3.10.3 │ 9013158.14hz ±2.92% (4% slower) │ 1639490.93hz ±2.75% (3% slower) │ 342193.57hz ±5.09% (8% slower)│
│ v3.11.0pr1 │ 9330503.41hz ±1.43% (Fastest) │ 1696566.88hz ±1.51% (Fastest) │ 354362.87hz ±4.05% (4% slower)│
└──────────────┴───────────────────────────────────┴────────────────────────────────────┴────────────────────────────────┘
Single callback resolution
┌──────────────┬────────────────────────────────────┬───────────────────────────────────┬────────────────────────────────┐
│ │ Chrome │ Safari │ Firefox │
├──────────────┼────────────────────────────────────┼───────────────────────────────────┼────────────────────────────────┤
│ v3.9.1 │ 1255649.56hz ±3.04% (10% slower) │ 294858.61hz ±2.18% (6% slower) │ 67655.28hz ±3.16% (Fastest) │
│ v3.10.3 │ 1161213.33hz ±2.29% (19% slower) │ 268481.91hz ±2.74% (17% slower) │ 53526.81hz ±9.28% (26% slower)│
│ v3.11.0pr1 │ 1376557.69hz ±1.79% (Fastest) │ 313125.64hz ±2.32% (Fastest) │ 66920.07hz ±9.25% (1% slower) │
└──────────────┴────────────────────────────────────┴───────────────────────────────────┴────────────────────────────────┘
Single callback rejection
┌──────────────┬────────────────────────────────────┬───────────────────────────────────┬────────────────────────────────┐
│ │ Chrome │ Safari │ Firefox │
├──────────────┼────────────────────────────────────┼───────────────────────────────────┼────────────────────────────────┤
│ v3.9.1 │ 1526389.06hz ±2.70% (Fastest) │ 379696.18hz ±2.99% (Fastest) │ 90991.68hz ±5.37% (Fastest) │
│ v3.10.3 │ 1395728.32hz ±2.46% (9% slower) │ 330746.89hz ±1.93% (15% slower) │ 88101.56hz ±2.55% (3% slower) │
│ v3.11.0pr1 │ 1373138.87hz ±1.76% (11% slower) │ 332143.78hz ±1.39% (14% slower) │ 82984.85hz ±1.53% (10% slower)│
└──────────────┴────────────────────────────────────┴───────────────────────────────────┴────────────────────────────────┘
Multiple callback resolution
┌──────────────┬───────────────────────────────────┬──────────────────────────────────┬──────────────────────────────────┐
│ │ Chrome │ Safari │ Firefox │
├──────────────┼───────────────────────────────────┼──────────────────────────────────┼──────────────────────────────────┤
│ v3.9.1 │ 240916.01hz ±3.15% (25% slower) │ 41339.93hz ±1.69% (24% slower) │ 10766.88hz ±1.84% (21% slower) │
│ v3.10.3 │ 217225.13hz ±2.93% (39% slower) │ 38436.17hz ±3.02% (33% slower) │ 10479.62hz ±1.48% (24% slower) │
│ v3.11.0pr1 │ 302070.33hz ±2.48% (Fastest) │ 51151.71hz ±1.64% (Fastest) │ 13002.59hz ±1.68% (Fastest) │
└──────────────┴───────────────────────────────────┴──────────────────────────────────┴──────────────────────────────────┘
Multiple callback rejection
┌──────────────┬──────────────────────────────────┬─────────────────────────────────┬─────────────────────────────────┐
│ │ Chrome │ Safari │ Firefox │
├──────────────┼──────────────────────────────────┼─────────────────────────────────┼─────────────────────────────────┤
│ v3.9.1 │ 361722.14hz ±1.67% (Fastest) │ 60596.49hz ±1.79% (Fastest) │ 15259.80hz ±2.77% (4% slower) │
│ v3.10.3 │ 351158.61hz ±2.00% (3% slower) │ 60306.82hz ±1.80% (0% slower) │ 15852.37hz ±1.87% (Fastest) │
│ v3.11.0pr1 │ 334874.47hz ±1.63% (8% slower) │ 59574.71hz ±1.41% (2% slower) │ 15495.32hz ±1.52% (2% slower) │
└──────────────┴──────────────────────────────────┴─────────────────────────────────┴─────────────────────────────────┘
Chaining fulfilled promises
┌──────────────┬───────────────────────────────────┬──────────────────────────────────┬─────────────────────────────────┐
│ │ Chrome │ Safari │ Firefox │
├──────────────┼───────────────────────────────────┼──────────────────────────────────┼─────────────────────────────────┤
│ v3.9.1 │ 126677.30hz ±4.67% (12% slower) │ 30810.27hz ±2.39% (32% slower) │ 8558.95hz ±2.13% (17% slower) │
│ v3.10.3 │ 131155.26hz ±2.30% (9% slower) │ 36302.92hz ±1.59% (12% slower) │ 9023.84hz ±1.45% (11% slower) │
│ v3.11.0pr1 │ 142427.11hz ±2.38% (Fastest) │ 40747.39hz ±1.92% (Fastest) │ 10046.83hz ±1.46% (Fastest) │
└──────────────┴───────────────────────────────────┴──────────────────────────────────┴─────────────────────────────────┘
Chaining rejected promises
┌──────────────┬───────────────────────────────────┬──────────────────────────────────┬───────────────────────────────┐
│ │ Chrome │ Safari │ Firefox │
├──────────────┼───────────────────────────────────┼──────────────────────────────────┼───────────────────────────────┤
│ v3.9.1 │ 100660.65hz ±3.05% (23% slower) │ 25086.81hz ±2.25% (18% slower) │ 720.84hz ±1.63% (Fastest) │
│ v3.10.3 │ 99817.95hz ±1.89% (24% slower) │ 27830.81hz ±2.04% (6% slower) │ 714.64hz ±1.46% (1% slower) │
│ v3.11.0pr1 │ 123689.37hz ±2.52% (Fastest) │ 29572.77hz ±2.00% (Fastest) │ 714.59hz ±1.61% (1% slower) │
└──────────────┴───────────────────────────────────┴──────────────────────────────────┴───────────────────────────────┘
Chaining fulfilled promises with reject callbacks
┌──────────────┬───────────────────────────────────┬──────────────────────────────────┬──────────────────────────────────┐
│ │ Chrome │ Safari │ Firefox │
├──────────────┼───────────────────────────────────┼──────────────────────────────────┼──────────────────────────────────┤
│ v3.9.1 │ 228646.73hz ±1.84% (Fastest) │ 59046.31hz ±1.55% (Fastest) │ 13558.08hz ±2.13% (Fastest) │
│ v3.10.3 │ 222625.86hz ±2.24% (3% slower) │ 56962.07hz ±1.76% (4% slower) │ 12156.59hz ±4.17% (12% slower) │
│ v3.11.0pr1 │ 207149.80hz ±1.65% (10% slower) │ 45461.74hz ±1.95% (30% slower) │ 11610.45hz ±1.91% (17% slower) │
└──────────────┴───────────────────────────────────┴──────────────────────────────────┴──────────────────────────────────┘
Chaining rejected promises with resolve callbacks
┌──────────────┬───────────────────────────────────┬──────────────────────────────────┬─────────────────────────────────┐
│ │ Chrome │ Safari │ Firefox │
├──────────────┼───────────────────────────────────┼──────────────────────────────────┼─────────────────────────────────┤
│ v3.9.1 │ 234371.80hz ±1.94% (Fastest) │ 52865.18hz ±1.75% (Fastest) │ 13981.25hz ±2.17% (4% slower) │
│ v3.10.3 │ 214184.25hz ±2.80% (9% slower) │ 48157.07hz ±3.10% (10% slower) │ 13753.08hz ±2.85% (6% slower) │
│ v3.11.0pr1 │ 204077.60hz ±2.41% (15% slower) │ 47740.76hz ±2.37% (11% slower) │ 14559.73hz ±1.89% (Fastest) │
└──────────────┴───────────────────────────────────┴──────────────────────────────────┴─────────────────────────────────┘
Reducing a large array
┌──────────────┬─────────────────────────────────┬─────────────────────────────────┬────────────────────────────────┐
│ │ Chrome │ Safari │ Firefox │
├──────────────┼─────────────────────────────────┼─────────────────────────────────┼────────────────────────────────┤
│ v3.9.1 │ 11744.78hz ±2.53% (Fastest) │ 3061.96hz ±4.96% (18% slower) │ 753.55hz ±3.21% (45% slower) │
│ v3.10.3 │ 9743.46hz ±3.19% (21% slower) │ 3375.04hz ±5.07% (7% slower) │ 780.11hz ±1.88% (40% slower) │
│ v3.11.0pr1 │ 10863.59hz ±3.08% (8% slower) │ 3601.48hz ±3.05% (Fastest) │ 1092.84hz ±0.42% (Fastest) │
└──────────────┴─────────────────────────────────┴─────────────────────────────────┴────────────────────────────────┘
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment