Comments (10)
I would love to see how this compares with stud.
from bud.
I did some benchmarks and here is how it compares to stud right now, on small "hello world" response:
128 kb response:
from bud.
So it is significantly slower at bigger responses somehow, but has the same speed at small ones. I'll look into improving this situation, pretty sure that there are some space for optimization here.
from bud.
I believe in that too :) Good luck with the optimizations. I was worried of
stud because it has no activities recently. So bud would be a better
replacement.
On Mon, Dec 23, 2013 at 7:10 PM, Fedor Indutny [email protected]:
So it is significantly slower at bigger responses somehow, but has the
same speed at small ones. I'll look into improving this situation, pretty
sure that there are some space for optimization here.—
Reply to this email directly or view it on GitHubhttps://github.com//issues/20#issuecomment-31119446
.
Arunoda Susiripala
@arunoda http://twitter.com/arunoda
http://gplus.to/arunodahttps://github.com/arunoda
http://www.linkedin.com/in/arunoda
from bud.
Ha, nvm. I forgot to disable max_send_fragment
option in bud. Here are correct results for 128kb body:
NOTE: I used 80 percentile, because 95 was too noisy...
from bud.
If anyone wants to reproduce those results, steps are following:
- Spawn two smartos servers (one 16 core, other 4 core), clone https://github.com/indutny/bud-benchmark-comparison on both of them
cd bud-benchmark-comparison && ./init-server.sh
- When 2 is done -
cd bud-benchmark-compariso && ./init-client.sh <ip-of-your-server> && node process.js > results.csv && ./init-client.sh <ip-of-your-server> big && node process.js > results-big.csv
- Load CSVs into google doc and create charts!
from bud.
Perhaps I'm misunderstanding max_send_fragment
, but what exactly do you mean by "disable max_send_fragment"? Were you explicitly setting a lower max record size in first test? And if so, what was the record size set to? I presume "disabling" then would mean the default/max 16KB record size?
from bud.
Yep, I was setting it to 1400. When I disabled it - it was using default 16kb record size.
from bud.
I'm not denying that setting it to 1400 improves interactivity, just saying that makes maximum possible bandwidth significantly lower (and thus makes CPU usage higher).
from bud.
Right, ok - we're on the same page. Just wanted to make sure I'm interpreting the results correctly.
There is definitely a tradeoff here: smaller records lead to more framing overhead and more CPU cycles to compute the checksums, etc... Start small and boost the size to get the best of both worlds. :)
from bud.
Related Issues (20)
- DDoS resilience HOT 1
- bud not building again... HOT 2
- Add lets encrypt integration using sni challenge. HOT 4
- `npm i -g bud` requires legacy version of node? HOT 1
- Protocol agnostic? HOT 1
- Configuration for multiple frontends mapping 1:1 to multiple backends
- "gypkg build" encounter error HOT 1
- Getting client cert's distinguished name HOT 6
- Collecting data about bud usage HOT 5
- daemon flag causes bud not to run at all HOT 3
- bud build "succeeds" but the binary is not valid HOT 18
- Install fails on SmartOS: Ninja prebuild step does not detect platform HOT 1
- iOS Safari fails to connect when bud uses SNI/contexts and automatically disables SSL resumption cache HOT 2
- Lots of segfaults HOT 59
- Set non-random TLS ticket keys on dynamical SNI contexts.
- Retry async SNI requests
- Another segfault with SNI HOT 1
- bud leaks memory HOT 13
- SNI context LRU cache
- cert_cb not triggered when client sends valid TLS ticket HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bud.