[Webkit-unassigned] [Bug 112303] New: [meta] Reduce startup mallocs

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Mar 13 17:41:07 PDT 2013


https://bugs.webkit.org/show_bug.cgi?id=112303

           Summary: [meta] Reduce startup mallocs
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: Unspecified
        OS/Version: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: WebCore Misc.
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: abarth at webkit.org
                CC: eric at webkit.org, benjamin at webkit.org


The profile for startup is has a lot of malloc-related samples.  We should reduce the number of mallocs we perform on startup to improve startup performance.  Here are the heaviest stacks for malloc on chromium-linux in DumpRenderTree:

   - tc_malloc
      - 23.76% WTF::fastMalloc(unsigned long)
         - 29.95% WTF::StringImpl::createFromLiteral(char const*, unsigned int)
            - WTF::AtomicString::addFromLiteralData(char const*, unsigned int)
               + 59.36% WebCore::createQualifiedName(void*, char const*, unsigned int, WTF::AtomicString const&)
               + 29.88% WebCore::EventNames::EventNames()
               + 10.76% WebCore::createQualifiedName(void*, char const*, unsigned int)
         - 18.95% WTF::StringImpl::createUninitialized(unsigned int, unsigned char*&)
            - 78.44% WTF::StringImpl::create(unsigned char const*, unsigned int)
                 WTF::StringImpl::create(unsigned char const*)
                 WTF::String::String(char const*)
                 WebKit::WebView::removeAllUserContent()
                 WebTestRunner::TestRunner::reset()
                 WebTestRunner::TestInterfaces::resetAll()
                 TestShell::resetTestController()
                 runTest(TestShell&, TestParams&, std::string const&, bool)
                 main
                 __libc_start_main
            - 21.56% WTF::StringBuilder::allocateBuffer(unsigned char const*, unsigned int)
                 WebCore::InspectorValue::toJSONString() const
                 WebCore::InspectorCompositeState::inspectorStateUpdated()
                 WebCore::InspectorState::setValue(WTF::String const&, WTF::PassRefPtr<WebCore::InspectorValue>)
                 WebCore::InspectorDebuggerAgent::InspectorDebuggerAgent(WebCore::InstrumentingAgents*, WebCore::InspectorCompositeState*, WebCore
                 WebCore::PageDebuggerAgent::PageDebuggerAgent(WebCore::InstrumentingAgents*, WebCore::InspectorCompositeState*, WebCore::Inspecto
                 WebCore::PageDebuggerAgent::create(WebCore::InstrumentingAgents*, WebCore::InspectorCompositeState*, WebCore::InspectorPageAgent*
                 WebCore::InspectorController::InspectorController(WebCore::Page*, WebCore::InspectorClient*)
                 WebCore::InspectorController::create(WebCore::Page*, WebCore::InspectorClient*)
                 WebCore::Page::Page(WebCore::Page::PageClients&)
                 WebKit::WebViewImpl::WebViewImpl(WebKit::WebViewClient*)
                 WebKit::WebView::create(WebKit::WebViewClient*)
                 TestShell::createNewWindow(WebKit::WebURL const&, DRTDevToolsAgent*, WebTestRunner::WebTestInterfaces*)
                 TestShell::createMainWindow()
                 main
                 __libc_start_main
         - 14.18% WebCore::QualifiedName::QualifiedName(WTF::AtomicString const&, WTF::AtomicString const&, WTF::AtomicString const&)
              WebCore::createQualifiedName(void*, char const*, unsigned int)
              WebCore::SVGNames::init()
              WebCore::Frame::create(WebCore::Page*, WebCore::HTMLFrameOwnerElement*, WebCore::FrameLoaderClient*)
              WebKit::WebFrameImpl::initializeAsMainFrame(WebCore::Page*)
              WebKit::WebViewImpl::initializeMainFrame(WebKit::WebFrameClient*)
              TestShell::createNewWindow(WebKit::WebURL const&, DRTDevToolsAgent*, WebTestRunner::WebTestInterfaces*)
              TestShell::createMainWindow()
              main
              __libc_start_main
         - 13.44% WTF::Vector<WebCore::MediaPlayerFactory*, 0ul>::expandCapacity(unsigned long)
              void WTF::Vector<WebCore::MediaPlayerFactory*, 0ul>::appendSlowCase<WebCore::MediaPlayerFactory*>(WebCore::MediaPlayerFactory* const
              WebCore::addMediaEngine(WTF::PassOwnPtr<WebCore::MediaPlayerPrivateInterface> (*)(WebCore::MediaPlayer*), void (*)(WTF::HashSet<WTF:
              WebCore::installedMediaEngines(WebCore::RequeryEngineOptions)
              WebCore::MediaPlayer::isAvailable()
              WebCore::V8DOMWindow::GetTemplate(v8::Isolate*, WebCore::WrapperWorldType)
              WebCore::V8PerContextData::constructorForTypeSlowCase(WebCore::WrapperTypeInfo*)
              WebCore::V8DOMWindowShell::installDOMWindow()
              WebCore::V8DOMWindowShell::initializeIfNeeded()
              WebCore::ScriptController::windowShell(WebCore::DOMWrapperWorld*)
              WebCore::ScriptController::mainWorldContext(WebCore::Frame*)
              WebKit::WebFrameImpl::mainWorldScriptContext() const
              WebKit::WebTestingSupport::resetInternalsObject(WebKit::WebFrame*)
              TestShell::resetTestController()
              runTest(TestShell&, TestParams&, std::string const&, bool)
              main
              __libc_start_main
         + 11.06% WebCore::CSSValuePool::createValue(double, WebCore::CSSPrimitiveValue::UnitTypes)
         + 5.62% WebCore::ResourceHandle::create(WebCore::NetworkingContext*, WebCore::ResourceRequest const&, WebCore::ResourceHandleClient*, boo
         + 4.21% WTF::CStringBuffer::createUninitialized(unsigned long)
         + 2.59% WebCore::isolatedWorldMap()
      + 18.29% v8::internal::Malloced::New(unsigned long)
        13.95% g_malloc
        3.74% 0x6e000061746100
      + 3.70% 0x7fffabf1b1e0
        3.69% 0x7f7075181995
        3.68% 0x7f7075181a55
        3.67% FcStrStaticName
        3.66% XML_GetBuffer
        3.64% 0x7f7075181678
        3.35% _xcb_in_read
        2.88% __alloc_dir
        2.52% _nl_make_l10nflist

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list