-
Notifications
You must be signed in to change notification settings - Fork 2.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
added intentional failures to some doxbee-sequential tests #38
Conversation
If you think this kind of additional performance testing makes sense, I would go ahead and modify the other tests as well. It's really quite interesting to play with the failure rate and look at the performance hit. I recommend playing with 0%, 5% and 10% |
Looks good to me :) However these should be placed in their new folder like |
Done. The results are interesting - all promise libraries take only ~200ms longer than before. But for some, especially kew, memory goes up realllly high. One thing I find very weird however, is that running the new tests with an error likelihood of 0% yields results that are a lot worse than the tests without any failures. My guess is that this because of the 70k something random numbers generated but maybe you have an idea about that as well? Here are some numbers that I am getting: Original: results for 10000 parallel executions, 1 ms per I/O op file time(ms) memory(MB) Platform info: New: results for 10000 parallel executions, 1 ms per I/O op file time(ms) memory(MB) results for 10000 parallel executions, 1 ms per I/O op file time(ms) memory(MB) results for 10000 parallel executions, 1 ms per I/O op file time(ms) memory(MB) |
In promises examples you seem not have defined Also in callbacks baseline you are not checking if error was triggered and bailing out but continuing to run all the code even though it is unnecessary. |
that shouldn't be a problem, it's a globally accessible variable
|
Ah, didn't notice it I only saw the local |
baseline is now fixed. Have a play with the test and let me know if you are finding any interesting new results :) |
added intentional failures to some doxbee-sequential tests
Thanks, seems to work good now :) |
As I was discussing bluebird's extreme performance with other developers, they expressed doubt at whether bluebird could be fast when it has do error-catching as opposed to just passing successful promises around.
So I put together a preliminary modification of the three most important tests to give you a possible suggestion on how to make the test more powerful. Here are the old and the new results, using a 50% failure rate:
Old
results for 10000 parallel executions, 1 ms per I/O op
file time(ms) memory(MB)
callbacks-baseline.js 425 34.42
promises-bluebird-generator.js 577 38.68
promises-bluebird.js 682 38.86
Platform info:
Linux 3.11.0-13-generic x64
Node.JS 0.11.8
V8 3.21.18.3
Intel(R) Core(TM) i5-3337U CPU @ 1.80GHz × 4
New
results for 10000 parallel executions, 1 ms per I/O op
file time(ms) memory(MB)
promises-bluebird.js 946 41.25
promises-bluebird-generator.js 1017 34.16
callbacks-baseline.js 1411 38.69
Platform info:
Linux 3.11.0-13-generic x64
Node.JS 0.11.8
V8 3.21.18.3
Intel(R) Core(TM) i5-3337U CPU @ 1.80GHz × 4
Let me know what you think!