<?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>33876</bug_id>
          
          <creation_ts>2010-01-19 16:52:52 -0800</creation_ts>
          <short_desc>[Qt] Shortcut for Font::floatWidthForComplexText</short_desc>
          <delta_ts>2010-03-07 23:19:54 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>34208</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Holger Freyther">zecke</reporter>
          <assigned_to name="Holger Freyther">zecke</assigned_to>
          <cc>benjamin</cc>
    
    <cc>eric</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>skyul</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>182529</commentid>
    <comment_count>0</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2010-01-19 16:52:52 -0800</bug_when>
    <thetext>For text which only consists of one charachter we can avoid using harfbuzz and try QFontMetrics::width instead. In the case of loading google.com/news (english version) 23% of all calls to the floatWidthForComplexText is from a space. It is also true for other sites with less links.

I&apos;m currently doing a reduction and looking into the possible performance gain.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185423</commentid>
    <comment_count>1</comment_count>
      <attachid>47605</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2010-01-28 04:29:01 -0800</bug_when>
    <thetext>Created attachment 47605
First patch

Only &apos; &apos;, &apos;\t&apos; has the benefit of being fast with QFontMetrics::width. Any other charachter might or might not have different rounding and about the same speed as harfbuzz. This is a significant improvement on the pageloading test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185783</commentid>
    <comment_count>2</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-01-29 02:29:07 -0800</bug_when>
    <thetext>Here are the results of the painting benchmark on a regular N900:

Before the patch:
	benchmark: http://en.wikipedia.org/wiki/Main_Page
		mean:       30 msecs +/- 1 msecs, +/- 3.333333 %
		avg:        30 msecs
			31, 30, 30, 30, 31, 30, 30, 32, 30, 32, 
	benchmark: http://en.wikipedia.org/wiki/Nokia
		mean:      244 msecs +/- 1 msecs, +/- 0.409836 %
		avg:       243 msecs
			244, 243, 242, 245, 244, 246, 242, 242, 244, 244, 
	benchmark: http://buzz.blogger.com/
		mean:      182 msecs +/- 1 msecs, +/- 0.549451 %
		avg:       181 msecs
			181, 182, 181, 181, 179, 183, 181, 182, 182, 182, 
	benchmark: http://googleblog.blogspot.com/
		mean:       82 msecs +/- 0 msecs, +/- 0.000000 %
		avg:        81 msecs
			81, 81, 81, 82, 82, 81, 82, 80, 82, 82, 
	benchmark: http://news.163.com/
		mean:      299 msecs +/- 1 msecs, +/- 0.334448 %
		avg:       299 msecs
			299, 301, 300, 299, 299, 298, 300, 301, 299, 299, 
	benchmark: http://www.imdb.com/title/tt0468569/
		mean:       49 msecs +/- 0 msecs, +/- 0.000000 %
		avg:        49 msecs
			49, 48, 50, 50, 48, 49, 50, 50, 49, 49, 
	benchmark: http://www.flickr.com/photos/rocio-ponce/3209550712/
		mean:       54 msecs +/- 0 msecs, +/- 0.000000 %
		avg:        53 msecs
			54, 54, 53, 52, 54, 53, 55, 54, 54, 55, 
	benchmark: http://www.amazon.com/Kindle-Wireless-Reading-Display-Generation/dp/B0015TG12Q/
		mean:      296 msecs +/- 2 msecs, +/- 0.675676 %
		avg:       294 msecs
			296, 294, 292, 296, 299, 292, 292, 294, 297, 296, 

With the page:
	benchmark: http://en.wikipedia.org/wiki/Main_Page
		mean:       30 msecs +/- 0 msecs, +/- 0.000000 %
		avg:        30 msecs
			31, 30, 31, 30, 31, 30, 30, 30, 31, 30, 
	benchmark: http://en.wikipedia.org/wiki/Nokia
		mean:      242 msecs +/- 3 msecs, +/- 1.239669 %
		avg:       242 msecs
			241, 241, 242, 251, 241, 243, 242, 242, 242, 240, 
	benchmark: http://buzz.blogger.com/
		mean:      181 msecs +/- 0 msecs, +/- 0.000000 %
		avg:       180 msecs
			181, 180, 181, 180, 181, 179, 181, 181, 181, 182, 
	benchmark: http://googleblog.blogspot.com/
		mean:       81 msecs +/- 0 msecs, +/- 0.000000 %
		avg:        81 msecs
			81, 81, 81, 81, 80, 81, 83, 80, 81, 81, 
	benchmark: http://news.163.com/
		mean:      297 msecs +/- 0 msecs, +/- 0.000000 %
		avg:       296 msecs
			297, 297, 298, 297, 297, 296, 297, 297, 296, 297, 
	benchmark: http://www.imdb.com/title/tt0468569/
		mean:       49 msecs +/- 0 msecs, +/- 0.000000 %
		avg:        48 msecs
			49, 49, 49, 49, 49, 48, 48, 49, 49, 49, 
	benchmark: http://www.flickr.com/photos/rocio-ponce/3209550712/
		mean:       53 msecs +/- 0 msecs, +/- 0.000000 %
		avg:        53 msecs
			53, 53, 52, 54, 53, 53, 54, 53, 52, 53, 
	benchmark: http://www.amazon.com/Kindle-Wireless-Reading-Display-Generation/dp/B0015TG12Q/
		mean:      292 msecs +/- 1 msecs, +/- 0.342466 %
		avg:       292 msecs
			295, 291, 292, 291, 294, 292, 292, 294, 294, 290, 

Good job Holger.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185784</commentid>
    <comment_count>3</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2010-01-29 02:37:34 -0800</bug_when>
    <thetext>Oh, even a small win on painting. You would see a bigger win on the tst_cycler benchmark as the WebCore::Font method is called more often there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186253</commentid>
    <comment_count>4</comment_count>
      <attachid>47605</attachid>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-01-31 15:52:31 -0800</bug_when>
    <thetext>Comment on attachment 47605
First patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186652</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-01 16:12:36 -0800</bug_when>
    <thetext>Attachment 47605 was posted by a committer and has review+, assigning to Holger Freyther for commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192784</commentid>
    <comment_count>6</comment_count>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2010-02-22 21:44:24 -0800</bug_when>
    <thetext>Ping; Holger can you mark this cq+, if you think it is ready ? Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194990</commentid>
    <comment_count>7</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2010-03-02 02:19:54 -0800</bug_when>
    <thetext>Landed in r55406. We will have to see how it behaves on all the fonts out there..</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47605</attachid>
            <date>2010-01-28 04:29:01 -0800</date>
            <delta_ts>2010-01-31 15:52:30 -0800</delta_ts>
            <desc>First patch</desc>
            <filename>0001-Qt-Special-case-Font-floatWidthForComplexText-for-si.patch</filename>
            <type>text/plain</type>
            <size>2452</size>
            <attacher name="Holger Freyther">zecke</attacher>
            
              <data encoding="base64">RnJvbSBkMTRlMDBlNjIyOWRjNGYzZTZmYzdmOTBiZThiYjk1MTNlNGQ5ZWExIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlciA8emVja2VAc2Vs
ZmlzaC5vcmc+CkRhdGU6IFRodSwgMjggSmFuIDIwMTAgMTM6MjU6MjEgKzAxMDAKU3ViamVjdDog
W1BBVENIXSBbUXRdIFNwZWNpYWwgY2FzZSBGb250OjpmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQg
Zm9yIHNpbmdsZSBzcGFjZQoKaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTMzODc2CgpGb3IgYSBzaW5nbGUgc3BhY2Ugd2UgY2FuIGdvIHRocm91Z2ggdGhlIFFGb250TWV0
cmljOjp3aWR0aCByb3V0aW5lCmluc3RlYWQgb2YgY29udmVydGluZyB0aGUgV2ViQ29yZTo6U3Ry
aW5nIHRvIGEgUVN0cmluZyBhbmQgdGhlbgpnb2luZyB0aHJvdWdoIHRoZSBRVGV4dExpbmUuCgoq
IHBsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRRdC5jcHA6CihXZWJDb3JlOjpGb250OjpmbG9hdFdp
ZHRoRm9yQ29tcGxleFRleHQpOgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgMTQgKysrKysrKysrKysrKysKIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
cXQvRm9udFF0LmNwcCB8ICAgIDUgKysrKy0KIDIgZmlsZXMgY2hhbmdlZCwgMTggaW5zZXJ0aW9u
cygrKSwgMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IGI4MmMwYjcuLmZkNjA4YzYgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTAtMDEtMjggIEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyICA8emVja2VAc2VsZmlzaC5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBT
cGVjaWFsIGNhc2UgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0IGZvciBzaW5nbGUgc3Bh
Y2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzODc2
CisKKyAgICAgICAgRm9yIGEgc2luZ2xlIHNwYWNlIHdlIGNhbiBnbyB0aHJvdWdoIHRoZSBRRm9u
dE1ldHJpYzo6d2lkdGggcm91dGluZQorICAgICAgICBpbnN0ZWFkIG9mIGNvbnZlcnRpbmcgdGhl
IFdlYkNvcmU6OlN0cmluZyB0byBhIFFTdHJpbmcgYW5kIHRoZW4KKyAgICAgICAgZ29pbmcgdGhy
b3VnaCB0aGUgUVRleHRMaW5lLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9u
dFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4
dCk6CisKIDIwMTAtMDEtMTggIEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyICA8emVja2VAc2Vs
ZmlzaC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRRdC5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0ZvbnRRdC5jcHAKaW5kZXggMDE5NmFiMi4uZmQ5YzVhYyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250UXQuY3BwCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFF0LmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAg
ICAgQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKQotICAgIENvcHlyaWdodCAoQykgMjAwOCBIb2xnZXIgSGFucyBQZXRlciBGcmV5
dGhlcgorICAgIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMCBIb2xnZXIgSGFucyBQZXRlciBGcmV5
dGhlcgogICAgIENvcHlyaWdodCAoQykgMjAwOSBEaXJrIFNjaHVsemUgPGtyaXRAd2Via2l0Lm9y
Zz4KIAogICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKQEAgLTE3NCw2ICsxNzQsOSBAQCBmbG9hdCBGb250OjpmbG9hdFdpZHRo
Rm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZv
bgogICAgIGlmICghcnVuLmxlbmd0aCgpKQogICAgICAgICByZXR1cm4gMDsKIAorICAgIGlmIChy
dW4ubGVuZ3RoKCkgPT0gMSAmJiB0cmVhdEFzU3BhY2UocnVuWzBdKSkKKyAgICAgICAgcmV0dXJu
IFFGb250TWV0cmljcyhmb250KCkpLndpZHRoKHJ1blswXSkgLSBtX3dvcmRTcGFjaW5nICsgcnVu
LnBhZGRpbmcoKTsKKwogICAgIFN0cmluZyBzYW5pdGl6ZWQgPSBGb250Ojpub3JtYWxpemVTcGFj
ZXMoU3RyaW5nKHJ1bi5jaGFyYWN0ZXJzKCksIHJ1bi5sZW5ndGgoKSkpOwogICAgIFFTdHJpbmcg
c3RyaW5nID0gZnJvbVJhd0RhdGFXaXRob3V0UmVmKHNhbml0aXplZCk7CiAKLS0gCjEuNi4zLjMK
Cg==
</data>
<flag name="review"
          id="30086"
          type_id="1"
          status="+"
          setter="ariya.hidayat"
    />
          </attachment>
      

    </bug>

</bugzilla>