<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>224166</bug_id>
          
          <creation_ts>2021-04-03 17:26:54 -0700</creation_ts>
          <short_desc>Wasted vector capacity in ImageSource</short_desc>
          <delta_ts>2021-04-10 17:27:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Images</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1746831</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-04-03 17:26:54 -0700</bug_when>
    <thetext>ImageSource wastes vector capacity in m_frameCommitQueue. On YouTube.com:

Wasted capacity: 11264 bytes (used 0 of 11264 bytes, utilization: 0.00%) - 44 allocations
5   0x11a7f06cd WTF::VectorBuffer&lt;WebCore::ImageSource::ImageFrameRequest, 8ul, WTF::FastMalloc&gt;::VectorBuffer()
6   0x11a7f03f5 WTF::VectorBuffer&lt;WebCore::ImageSource::ImageFrameRequest, 8ul, WTF::FastMalloc&gt;::VectorBuffer()
7   0x11a7f03b5 WTF::Deque&lt;WebCore::ImageSource::ImageFrameRequest, 8ul&gt;::Deque()
8   0x11a7e5155 WTF::Deque&lt;WebCore::ImageSource::ImageFrameRequest, 8ul&gt;::Deque()
9   0x11a7e4f86 WebCore::ImageSource::ImageSource(WebCore::BitmapImage*, WebCore::AlphaOption, WebCore::GammaAndColorProfileOption)
10  0x11a7e5209 WebCore::ImageSource::ImageSource(WebCore::BitmapImage*, WebCore::AlphaOption, WebCore::GammaAndColorProfileOption)
11  0x11a6ea517 WebCore::ImageSource::create(WebCore::BitmapImage*, WebCore::AlphaOption, WebCore::GammaAndColorProfileOption)
12  0x11a6ea406 WebCore::BitmapImage::BitmapImage(WebCore::ImageObserver*)
13  0x11a6ea58d WebCore::BitmapImage::BitmapImage(WebCore::ImageObserver*)
14  0x1183375cb WebCore::BitmapImage::create(WebCore::ImageObserver*)
15  0x11a7d360a WebCore::Image::create(WebCore::ImageObserver&amp;)
16  0x11a2d1146 WebCore::CachedImage::createImage()
17  0x11a2d4c59 WebCore::CachedImage::updateBufferInternal(WebCore::SharedBuffer&amp;)
18  0x11a2d5184 WebCore::CachedImage::updateBuffer(WebCore::SharedBuffer&amp;)
19  0x11a25dfef WebCore::SubresourceLoader::didReceiveDataOrBuffer(char const*, int, WTF::RefPtr&lt;WebCore::SharedBuffer, WTF::RawPtrTraits&lt;WebCore::SharedBuffer&gt;, WTF::DefaultRefDerefTraits&lt;WebCore::SharedBuffer&gt; &gt;&amp;&amp;, long long, WebCore::DataPayloadType)
20  0x11a25dd41 WebCore::SubresourceLoader::didReceiveData(char const*, unsigned int, long long, WebCore::DataPayloadType)
21  0x1071cceda WebKit::WebResourceLoader::didReceiveData(IPC::ArrayReference&lt;unsigned char, 18446744073709551615ul&gt; const&amp;, long long)
22  0x1077d7629 void IPC::callMemberFunctionImpl&lt;WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(IPC::ArrayReference&lt;unsigned char, 18446744073709551615ul&gt; const&amp;, long long), std::__1::tuple&lt;IPC::ArrayReference&lt;unsigned char, 18446744073709551615ul&gt;, long long&gt;, 0ul, 1ul&gt;(WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(IPC::ArrayReference&lt;unsigned char, 18446744073709551615ul&gt; const&amp;, long long), std::__1::tuple&lt;IPC::ArrayReference&lt;unsigned char, 18446744073709551615ul&gt;, long long&gt;&amp;&amp;, std::__1::integer_sequence&lt;unsigned long, 0ul, 1ul&gt;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746832</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-04-03 17:27:39 -0700</bug_when>
    <thetext>There&apos;s inline capacity in the Deque&lt;&gt; because of BufferSize=8.

Most images don&apos;t do async decoding so this is wasteful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749043</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-10 17:27:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/76498514&gt;</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>