
Latency Tricks - cgaebel
http://clarkgaebel.com/latency-tricks.html
======
contingencies
Helpful quotes on optimization fall in to two categories, first - the fallacy
of optimization in general.

 _Optimization: Prototype before polishing. Get it working before you optimize
it._ \- Eric S. Raymond, The Art of Unix Programming (2003)

 _Optimization considered harmful: In particular, optimization introduces
complexity, and as well as introducing tighter coupling between components and
layers._ \- RFC3439

 _Spell create with an 'e'._ \- Ken Thompson (referring to design regrets on
the UNIX creat(2) system call and the fallacy of premature optimization)

 _The First Rule of Program Optimization: Don 't do it._ \- Michael Jackson

 _The Second Rule of Program Optimization (for experts only): Don 't do it
yet._ \- Michael Jackson

Second, the established method.

 _Before optimizing, using a profiler._ \- Mike Morton

... from my fortune clone @
[https://github.com/globalcitizen/taoup](https://github.com/globalcitizen/taoup)

------
eterm
Couldn't the minimum of 2 iid rvs drawn from a pareto distribution be
calculated analytically?

------
StillBored
The article while interesting doesn't even attempt to talk about identifying
_WHY_ he is experiencing latency spikes.

It seems to me that the first step is to instrument the heck out of your
application. That way you know _WHY_ it sometimes takes longer to respond than
at other times. I understand this is harder in a GC'ed/JIT'ed language, but
its not really an excuse.

Good instrumentation is helpful for far more than tracking and isolating
problems in ones software stack. The project I work on has pretty extensive
request level instrumentation which tracks each request at multiple points as
they are processed. More than once the first signs that a piece of hardware is
failing is the disk or network IO's start to have unusual latency patterns.
Often software performance regressions show up as highly variable database
requests, etc..

------
aidenn0
This is interesting. Of course you now have to synchronize state between the
servers, and it will only work if a significant fraction of the higher-latency
events are independent between servers.

