Summary: We have a bunch of order files that haven't been meaningfully updated since 2013. They contain a lot of symbols that no longer exist. They also sometimes show up in my code searches. Can we eliminate these files? ./Source/WebKit/mac/WebKit.order ./Source/JavaScriptCore/JavaScriptCore.order ./Source/WebKit2/mac/WebKit2.order ./Source/WebCore/WebCore.order
Created attachment 315066 [details] [PATCH] Proposed Fix
We've been told that order files should still be helping performance, so it seems worth trying to update.
I've been told that someone usually updates them right before a release.
Just out of curiosity, since I've never heard of this and it turns out "order files" are impossible to search for... do they cause the symbols in the framework/library to be ordered in a particular way, and that somehow results in improved performance?
Yes, using some internal profiling tools we order the symbols in a way that should improve locality. This has some memory benefits and also results in improved performance for HDDs. I normally try to do this in the last month before a release. The closer to release the better they'll match the shipping product. The last couple of times I've run it though I haven't been able to prove a performance win. Which meant for the last couple of years the task to do it has been punted in favor of other work.
If we updated it right now they would match the shipping product *much* better than a list of symbols from 2013. I think we should update or remove them.
This is still reviewable. Its been nearly 4 months with no evidence that order files improve performance or not. Removing the files we'd at least be able to see on perf bots if there is any change.
Comment on attachment 315066 [details] [PATCH] Proposed Fix Let's remove it for now. It's really unhelpful to have these order files from 2013.
*** This bug has been marked as a duplicate of bug 204959 ***