RESOLVED FIXED 146536
Web Inspector: Aggregate profile call information on the backend to drastically reduce profile sizes
https://bugs.webkit.org/show_bug.cgi?id=146536
Summary Web Inspector: Aggregate profile call information on the backend to drastical...
Joseph Pecoraro
Reported 2015-07-01 17:19:21 PDT
* SUMMARY Aggregate profile call information on the backend to drastically reduce profile sizes. * STEPS TO REPRODUCE 1. Open <https://www.apple.com/procurement/> 2. Open Inspector 3. On page, click "Responsible Supplier Management" link to navigate => WebKit crashes * NOTES - The backend builds a 500+MB string for profile data - Namely because one function calls (1) trim 1.7 million times, (2) substring 1.7 million times, and (3) indexOf 0.8 million times - The profile data includes a serialization for each of those individual calls, which is almost entirely unnecessary for the UI
Attachments
[PATCH] Proposed Fix (16.68 KB, patch)
2015-07-01 17:30 PDT, Joseph Pecoraro
no flags
[PATCH] Proposed Fix (16.65 KB, patch)
2015-07-01 17:35 PDT, Joseph Pecoraro
no flags
Joseph Pecoraro
Comment 1 2015-07-01 17:19:28 PDT
Joseph Pecoraro
Comment 2 2015-07-01 17:30:55 PDT
Created attachment 255976 [details] [PATCH] Proposed Fix
WebKit Commit Bot
Comment 3 2015-07-01 17:32:06 PDT
Attachment 255976 [details] did not pass style-queue: ERROR: Source/WebCore/ChangeLog:8: You should remove the 'No new tests' and either add and list tests, or explain why no new tests were possible. [changelog/nonewtests] [5] Total errors found: 1 in 9 files If any of these errors are false positives, please file a bug against check-webkit-style.
Joseph Pecoraro
Comment 4 2015-07-01 17:35:36 PDT
Created attachment 255977 [details] [PATCH] Proposed Fix
Timothy Hatcher
Comment 5 2015-07-01 20:57:30 PDT
Comment on attachment 255977 [details] [PATCH] Proposed Fix View in context: https://bugs.webkit.org/attachment.cgi?id=255977&action=review > Source/WebInspectorUI/UserInterface/Models/ProfileNode.js:173 > + // COMPATIBILITY (iOS8): Profiles included per-call information and can be finely partitioned. Might just want to synthesize callInfo in the future on the front end to avoid complexity.
WebKit Commit Bot
Comment 6 2015-07-01 21:47:42 PDT
Comment on attachment 255977 [details] [PATCH] Proposed Fix Clearing flags on attachment: 255977 Committed r186218: <http://trac.webkit.org/changeset/186218>
WebKit Commit Bot
Comment 7 2015-07-01 21:47:45 PDT
All reviewed patches have been landed. Closing bug.
Csaba Osztrogonác
Comment 8 2015-07-01 22:29:34 PDT
(In reply to comment #6) > Comment on attachment 255977 [details] > [PATCH] Proposed Fix > > Clearing flags on attachment: 255977 > > Committed r186218: <http://trac.webkit.org/changeset/186218> It broke the Apple Windows build.
Joseph Pecoraro
Comment 9 2015-07-01 23:50:10 PDT
(In reply to comment #8) > (In reply to comment #6) > > Comment on attachment 255977 [details] > > [PATCH] Proposed Fix > > > > Clearing flags on attachment: 255977 > > > > Committed r186218: <http://trac.webkit.org/changeset/186218> > > It broke the Apple Windows build. Thanks for the heads up. The bots show: > c:\cygwin\home\buildbot\slave\win-debug\build\source\webcore\inspector\TimelineRecordFactory.cpp(212): error C2039: 'CPUProfileNodeAggregateCallInfo' : is not a member of 'Inspector::Protocol::Timeline' [C:\cygwin\home\buildbot\slave\win-debug\build\Source\WebCore\WebCore.vcxproj\WebCore.vcxproj] > c:\cygwin\home\buildbot\slave\win-debug\build\source\webcore\inspector\TimelineRecordFactory.cpp(212): error C2065: 'CPUProfileNodeAggregateCallInfo' : undeclared identifier [C:\cygwin\home\buildbot\slave\win-debug\build\Source\WebCore\WebCore.vcxproj\WebCore.vcxproj] Seems like Windows didn't update regenerate some files even though Timeline.json was modified? I'm going to try forcing a clean build on these bots.
Joseph Pecoraro
Comment 10 2015-07-01 23:52:32 PDT
And the other bot: > python: can't open file '/home/buildbot/slave/win-release/build/WebKitBuild/Release/include/private/JavaScriptCore/cssmin.py': [Errno 2] No such file or directory > make: *** No rule to make target '/home/buildbot/slave/win-release/build/WebKitBuild/Release/include/private/JavaScriptCore/JSInputs.json', needed by 'WebReplayInputs.h'. Stop. > make: *** Waiting for unfinished jobs.... > make: *** [XMLViewerCSS.h] Error 2 > /home/buildbot/slave/win-release/build/Source/WebCore/DerivedSources.make:893: recipe for target 'XMLViewerCSS.h' failed > python /home/buildbot/slave/win-release/build/WebKitBuild/Release/include/private/JavaScriptCore/jsmin.py </home/buildbot/slave/win-release/build/Source/WebCore/inspector/CommandLineAPIModuleSource.js >> ./CommandLineAPIModuleSource.min.js > python: can't open file '/home/buildbot/slave/win-release/build/WebKitBuild/Release/include/private/JavaScriptCore/jsmin.py': [Errno 2] No such file or directory > /home/buildbot/slave/win-release/build/Source/WebCore/DerivedSources.make:904: recipe for target 'XMLViewerJS.h' failed Seems like more issues with file generation. Not sure what is up there.
Joseph Pecoraro
Comment 11 2015-07-01 23:55:58 PDT
One of the bots recovered on their own: https://build.webkit.org/builders/Apple%20Win%20Debug%20%28Build%29/builds/89286 Failed https://build.webkit.org/builders/Apple%20Win%20Debug%20%28Build%29/builds/89287 Success I still forced a clean build on the other bot (Win Release) to try and fix it up.
Note You need to log in before you can comment on or make changes to this bug.