3 ms·
Very insightful. "More benchmarks also measure throughput more than latency.": Yup, latency benchmarks are really very hard, especially when humans are involv
by pointernil 13y ago
Very insightful.
"More benchmarks also measure throughput more than latency.":
Yup, latency benchmarks are really very hard, especially when humans are involved (UI/UX), due to biases and the way perception and cognition quite often try to adapt sparing us "the worst of latency" but at the same time leave us with a gut feeling of "lag". The journey J. Carmack undertook to find and work around latencies for the Oculus Rift is good example for all this, i think. You can't do this for each and every app to give all users this "snappy" feeling... especially when a huge system like "the internet" is involved.
I believe there is also "latency creep": even if "a system" has low latency at the beginning, operating it, maintaining it and especially scaling it will more easily accept increased latency than lower throughput... up to an threshold of course when the system becomes "apparently and unbearably slow" (still not the case for google, facebook etc. i guess)
Add servers to a farm because the median req. latency increased by 30%? Hmm...
Add servers to a farm because the number of users increased by 30%? Sure! ;)
So most probably facebook, yahoo etc. are missing serious absolute latency SLAs [1] and those huge organizations as a whole tend to neglect them until things break... they don't care about "slow(ish)".
[1] http://en.wikipedia.org/wiki/Service-level_agreement http://en.wikipedia.org/wiki/Service-level_agreement
ps: it's "funny" to see the gaming big-biz industry fighting this: they are huge organizations willing to accept "slow" if the money comes in right, at the same time some of them are in a market where the customers are much more sensible to this issues than the typical facebook is slow poster.
- nhaehnle 13y agoWell-intended advice from another non-native speaker: You probably meant "sensitive" instead of "sensible" in your P.S.
- pointernil 13y agoright ;) thanks.
- rdtsc 13y ago> I believe there is also "latency creep": Very good point. I'll have to steal that phrase. Latency is additive in the system but also over time usually. Prototypes look good from then on it is usually just API layers, paths and more code on top. Those usually add latency to the stack.
- pointernil 13y ago... and I will have to steal your additional and concise points from the software development perspective ;) Thinking about it, maybe to ensure some latency awareness we should adapt the "timeout-exception" concept in areas it is not used today. Given some runtime-lib support call sites in a project could be given a timing threshold to complete their work... if the threshold is exceeded an exception could break the code-flow in a specially prepared build of the project. In very modern dynamic environments ;) such thing could be implemented by transparently wrapping the call sites (via attributes, annotations, monads etc), in more traditional env. the compiler could generate specially adapted code measuring the latency using the high precision timers most CPUs provide...