8 ms·
And fwiw, the full quote is: We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we shou
by vendiddy 6y ago
And fwiw, the full quote is:
We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.
Yet we should not pass up our opportunities in that critical 3%.
- blowski 6y agoAlso, it’s not “never optimise”. It’s “only optimise once you’ve identified a bottleneck”. I guess in a profit-making business you only care about bottlenecks that are costing money. Perhaps this one isn’t costing money.
- skzo 6y agoding ding ding ding
- saagarjha 6y agoThis one isn’t measured to be costing money. Trying to figure out how much money you’re losing as a result of performance problems is extremely difficult to do.
- CogitoCogito 6y agoPerhaps this one is costing them a lot of money.
- nmfisher 6y agoPrecisely. Hasn't GTA Online done over a billion in revenue? Given how incredibly successful it's been, it's conceivable the suits decided the opportunity cost of investing man-hours to fix the issue was too high, and that effort would be better spent elsewhere.
- Dylan16807 6y agoThey're making lots of money but the ridiculous load times absolutely cost them money. It's not worth an unlimited amount of dev time to fix, but they definitely should have assigned a dev to spend one day estimating how hard fixes would be.
- rjmunro 6y agoIt's costing them money just in the time wasted by their own internal QAs and devs loading the game to test it.
- nmfisher 6y agoThat's also possible. I haven't played it myself, so I really can't comment.
- blowski 6y agoArguably, it could actually make them money, since it provides a window of free advertising. I have no data either way, but I wouldn’t assume long load screens are necessarily bad for business.
- Dylan16807 6y agoThey don't need more than a full minute of advertising every load.
- danlugo92 6y agoN=1 but one of the reasons I don't partake in modern gaming is ridiculous loading times and mandatory update sizes.
- ric2b 6y agoWhere does the belief that corporations are somehow perfect at doing cost-benefit analysis come from? Has anyone worked in a place where that seemed to be the case? We're talking about an issue that has been loudly complained about for 7 years (and I am evidence that it makes people play the game much less often than they would like to) that some person without access to the source code was able to identify and fix relatively quickly, it would be surprising if it took an FTE 1 week to find this with access to the source code. This is one of the most profitable games ever, they could hire an entire team to track this down for half a year and it wouldn't even be noticeable on their balance sheet. And I would bet money that it would have increased their active player base (which they care about because of the micro-transactions) in a noticeable way, as long as players were aware of the improvement so they would try it again.
- astrange 6y agoNot all performance problems have obvious "bottlenecks", some are entirely second-order effects. For instance, everyone tells you not to optimize CPU time outside of hotspots, but with memory usage even a brief peak of memory usage in cold code is really bad for system performance because it'll kick everything else out of memory.
- nicbou 6y agoThen again, using the correct data structure is not really optimisation. I usually think of premature optimisation as unnecessary effort, but using a hash map isn't it.
- CogitoCogito 6y agoMy belief is that your first goal should be cognitive optimization. I.e. make it simple and clear. That includes using hash maps when that is the proper data structure since that’s is what is called for at a base design level. The next step is to optimize away from the cognitively optimal, but only when necessary. So yeah it’s really crazy this was ever a problem at all.
- yxhuvud 6y agoOTOH, at some point what is good from a cognitive viewpoint depends on what idioms you use. So it can be helpful to actively chose which idioms you use and make certain to not use those that tend to blow up performance wise.
- CogitoCogito 6y agoGiven the current code example, I don't even thing idioms come into it. Here a hash map data structure was called for regardless of whatever idioms come into other parts of the design. This is just fundamental and has nothing to do with functional programming, OOP, etc.
- marcosdumay 6y agoIf it doesn't change semantics, it's optimization. It's just a zero cost one, so if anybody appears complaining that you are caring to choose the correct data structure and that's premature (yeah, it once happened to me too), that person is just stupid. But not calling it an optimization will just add confusion and distrust.
- rodgerd 6y agoThis is the key point: premature optimization would be e.g. denormalising a database because you think you might have a performance problem at some point, and breaking the data model for no good reason. Here the wrong data structure has been used in the first place.