Earlier quoted context omitted.
I've gotten pretty good results from PGO as well as JIT optimizations (which isn't conceptually much different), but even if I hadn't, your comment is still a fallacy on two accounts: 1) JITs were slow until they weren't. Poor results from existing experimental PGO compilers do not prove that the concept is flawed. 2) Profiling is a heuristic substitute for a real cost model. The most advanced optimizing compilers fo…
And in theory, dependent types are the awesomest thing ever. But they're not ready yet, and there's no guarantee they ever will be. There's a gulf between even having a few focused, carefully-chosen proofs of concept and a practically-useful technology. (For that matter, I just grabbed that example off the top of my head as the thing I knew that most resembled the various fancy optimizers I've seen over the years, bu…
Random Acts of Optimization
31–40 of 128 posts
Re: Random Acts of Optimization
#32Earlier quoted context omitted.
A rewrite would murder them. I'm not going to link that article everyone links about "never rewriting your code", because I don't think it's got the argument right, but I strongly feel that if they tried to rewrite a system as complex as theirs, they would either a) never finish or b) stop developing the game and, by the time they finished their rewrite, have no customers left. Anyway, it would end up being called a…
Not having a well-written client is murdering them. Sometimes the hard way is the best way.
"Murdering them" how?
Re: Random Acts of Optimization
#33This brings up a thought that I've had for a very long time. Almost every type of optimization that a programmer could employ is repeatable. It involves matching patterns ("Identification" in the context of this article), analysis ("Comprehension"), and rewriting ("Iteration"). All of these steps can be efficiently automated. And it turns out that compiler writers collectively know about the vast majority of these te…
I still do higher level optimizations though, like caching and tweaking formulas (less computations), when needed.
Re: Random Acts of Optimization
#34Earlier quoted context omitted.
A rewrite would murder them. I'm not going to link that article everyone links about "never rewriting your code", because I don't think it's got the argument right, but I strongly feel that if they tried to rewrite a system as complex as theirs, they would either a) never finish or b) stop developing the game and, by the time they finished their rewrite, have no customers left. Anyway, it would end up being called a…
Not having a well-written client is murdering them. Sometimes the hard way is the best way.
They have the most popular video game of all time and you think that a poorly written client is killing them? It has had some problems over the years that are annoying to users (and frankly embarrassing when compared to DOTA 2), but at the end of the day the quality of the client is insignificant to most players compared to the fun-factor of the game itself, as proven by their unprecedented success.
Re: Random Acts of Optimization
#35The biggest optimization would be to change their programming language.
Re: Random Acts of Optimization
#36Earlier quoted context omitted.
A rewrite would murder them. I'm not going to link that article everyone links about "never rewriting your code", because I don't think it's got the argument right, but I strongly feel that if they tried to rewrite a system as complex as theirs, they would either a) never finish or b) stop developing the game and, by the time they finished their rewrite, have no customers left. Anyway, it would end up being called a…
Not having a well-written client is murdering them. Sometimes the hard way is the best way.
I play League a lot. There are bugs, sure, but altogether the game feels very polished. Much more so than many other games I have played. [There were two high-impact bugs in the current tournament that go counter to this, but they've been addressed already.]
The 'hard way' you espouse is ludicrous and far from the best way. It's not even an option. (Of course this is just my hunch, but it's a well-founded one)
[The ways that league does not feel polished are not related to code quality. They're much more around the new user experience and the toolset available to hardcore players (replays, sandboxes, among others).]
Re: Random Acts of Optimization
#37Earlier quoted context omitted.
I've gotten pretty good results from PGO as well as JIT optimizations (which isn't conceptually much different), but even if I hadn't, your comment is still a fallacy on two accounts: 1) JITs were slow until they weren't. Poor results from existing experimental PGO compilers do not prove that the concept is flawed. 2) Profiling is a heuristic substitute for a real cost model. The most advanced optimizing compilers fo…
> Profiling is a heuristic substitute for a real cost model. Even a perfect cost model can't tell you the difference between hot paths and cold paths. Profiling can.
Re: Random Acts of Optimization
#38This brings up a thought that I've had for a very long time. Almost every type of optimization that a programmer could employ is repeatable. It involves matching patterns ("Identification" in the context of this article), analysis ("Comprehension"), and rewriting ("Iteration"). All of these steps can be efficiently automated. And it turns out that compiler writers collectively know about the vast majority of these te…