[Webkit-unassigned] [Bug 97910] [SVG] Use references are much slower than necessary

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Sep 28 07:57:09 PDT 2012


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


Florin Malita <fmalita at chromium.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |fmalita at chromium.org




--- Comment #3 from Florin Malita <fmalita at chromium.org>  2012-09-28 07:57:34 PST ---
(In reply to comment #0)
> WebKit is copying the elements referenced by 'use', which should not be necessary at all.

Deep cloning is likely needed to support full <use> semantics - see http://www.w3.org/TR/SVG/struct.html#UseElement

But the profile for the slow tests does seem odd - most cycles wasted in synchronization and string manipulation code:


  2.77%           chrome  libpthread-2.15.so                  [.] pthread_mutex_unlock
  2.59%           chrome  libpthread-2.15.so                  [.] pthread_mutex_lock
  1.36%          swapper  [kernel.kallsyms]                   [k] mwait_idle_with_hints
  1.35%           chrome  libwebkit.so                        [.] WTF::StringHasher::addCharactersToHash(unsigned short, unsigned short)
  1.25%           chrome  libwebkit.so                        [.] WTF::intHash(unsigned long)
  1.10%           chrome  libwebkit.so                        [.] WTF::OwnPtr<WTF::Mutex>::operator*() const
  1.05%           chrome  libwebkit.so                        [.] WTF::Locker<WTF::Mutex>::Locker(WTF::Mutex&)
  0.96%           chrome  libwebkit.so                        [.] WTF::Mutex::lock()
  0.94%           chrome  libwebkit.so                        [.] WebCore::Node::getFlag(WebCore::Node::NodeFlags) const
  0.79%           chrome  libwebkit.so                        [.] WTF::ThreadRestrictionVerifier::isSafeToUse() const
  0.76%           chrome  libwebkit.so                        [.] WTF::RefPtr<WTF::StringImpl>::get() const
  0.73%           chrome  chrome                              [.] (anonymous namespace)::FL_Previous_No_Check(void*)
  0.71%           chrome  libwebkit.so                        [.] unsigned int WTF::StringHasher::computeHashAndMaskTop8Bits<unsigned short, &(WTF::StringHasher::defaultConverter(unsi
  0.63%           chrome  libpthread-2.15.so                  [.] pthread_getspecific
  0.58%           chrome  chrome                              [.] PackedCache<36, unsigned long>::GetOrDefault(unsigned long, unsigned long) const
  0.57%           chrome  libwebkit.so                        [.] WebCore::Node::document() const
  0.50%           chrome  chrome                              [.] TCMalloc_PageMap3<36>::get(unsigned long) const
  0.50%           chrome  libwebkit.so                        [.] bool WTF::IdentityHashTranslator<WTF::PtrHash<WebCore::SVGElement*> >::equal<WebCore::SVGElement*>(WebCore::SVGElemen
  0.48%           chrome  libwebkit.so                        [.] WTF::Mutex::unlock()
  0.47%         cinnamon  [kernel.kallsyms]                   [k] audit_filter_syscall
  0.46%           chrome  libwebkit.so                        [.] WTF::ThreadIdentifierData::identifier()
  0.44%           chrome  libc-2.15.so                        [.] __memset_sse2
  0.44%           chrome  chrome                              [.] base::subtle::Acquire_Load(long const volatile*)
  0.44%           chrome  chrome (deleted)                    [.] 0x3255b0f
  0.39%           chrome  libwebkit.so                        [.] WTF::String::impl() const
  0.38%           chrome  libwebkit.so                        [.] WTF::Locker<WTF::Mutex>::~Locker()
  0.37%           chrome  libwebkit.so                        [.] void WTF::addIterator<WebCore::SVGElement*, WTF::KeyValuePair<WebCore::SVGElement*, WTF::OwnPtr<WTF::HashSet<WebCore:
  0.37%           chrome  libwebkit.so                        [.] WTF::RefCountedBase::derefBase()
  0.35%           chrome  chrome                              [.] CheckCachedSizeClass(void*)
  0.32%           chrome  libwebkit.so                        [.] WebCore::RenderObject::document() const
  0.32%           chrome  chrome                              [.] (anonymous namespace)::MaskPtr(void*)
  0.32%           chrome  libwebkit.so                        [.] WTF::StringHasher::defaultConverter(unsigned short)
  0.31%           chrome  libwebkit.so                        [.] WTF::doubleHash(unsigned int)
  0.31%           chrome  libwebkit.so                        [.] WTF::RefCountedBase::ref()
  0.28%           chrome  libwebkit.so                        [.] void WTF::removeIterator<WebCore::SVGElement*, WTF::KeyValuePair<WebCore::SVGElement*, WTF::OwnPtr<WTF::HashSet<WebCo
  0.27%           chrome  libwebkit.so                        [.] WTF::currentThread()
  0.27%           chrome  libwebkit.so                        [.] WTF::StringHasher::avalancheBits() const

-- 
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