4 ms·
> That is, any sort of astonishing improvements is often a sign of the original version being crappy, so it's also a red flag even if it's ultimately the good n
by reallydontask 6y ago
> That is, any sort of astonishing improvements is often a sign of the original version being crappy, so it's also a red flag even if it's ultimately the good news.
How is it a red flag? I don't quite understand your comment.
- oblio 6y agoHe's assuming that one of the most widely used runtimes in the world had easy optimizations to do, about 20 years after it was first launched. Something like: a Microsoft programmer uncommented // PERFORMANCE_MODE = true to make .NET fast. His comment is just silly :-)
- jen20 6y ago> assuming that one of the most widely used runtimes in the world had easy optimizations to do, about 20 years after it was first launched. Perhaps not trivial, but it did have easy optimizations - within hours of it being open sourced, external people who had not worked on the codebase were making pull requests with straightforward (and in some cases substantial) optimizations. Matt Warren (author of Benchmark.NET) has tracked many of these.
- oblio 6y agoYeah, but those happen in any code base. You can always find improvements, sometimes changes that seem trivial in hindsight. That doesn't make the original code base crap :-)
- jen20 6y agoYup - absolutely agree. Being open source and accepting contributions means that people can spend time on bits which otherwise will not get prioritised.
- philliphaydon 6y agoWhen Microsoft worked on the .net framework. Performance was not a metric they used. The only performance goal they had was basically “it can’t be slower than it is now”. So performance can’t regress. Since open sourcing performance is one of the goals in mind. And it shows.
- kqr 6y agoI think the author of the comment is saying that existence of low hanging fruits is evidence that people haven't gone out to pick fruit in a while. Where picking fruit really means "improving quality", and low hanging fruit means "quality issues". I don't think I agree with this, but hopefully that makes it more clear what was meant.
- ygra 6y agoHaving followed the process and lots of improvements in .NET over the past year or so, there's not that many low-hanging fruit anymore and definitely not the kind where a quick 5-minute change brings considerable gains. Some of the things that have happened are reducing allocations aggressively, which _can_ a quick change by using newer language features where applicable, but a lot also have been things like vectorizing algorithms or adding additional optimizations either in the JIT or in other code that's generated (regular expressions). Those are rarely trivial. It's more like there's been a few hundred small individual improvements and those provide a lot of improvement in total.