(no title)
ColinDabritz | 1 year ago
It was surprising to me too! But reflecting on it more closely, most performance isn't about "faster" in a literal sense of "more instructions run per time", but about carefully choosing how to do less work. The security property here being "history independence" is also in a way stating "we don't need to, and literally cannot, do any work that tracks history".
It's definitely an interesting approach to performance, essentially using cryptography as a contraint to prevent more work. What properties do we need, and what properties can we ignore? The question becomes if we MUST ignore this property cryptographically, how does that affect the process and the related performance?
It certainly feels like it may be a useful perspective, a rigorous approach to performance that may be a path to more improvements in key cases.
Thorrez|1 year ago
But the measurement they're actually using is how many books need to be moved. They're free to use infinite compute time AIUI.
brookst|1 year ago
Said another way, stateless approaches are simpler than stateful. There can be an instinct to optimize by using more information, but in this case at least, that was a red herring and adding the constraint improved the results.
pradn|1 year ago
koolba|1 year ago
An example of that is a linked list with no particular sort order. By not caring about maintaining an order the insertion appends or preprends a node and is O(1).
As soon as you have to maintain any additional invariant, the insertion cost goes up. Either directly or amortized.
brookst|1 year ago
To generalize it, if figuring out what information is important is more expensive than assuming none of it is, better to simplify.
nickburns|1 year ago
zeroonetwothree|1 year ago