high performance web sites 14 rules for faster-loading pages

Download High Performance Web Sites 14 rules for faster-loading pages

If you can't read please download the document

Upload: sally

Post on 06-Jan-2016

41 views

Category:

Documents


2 download

DESCRIPTION

High Performance Web Sites 14 rules for faster-loading pages. Steve Souders [email protected]. Tenni Theurer [email protected]. Introduction. Exceptional Performance. started in 2004 quantify and improve the performance of all Yahoo! products worldwide center of expertise - PowerPoint PPT Presentation

TRANSCRIPT

  • High Performance Web Sites

    14 rules for faster-loading pagesSteve [email protected] [email protected]

  • Introduction

  • Exceptional Performancestarted in 2004quantify and improve the performance of all Yahoo! products worldwidecenter of expertisebuild tools, analyze datagather, research, and evangelize best practices

  • Scopeperformance breaks into two categoriesresponse timeefficiencycurrent focus is response timeof web products

  • Rough Cuts: nowHardcopy: Summer 2007http://www.oreilly.com/catalog/9780596514211/

  • The Importance of Front-End Performance

  • Back-end vs. Front-end

    percentage of time spent on the front-end

  • The Performance Golden Rule80-90% of the end-user response time is spent on the front-end. Start there.

    Greater potential for improvementSimplerProven to work

  • SchedulePerformance Researchbreak14 RulesbreakCase StudiesLive Analysis

  • Performance Research

  • slow crawl boring snail stagnant unexceptional yawn unresponsive impatient delay moderate blah subdue drag apathetic prolong slack load sluggish sleepy late unexciting reduced lag complex heavy unmemorable obscure why wait perceived response timewhat is the end users experience?performance speed enjoyable urgent instant accelerate perception snap achievement better improve action pleasant pace quick promote swift cool maximum drive prompt advance fast hurry rush satisfying feel exceptional brisk rapid exciting

  • User PerceptionUsability and perception are important for performance.

    The users perception is more relevant than actual unload-to-onload response time.

    Definition of "user onload" is undefined or varies from one web page to the next.

  • http://yuiblog.com/blog/2006/11/28/performance-research-part-1/

  • 80/20 Performance RuleVilfredo Pareto: 80% of consequences come from 20% of causes

    Focus on the 20% that affects 80% of the end-user response time.

    Start at the front-end.

  • Empty vs. Full Cache

  • Empty vs. Full Cachewith an empty cache

    Chart5

    2.3857080.073697

    1.9012470.03514

    1.9003720.250341

    1.7553970.115827

    1.7364090.017868

    1.735610.023736

    1.7343070.022563

    1.5444550.075842

    1.5013610.22307

    1.4913270.235455

    1.3787060.027494

    1.4323860.071666

    1.3459750.146844

    1.3452710.14719

    1.1955820.062929

    1.1936250.034181

    1.1481810.030886

    1.1473480.03236

    1.0941010.048729

    1.0691020.071543

    1.0648260.098428

    0.9710670.162706

    0.8875690.232298

    0.886340.1925

    0.8033120.169048

    0.7952380.145024

    0.6135730.172498

    0.6061860.044826

    0.6023090.030719

    0.4876780.053908

    0.4441490.018247

    0.4068670.103763

    0.402910.026868

    0.0644530.288027

    00.018238

    Sheet1

    "wd:dItemDuration">PT0.018238SPT0.288027SPT0.026868SPT0.103763SPT0.018247SPT0.053908SPT0.030719SPT0.044826SPT0.172498SPT0.145024SPT0.169048SPT0.192500SPT0.232298SPT0.162706SPT0.098428SPT0.071543SPT0.048729SPT0.032360SPT0.030886SPT0.034181SPT0.062929SPT0.147190SPT0.146844SPT0.071666SPT0.027494SPT0.235455SPT0.223070SPT0.075842SPT0.022563SPT0.023736SPT0.017868SPT0.115827SPT0.250341SPT0.035140SPT0.073697S

  • Empty vs. Full Cache

  • Empty vs. Full CacheExpires header3user re-requests www.yahoo.comwith a full cache

    Chart8

    0.80.091007

    0.701980.071007

    00.4

    Sheet1

    "wd:dItemDuration">PT0.018238SPT0.288027SPT0.026868SPT0.103763SPT0.018247SPT0.053908SPT0.030719SPT0.044826SPT0.172498SPT0.145024SPT0.169048SPT0.192500SPT0.232298SPT0.162706SPT0.098428SPT0.071543SPT0.048729SPT0.032360SPT0.030886SPT0.034181SPT0.062929SPT0.147190SPT0.146844SPT0.071666SPT0.027494SPT0.235455SPT0.223070SPT0.075842SPT0.022563SPT0.023736SPT0.017868SPT0.115827SPT0.250341SPT0.035140SPT0.073697S

  • Empty vs. Full Cache empty cache2.4 seconds

    full cache0.9 seconds83% fewer bytes90% fewer HTTP requests

  • How much does this benefit our users?It depends on how many users have components in cache.

    What percentage of users view a page with an empty cache*?* Empty cache means the browser has to request the components instead of pulling them from the browser disk cache.

    What percentage of page views are done with an empty cache*?

  • http://yuiblog.com/blog/2007/01/04/performance-research-part-2/

  • Browser Cache ExperimentAdd a new image to your page

    with the following response headers:

    Expires: Thu, 15 Apr 2004 20:00:00 GMTLast-Modified: Wed, 28 Sep 2006 23:49:57 GMT

  • Browser Cache ExperimentRequests from the browser will have one of these response status codes:200 The browser does not have the image in its cache.304 The browser has the image in its cache, but needs to verify the last modified date.

  • Browser Cache Experiment

  • Surprising Results40-60% ~20%

    Chart2

    11

    0.9756970610.3511414856

    0.64892420720.2480818574

    0.5362557680.2172068146

    0.49705641450.205786832

    0.47695751880.2014351966

    0.49093842630.2013420285

    0.47437852410.1930321497

    0.46505295010.1954734765

    0.45392525710.1938962941

    0.44627662250.1903622437

    0.44449787410.1888348329

    0.4392663860.1877929461

    0.45289059970.1891742737

    0.4466963780.186161091

    0.44525710320.1868084979

    0.43449977570.1843509261

    17

    18

    19

    20

    unique users with empty cache

    page views with empty cache

    day of experiment

    percentage

    Empty Cache %

    DateDay%age 200 B cookies%age 200 page viewsC + filter old BE PVsE + filter new BG PVsF + extreme 200ersI PVs

    1/22/060100.0%100.0%100.0%100.0%100.0%100.0%100.0%100.0%

    1/23/06197.6%35.1%97.6%34.9%91.9%33.0%95.5%31.8%

    1/24/06264.9%24.8%64.3%24.7%61.8%24.1%63.8%22.8%

    1/25/06353.6%21.7%53.1%21.6%50.2%20.1%51.7%18.5%

    1/26/06449.7%20.6%49.1%20.4%44.3%18.0%45.6%16.3%

    1/27/06547.7%20.2%47.8%20.1%40.9%18.3%40.7%15.5%

    1/28/06649.1%20.1%49.0%20.0%42.0%18.1%41.8%15.5%

    1/29/06747.4%19.3%47.5%19.2%40.4%17.3%40.2%14.7%

    1/30/06846.5%19.6%46.6%19.5%38.6%17.5%38.4%14.6%

    1/31/06944.2%19.4%44.2%19.4%44.2%19.4%44.9%17.2%

    2/1/061044.6%19.0%44.6%19.0%44.6%19.0%45.5%17.0%

    2/2/0611

    2/3/0612

    2/4/0613

    2/5/0614

    2/6/0615

    2/7/0616

    2/8/0617

    2/9/0618

    2/10/0619

    2/11/0620

    2/12/0621

    2/13/0622

    2/14/0623

    2/15/0624

    2/16/0625

    2/17/0626

    2/18/0627

    2/19/0628

    2/20/0629

    2/21/0630

    Empty Cache %

    00

    00

    00

    00

    00

    00

    00

    00

    00

    00

    00

    00

    00

    00

    00

    00

    00

    00

    00

    00

    00

    00

    00

    00

    00

    00

    00

    00

    00

    00

    00

    B Cookies

    Page Views

    Day

    Percentage

    Empty Cache Percentages

    Duplicate 200

    00000000

    00000000

    00000000

    00000000

    00000000

    00000000

    00000000

    00000000

    00000000

    00000000

    00000000

    00000000

    00000000

    00000000

    00000000

    00000000

    00000000

    00000000

    00000000

    00000000

    00000000

    00000000

    00000000

    00000000

    00000000

    00000000

    00000000

    00000000

    00000000

    00000000

    00000000

    B Cookies

    Page Views

    Remove Old B

    Remove Old B PVs

    Remove New B

    Remove New B PVs

    Remove Extreme 200s

    Remove Extreme 200s PVs

    Day

    Percentage

    Empty Cache Percentages

    Sheet1

    17938076.20%

    21149811.04%

    342504.08%

    421552.07%

    513851.33%

    69480.91%

    76900.66%

    85350.51%

    93800.36%

    103190.31%

    112670.26%

    122390.23%

    131890.18%

    141620.16%

    151460.14%

    161200.12%

    171230.12%

    181100.11%

    19860.08%

    20970.09%

    21830.08%

    22500.05%

    23680.07%

    24580.06%

    25600.06%

    26560.05%

    27480.05%

    28450.04%

    29280.03%

    30400.04%

    31220.02%

    32280.03%

    33170.02%

    34170.02%

    35260.02%

    36230.02%

    37150.01%

    38230.02%

    39220.02%

    40180.02%

    41140.01%

    42250.02%

    4390.01%

    44140.01%

    45140.01%

    4690.01%

    4790.01%

    48110.01%

    49110.01%

    50110.01%

    5190.01%

    5290.01%

    5360.01%

    5470.01%

    5550.00%

    5640.00%

    5750.00%

    5850.00%

    5930.00%

    6050.00%

    6140.00%

    6250.00%

    6340.00%

    6470.01%

    6580.01%

    6640.00%

    6770.01%

    6840.00%

    6960.01%

    7080.01%

    7150.00%

    7230.00%

    7330.00%

    7430.00%

    7520.00%

    7650.00%

    7720.00%

    7810.00%

    8020.00%

    8140.00%

    8230.00%

    8330.00%

    8410.00%

    8530.00%

    8620.00%

    8830.00%

    8910.00%

    9010.00%

    9110.00%

    9210.00%

    9320.00%

    9420.00%

    9620.00%

    9710.00%

    9910.00%

    10130.00%

    10230.00%

    10310.00%

    10510.00%

    10610.00%

    10710.00%

    11210.00%

    11310.00%

    11830.00%

    11910.00%

    12010.00%

    12210.00%

    12310.00%

    12510.00%

    12610.00%

    13110.00%

    13310.00%

    13520.00%

    13810.00%

    14030.00%

    14130.00%

    14310.00%

    14910.00%

    15510.00%

    16610.00%

    16810.00%

    19110.00%

    20110.00%

    21110.00%

    21510.00%

    23510.00%

    23610.00%

    25510.00%

    25610.00%

    29410.00%

    44310.00%

    Sheet1

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    # of 200 Responses per B Cookie

    Percentage of B Cookies

    Duplicate 200 Responses

    Sheet3

    Sheet3

    11

    0.9756970610.3511414856

    0.64892420720.2480818574

    0.5362557680.2172068146

    0.49705641450.205786832

    0.47695751880.2014351966

    0.49093842630.2013420285

    0.47437852410.1930321497

    0.46505295010.1954734765

    0.45392525710.1938962941

    0.44627662250.1903622437

    0.44449787410.1888348329

    0.4392663860.1877929461

    0.45289059970.1891742737

    0.4466963780.186161091

    0.44525710320.1868084979

    0.43449977570.1843509261

    17

    18

    19

    20

    unique users with empty cache

    page views with empty cache

    day of experiment

    percentage

    1

    0.3511414856

    0.2480818574

    0.2172068146

    0.205786832

    0.2014351966

    0.2013420285

    0.1930321497

    0.1954734765

    0.1938962941

    0.1903622437

    0.1888348329

    0.1877929461

    0.1891742737

    0.186161091

    0.1868084979

    0.1843509261

    17

    18

    19

    20

    Baseline

    Day

    Percentage

    Front Page - Page Views with Empty Cache

    01234567891011121314151617181920

    1/22/061/23/061/24/061/25/061/26/061/27/061/28/061/29/061/30/061/31/062/1/062/2/062/3/062/4/062/5/062/6/062/7/062/8/062/9/062/10/062/11/06

    Baseline# B cookies with 20031,07425,96821,15119,41917,47013,08413,37718,44418,09817,72717,56316,07112,58912,62917,95917,433

    total # B cookies31,84840,01739,44239,06836,62826,65128,19939,66039,87039,72239,51236,58627,79728,27240,33440,122

    %age100.0%97.6%64.9%53.6%49.7%47.7%49.1%47.4%46.5%45.4%44.6%44.4%43.9%45.3%44.7%44.5%43.4%

    # PVs with 20040,74439,83534,19432,06229,36221,33421,60332,10331,24630,46930,15927,48520,91020,51731,08429,889

    total # PVs116,033160,572157,426155,802145,764105,959111,914164,232161,148160,058159,711146,358110,533110,211166,395162,131

    %age100.0%35.1%24.8%21.7%20.6%20.1%20.1%19.3%19.5%19.4%19.0%18.9%18.8%18.9%18.6%18.7%18.4%

    Filter Old B# B cookies with 20030,39525,35320,66218,94617,09012,78613,08818,05717,71317,36817,18315,75512,31912,35417,61317,051

    total # B cookies31,14039,10638,54038,13335,81326,07727,57138,78338,99638,87538,62135,82627,21627,65339,51139,246

    %age100.0%97.6%64.8%53.6%49.7%47.7%49.0%47.5%46.6%45.4%44.7%44.5%44.0%45.3%44.7%44.6%43.4%

    # PVs with 20039,77738,86333,33631,19228,68020,82221,14931,35030,53129,80529,49126,85420,43420,01730,33929,151

    total # PVs114,022157,771154,727153,013143,161104,180110,177161,360158,452157,410157,064143,980108,858108,399163,670159,435

    %age100.0%34.9%24.6%21.5%20.4%20.0%20.0%19.2%19.4%19.3%18.9%18.8%18.7%18.8%18.5%18.5%18.3%

    Filter Extreme# B cookies with 20030,33325,29220,60418,88317,04412,75213,04617,97717,65317,30317,12215,70112,28012,32417,54616,984

    total # B cookies31,07738,96238,41537,99135,69126,00127,48438,60838,85438,72638,48635,70927,14027,57839,36339,089

    %age100.0%97.6%64.9%53.6%49.7%47.8%49.0%47.5%46.6%45.4%44.7%44.5%44.0%45.2%44.7%44.6%43.4%

    # PVs with 20039,58638,12932,70930,45628,04420,38120,74230,42429,63928,97828,74726,21719,88619,53229,68228,428

    total # PVs107,953147,896145,375142,382133,73898,386104,437149,560148,669146,825146,713134,631102,216102,631153,147147,846

    %age100.0%36.7%25.8%22.5%21.4%21.0%20.7%19.9%20.3%19.9%19.7%19.6%19.5%19.5%19.0%19.4%19.2%

    Filter New B# B cookies with 20026,89319,84414,86812,85411,2638,1478,11510,82210,43910,1039,6788,8616,7376,7279,5018,967

    total # B cookies27,56932,63131,08429,88427,48119,33820,05928,04527,78727,44026,73824,59817,98018,29326,17125,620

    %age100.0%97.5%60.8%47.8%43.0%41.0%42.1%40.5%38.6%37.6%36.8%36.2%36.0%37.5%36.8%36.3%35.0%

    # PVs with 20035,31430,95524,79221,87619,63713,67213,56419,83318,92718,25717,73316,02011,66311,20717,42616,280

    total # PVs97,271126,119118,505112,486102,39172,56375,828108,251105,590103,097101,02891,43166,17366,340100,16295,255

    %age100.0%36.3%24.5%20.9%19.4%19.2%18.8%17.9%18.3%17.9%17.7%17.6%17.5%17.6%16.9%17.4%17.1%

    0000

    0000

    0000

    0000

    0000

    0000

    0000

    0000

    0000

    0000

    0000

    0000

    0000

    0000

    0000

    0000

    0000

    0000

    0000

    0000

    0000

    Baseline

    Remove Old B Cookies

    Remove Extreme B Cookies

    Remove New B Cookies

    Day

    Percentage

    Front Page - B Cookies with Empty Cache

    0000

    0000

    0000

    0000

    0000

    0000

    0000

    0000

    0000

    0000

    0000

    0000

    0000

    0000

    0000

    0000

    0000

    0000

    0000

    0000

    0000

    Baseline

    Remove Old B Cookies

    Remove Extreme B Cookies

    Remove New B Cookies

    Day

    Percentage

    Front Page - Page Views with Empty Cache

  • Experiment TakeawaysKeep in mind the empty cache user experience. It might be more prevalent than you think!

    Use different techniques to optimize full versus empty cache experience.

  • http://yuiblog.com/blog/2007/03/01/performance-research-part-3

  • HTTP Quick ReviewHTTP response header sent by the web server:HTTP/1.1 200 OKContent-Type: text/html; charset=utf-8Set-Cookie: C=abcdefghijklmnopqrstuvwxyz; domain=.yahoo.com

  • HTTP Quick ReviewHTTP request header sent by the browser:GET / HTTP/1.1Host: finance.yahoo.comUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Cookie: C=abcdefghijklmnopqrstuvwxyz;

  • HTTP Quick ReviewHTTP request header sent by the browser:GET / HTTP/1.1Host: autos.yahoo.comUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Cookie: C=abcdefghijklmnopqrstuvwxyz;

  • HTTP Quick ReviewHTTP request header sent by the browser:GET / HTTP/1.1Host: mail.yahoo.comUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Cookie: C=abcdefghijklmnopqrstuvwxyz;

  • HTTP Quick ReviewHTTP request header sent by the browser:GET / HTTP/1.1Host: tech.yahoo.comUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Cookie: C=abcdefghijklmnopqrstuvwxyz;

  • Impact of Cookies on Response Time

  • .yahoo.com cookie sizes

    Chart8

    0.28860.5180.17790.0155

    1-500 bytes

    501-1000 bytes

    1001-1500 bytes

    over 1501 bytes

    percentage of page views

    bcookie

    Cookie Histograms:

    Num CookiesAll CookiesAll IEAll FFno RTBAno RTBA IEno RTBA FFNum CookiesAll CookiesAll IEAll FFno RTBAno RTBA IEno RTBA FFNum CookiesAll CookiesAll IEAll FFno RTBAno RTBA IEno RTBA FF

    000051300.00%0.00%0.00%4.95%1.54%100.00%00.00%0.00%0.00%4.95%1.54%100.00%

    151300015.05%1.59%100.00%0.00%0.00%0.00%15.05%1.59%100.00%4.95%1.54%100.00%

    200000020.00%0.00%0.00%0.00%0.00%0.00%25.05%1.59%100.00%4.95%1.54%100.00%

    300000030.00%0.00%0.00%0.00%0.00%0.00%35.05%1.59%100.00%4.95%1.54%100.00%

    400000040.00%0.00%0.00%0.00%0.00%0.00%45.05%1.59%100.00%4.95%1.54%100.00%

    500011050.00%0.00%0.00%0.99%1.54%0.00%55.05%1.59%100.00%5.94%3.08%100.00%

    611000061.01%1.59%0.00%0.00%0.00%0.00%66.06%3.17%100.00%5.94%3.08%100.00%

    700000070.00%0.00%0.00%0.00%0.00%0.00%76.06%3.17%100.00%5.94%3.08%100.00%

    800000080.00%0.00%0.00%0.00%0.00%0.00%86.06%3.17%100.00%5.94%3.08%100.00%

    900000090.00%0.00%0.00%0.00%0.00%0.00%96.06%3.17%100.00%5.94%3.08%100.00%

    10000000100.00%0.00%0.00%0.00%0.00%0.00%106.06%3.17%100.00%5.94%3.08%100.00%

    11000000110.00%0.00%0.00%0.00%0.00%0.00%116.06%3.17%100.00%5.94%3.08%100.00%

    12000110120.00%0.00%0.00%0.99%1.54%0.00%126.06%3.17%100.00%6.93%4.62%100.00%

    13110330131.01%1.59%0.00%2.97%4.62%0.00%137.07%4.76%100.00%9.90%9.23%100.00%

    14330110143.03%4.76%0.00%0.99%1.54%0.00%1410.10%9.52%100.00%10.89%10.77%100.00%

    15110220151.01%1.59%0.00%1.98%3.08%0.00%1511.11%11.11%100.00%12.87%13.85%100.00%

    16220720162.02%3.17%0.00%6.93%3.08%0.00%1613.13%14.29%100.00%19.80%16.92%100.00%

    1772025120177.07%3.17%0.00%24.75%18.46%0.00%1720.20%17.46%100.00%44.55%35.38%100.00%

    1825120564201825.25%19.05%0.00%55.45%64.62%0.00%1845.45%36.51%100.00%100.00%100.00%100.00%

    19544000001954.55%63.49%0.00%0.00%0.00%0.00%19100.00%100.00%100.00%100.00%100.00%100.00%

    99633101653

    Cookie Size Histograms:

    Size LTEAllIEFFSize LTEAllIEFFSize LTEAllIEFF

    5006235005.94%3.08%100.00%5005.94%3.08%100.00%

    100017150100016.83%23.08%0.00%100022.77%26.15%100.00%

    150061360150060.40%55.38%0.00%150083.17%81.54%100.00%

    200016120200015.84%18.46%0.00%200099.01%100.00%100.00%

    250010025000.99%0.00%0.00%2500100.00%100.00%100.00%

    300000030000.00%0.00%0.00%3000100.00%100.00%100.00%

    350000035000.00%0.00%0.00%3500100.00%100.00%100.00%

    400000040000.00%0.00%0.00%4000100.00%100.00%100.00%

    450000045000.00%0.00%0.00%4500100.00%100.00%100.00%

    500000050000.00%0.00%0.00%5000100.00%100.00%100.00%

    550000055000.00%0.00%0.00%5500100.00%100.00%100.00%

    600000060000.00%0.00%0.00%6000100.00%100.00%100.00%

    650000065000.00%0.00%0.00%6500100.00%100.00%100.00%

    700000070000.00%0.00%0.00%7000100.00%100.00%100.00%

    750000075000.00%0.00%0.00%7500100.00%100.00%100.00%

    800000080000.00%0.00%0.00%8000100.00%100.00%100.00%

    850000085000.00%0.00%0.00%8500100.00%100.00%100.00%

    101653100.00%100.00%100.00%

    All .yahoo.com cookies:

    101 BA (sample: 'BA=ba=743&ip=71.94.10.227&t=1169430685')

    95 Y (sample: 'Y=v=1&n=6f7bk96vejto2&l=9ij4l4dij864hi/o&p=m222p6eb13000100&jb=26|22|&r=eq&lg=us&intl=us&np=1')

    95 F (sample: 'F=a=eEJdC.IsvXQyP.tLgPkB9WrbHgTl.myc59dvWujCFbUtFFryxx3JmZ0tz57I&b=ErWJ')

    93 PH (sample: 'PH=fn=oQdSi4oEdBKDgw--')

    92 C (sample: 'C=mg=1')

    91 Q (sample: 'Q=q1=AACAAAAAAAAAAA--&q2=RaNEug--')

    91 T (sample: 'T=z=z5RtFBz/mtFBFNDpbWwgYKHNDM0BjY0TjJOMTM3TjY-&a=YAE&sk=DAAkqtG71L4NIY&d=c2wBTXpRekFURXpPVFU1TmpRd09URS0BYQFZQUUBb2sBWlcwLQF0aXABSDVsQ2pEAXp6AXo1UnRGQmdXQQ--')

    87 LYC (sample: 'LYC=l_v=0&l_lv=10&l_s=wxr2v14sv4zuuzr2y0ttqtqqs1x32wyr&l_um=0_0_1_0_0')

    84 U (sample: 'U=mt=oJEOxJ2MhYoA9RYUqrdXOKQ535ndGY6O5GItOg--&ux=gJEeFB&un=3vrbop721di81')

    81 I (sample: 'I=ir=h8&in=486ecde9&i1=AAACAAAEBhABqIDDACqZti')

    70 PL (sample: 'PL=V=1.1&d=TzW9McffGIN5LeNvHFKh2.wmYJwxCm2VPu_t9lBj21WaASiTYWMoImBe73dzoZVVr7oiyKw0KGKAK9BF8.7v.oz7dUVqc1BzC0YyoIqPXaxKj2whaUJ8y2BsFxWCRekP4iyEAHzlpgevCvCKxvpDr_9xkOXrhjpkdkVxqLuaUA5ePpQmrityKeZsRydf5d_lWS0qFSzUz0OJFtPRhi.Zqy.cFJ3qct3YUE

    69 SO (sample: 'SO=v=0.4&t=1168368499')

    66 CP (sample: 'CP=v=60306&br=i&sp=')

    60 YLS (sample: 'YLS=v=1&p=0&n=9')

    53 HP (sample: 'HP=1')

    51 sS (sample: 'sS=shf=2&ftrs=ourwebact%7Cprs&rdsng=1&l=9ij4l4dij864hi/o')

    39 PA (sample: 'PA=p0=5kr3St1K6kvSSw--&e=cVotFB&p3=ANw5IHkACpU86Dgged05AAAACpU85zkged05AACACpU8zTkged05AACACpU80Dgged05AAA-')

    38 LYS (sample: 'LYS=l_fh=0&l_vo=myla')

    35 D (sample: 'D=_ylc=X3IDMwRmcANyLzIx&_ylg=X3oDMTRocWtxMTgzBGZwdWxtAzEwMDAEeXB1bHNlA2NvbnNlcnIEcGEDLTEEcGNpZANHYW1lc19Nb3N0X1BvcHVsYXJfV2FyY3JhZnRfZWxmd29tYW5fM0UtNTI5OTM2BHBwaWQDMTE2OTI2NTY3MgR0bXBsA2luZGV4LWwEX1MDMjcxNjE0OQRwaWQDMTE2OTUwMjE0MAR0ZXN0A

    33 YGCV (sample: 'YGCV=d=')

    30 YMPS (sample: 'YMPS=auth=e%2FYXFbeRDhRzHJBNvqxa3Q%3D%3D&t=1169503229&yid=6ZOcCjBst%2FIm3B%2F1I5C9WA%3D%3D&bf=0')

    28 l%5FPD3 (sample: 'l%5FPD3=840')

    27 YMUSIC (sample: 'YMUSIC=t=1')

    25 MVUserInfo3 (sample: 'MVUserInfo3=123_9')

    24 YMRAD (sample: 'YMRAD=187841048*0_0_1204_1')

    23 yme (sample: 'yme=1')

    15 playerFullVersion (sample: 'playerFullVersion=10')

    14 PVL (sample: 'PVL=38856941_37868940_35881672_37188836_36110701_36465596_34613518_31363511_36886779_37987962_37161962_35466915_2154453_39155872_36511587_37159165_37943612_37146469_37159933_36394684_38510337_39155866_36962718_35112301|26_26_26_26_26_26

    13 op122geohomeliid (sample: 'op122geohomeliid=a00602d0mc231ci0hk2fsbd34')

    13 op122geohomegum (sample: 'op122geohomegum=a00602d0mc231ci0hk2fsbd34')

    13 LCGuLi (sample: 'LCGuLi=1049601=1')

    9 UC (sample: 'UC=E90efOXSQJVcrIc7kJ28hFmklH8cDxAknk9DVBgWTV5VQl.sCjp1jE46F8ScvZnwTLF.8RMJ0hjgPOH_jtC4lV9fmf12qkAw4HvEoYIGk7xbEjouSRLdFRdbY.7fd4nreXhaqskdFUkhdJDW10v7HpFmI8hkJct3ZfUCSzVYBDU1_eqPzSmMZ8sVamn3w9FFkondBc6H0kb2iJzy7QD4emIyq6Np90foalixVmL7TNV

    9 sB (sample: 'sB=vm=p&subscrs=')

    8 adx (sample: 'adx=c9809@1169484121@1')

    6 LCSoftStick (sample: 'LCSoftStick=ym=20070')

    5 op122WHhomeliid (sample: 'op122WHhomeliid=a002022034231mh07e34g56e5')

    5 vCodec (sample: 'vCodec=9')

    5 LCTrSk (sample: 'LCTrSk=1169499580_0_0_171226794')

    5 op122WHhomegum (sample: 'op122WHhomegum=a002022034231mh07e34g56e5')

    3 ykH (sample: 'ykH=w=&f=&c=1&pc=1&p=&csm=NNGjVeqjhLG0EdKJOkRagQ--&ts=1145483966')

    3 ykPCD (sample: 'ykPCD=d=5Wj8mVM-&csm=NNGjVeqjhLG0EdKJOkRagQ--')

    2 LSundefined_LYS (sample: 'LSundefined_LYS=l_fh=1&l_vo=myla')

    2 LSundefined_LYC (sample: 'LSundefined_LYC=l_v=0&l_lv=10&l_s=xwyxt053s35ru3y31s52xy3wsy0yrt1s&l_lc=0_1_0_0_-1&l_um=0_0_1_0_0&l_mv=56_50')

    2 op122homepagegum (sample: 'op122homepagegum=a0070230kf2316j0612dn1870')

    2 op122homepageliid (sample: 'op122homepageliid=a0070230kf2316j0612dn1870')

    2 RT (sample: 'RT=s=1169503282553&u=&r=http%3A//www.yahoo.com/')

    2 SS (sample: 'SS=u1=todsteno&[email protected]&v=1.0&sig=CTnepscty8NoYdGVIw4jyg--')

    2 MVFSWarning (sample: 'MVFSWarning=1')

    2 YM.BM (sample: 'YM.BM=domain=zender-engr.net&sid=2291779466&silo=ms333&farm=b3&account=sgilbreath&fwdaddr=&fwdtemp=&quota=2147483648&BD=b')

    2 FPS (sample: 'FPS=dl')

    2 INT (sample: 'INT=globeph=1:')

    2 R (sample: 'R=o=1/i=search/iy/c3231_f1970/jackson+guitar/shopping_narrower_main/sig=12h4q2fe7/t=1169435451')

    2 ymttrlsvst (sample: 'ymttrlsvst=000000010000000000000')

    1 YCorp (sample: 'YCorp=id%3D111312%26userid%3Dlehmbecj%26sign%3D69b72a54a0ae09cf7f54e4f1b15f0006%26time%3D1169482827%26expires%3D480%26ip%3D10.72.55.109%26roles%3D%7C1.IE%7C121.U%7C13.V%7C20.U%7C212.E%7C50.U%7C6878.U%7C6951.I%7C6982.I%7C7033.U%7C7181.I

    1 ASLTRG1 (sample: 'ASLTRG1=28#42#.net#3133#20993#.sd.sd.cox.net#72.197.249.102#en-us%2Cen%3Bq%3D0.5#ISO-8859-1%2Cutf-8%3Bq%3D0.7%2C*%3Bq%3D0.7#32706454#20332#14659#825#5#0')

    1 FRQSTR (sample: 'FRQSTR=19487461|19487461|19487461|19487461|19487461')

    1 FRhp_BouyguesCUST (sample: 'FRhp_BouyguesCUST=t=1')

    1 K (sample: 'K=kl=ggs09e9e/a&kn=cXEyYWpvam8-&km=cXEyYUBzaW5hLmNvbS50dw--&kp=aa1vvvjcN&ko=ggs09e9e/a&kk=ggs09e9e/o&kc=0')

    1 KIDYMD (sample: 'KIDYMD=#342018:GATA#')

    1 KR_DIC (sample: 'KR_DIC=qh=cmluZyB0aGUgcmVnaXN0ZXJ8fA--')

    1 s_cc (sample: 's_cc=true')

    1 s_sq (sample: 's_sq=undefinedtoJSONString%2CtoJSONString%3Dfunction%2520%2528%2529%2520%257B%250A%2520%2520%2520%2520return%2520s.object%2528this%2529%253B%250A%257D%26function%20%28%29%20%7B%0A%20%20%20%20return%20s.object%28this%29%3B%0A%7D%3DtoJSON

    1 stageLYC (sample: 'stageLYC=l_v=0&l_lv=9&l_s=yt3vx3s0qyrzux1r0tv54uqw1qtrv1su&l_um=0_0_1_0_0')

    1 stageLYS (sample: 'stageLYS=l_fh=0&l_vo=myla')

    1 KR_S1 (sample: 'KR_S1=qh=uei9vbHifHy44bfQfHzDtbjtyMZ8fLnpvcLB1nx8x8.8rsH4fHxzaWxrIHJvYWQgsNTA03x8&qc=2')

    1 wgb (sample: 'wgb=b=5C3a42bfd101597645b5288a6882ed542bfd16a2f1418bd546eff7cc4978b7ac4&l=&s=Bpf9buBCCYoezbPVRdXaiqNzMbg-')

    1 idm (sample: 'idm=b7CfG_fQ2whCkBWIzt52zOlagiGZh9saHtwfKL4OMe5Pk0tFo2zUsHeXyl2gB_Vr9JCBp65Htg3Pt6VrXAejhNCYbHZyvFeLzzS_DQ3O8y3gh3fCRpDCFgPkLyT0')

    1 SESTEST (sample: 'SESTEST=1')

    1 WIDYMD (sample: 'WIDYMD=#40669:GAT#')

    1 YBY (sample: 'YBY=id%3D111312%26userid%3Dlehmbecj%26sign%3DLE8Q9fZad9YJALlii6IFYASCWP_Zukl4mkHu4.7dTGiTAs3cybltpZ2ZSjaN1viKKzMs1wWCjR1CbAZf27JTJta.RGQE0pI_F0xpCzpKPiERAF_ImptD1HK3jqQNXyr0a40q3Dlmag9EFwjNswEAoQQ5HEDyE9xAdYWKjJ7rk6w-%26time%3D1169482827

    bcookie

    000000

    000000

    000000

    000000

    000000

    000000

    000000

    000000

    000000

    000000

    000000

    000000

    000000

    000000

    000000

    000000

    000000

    000000

    000000

    000000

    All Cookies

    All IE

    All FF

    no RTBA

    no RTBA IE

    no RTBA FF

    Number of Cookies

    Cumulative Distribution of Number of Cookies in Page Views w/out B-Cookie

    Sheet1

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    All

    IE

    FF

    Size (bytes)

    Size of Cookies in Page Views w/out B-Cookie

    cookie-expt

    dffdfsff

    A.yahoo.comadvertiser.yahoo.com statsDocument Link

    [email protected] ad debuggingDocument Link

    [email protected] just enough information

    to rebuild a user's session

    on failover

    AFFINITYpersonals.yahoo.comPersonals affinity searchDocument Link

    [email protected] Options

    ("AO") cookie and

    sub-cookie "o"

    (opt-out)

    [email protected].*.yahoo.comIncremental value to store the

    number of times the user has

    viewed the various AUNZ

    mediapanes

    [email protected] avatar cookie

    B.yahoo.comunique browseridDocument Link

    [email protected] cookie - containsDocument Link

    user's bandwidth capacity in

    kbps

    [email protected] JS / NagBar Info

    C.yahoo.comclient software capabilitiesDocument Link

    chanAreatv.yahoo.comtv listings areaDocument Link

    CHT.yahoo.comchat.yahoo.com useridDocument Link

    CNMSGRcn.messenger.yahoo.comCN messenger cookieDocument Link

    CN_AUTOS_DIAcn.autos.yahoo.comY! CN autos cookieDocument Link

    CN_ENT_DIAcn.ent.yahoo.comY! CN ent cookieDocument Link

    [email protected] .yahoo.com.cnCN_FID cookie for external flow

    .3721.comstatistic

    [email protected]

    [email protected]

    [email protected]!CN web messenger for mail

    CN_NEWS_DIAcn.news.yahoo.comY! CN news cookieDocument Link

    CN_REcn.realestate.yahoo.comY! CN realestate cookieDocument Link

    CN_RE_DIAcn.realestate.yahoo.comY! CN realestate cookieDocument Link

    [email protected] cn sds team

    CN_SPORTS_DIAcn.sports.yahoo.comY! CN sports cookieDocument Link

    CN_TBCTcn.sports.yahoo.comY! CN TextBroadcast cookieDocument Link

    [email protected] by merchants during theDocument Link

    checkout v3 beta period for

    redirect purpose

    CP.yahoo.comCompanion toolbar detectionDocument Link

    CUcn.yahoo.comCN popunder adDocument Link

    cz_INTcn.yahoo.comCN crazyadDocument Link

    [email protected] ULT Data CookieDocument Link

    E.groups.yahoo.comYahoo! Groups session cookieDocument Link

    (timezone, preferences, etc)

    ezvezventure.yahoo.comEZVentureDocument Link

    ezwezwheels.yahoo.comEZWheelsDocument Link

    F.yahoo.comfriend/fingerprintDocument Link

    FIFAfifaworldcup.yahoo.comdefault language forDocument Link

    fifaworldcup

    [email protected] Sports -

    timezone Fantasy Sports -

    timezone information

    Gclubs.yahoo.comclub-specific information (v1Document Link

    and v2)

    gbversiongeocities.yahoo.comGeoBuilder versionDocument Link

    GeoIdgeocities.yahoo.com?Document Link

    [email protected]"Gladiator" cookie to

    track homepage or seach page tab

    buttons - user selection

    preference

    [email protected] cookie is a session cookie

    holding state settings for the

    YHS vertical in GSP

    [email protected]*.hothire.hotjobs.comThis is the cookie to be used byDocument Link

    the HotJobs HotHire and is used

    for identifying users.

    [email protected] cookie is used for Hotjobs

    customer when they login to

    Hotjobs(e.g for posting jobs).

    [email protected] for anonymous user

    session in Hotjobs property.

    This will contain user selected

    items in shopping cart.

    [email protected] is used for storing yahooDocument Link

    internal users who access

    Hotjobs system through our

    Hotjobs application. Yahoo

    internal users are capable of

    managing users for customers and

    also post jobs for customers.

    HMSSpersonals.yahoo.comPersonals homepage my savedDocument Link

    search cookie

    [email protected] indicates what Yahoo! page

    is the users home page

    HWpersonals.yahoo.comPersonals homepage wildcardDocument Link

    cookie

    I.yahoo.comdata-mining user interestsDocument Link

    [email protected] token for

    o-inc.combusiness user in YSM Panama

    INTcn.yahoo.comCN floating and couplet adDocument Link

    JC2.yahoo.comOBSOLETE - jfriedl page checkerDocument Link

    JFriedlPageChecker.yahoo.comjeffrey's page checkerDocument Link

    jrunsessionidgeocities.yahoo.compagebuilder infoDocument Link

    K.yahoo.coma child (

  • Analysis of Cookie Sizes across the Web

    Total Cookie SizeAmazon60 bytesGoogle72 bytesYahoo122 bytesCNN184 bytesYouTube218 bytesMSN268 byteseBay331 bytesMySpace500 bytes

  • Experiment Takeawayseliminate unnecessary cookieskeep cookie sizes lowset cookies at appropriate domain levelset Expires date appropriatelyearlier date or none removes cookie sooner

  • http://yuiblog.com/blog/2007/04/11/performance-research-part-4/

  • Parallel DownloadsTwo componentsin parallelper hostnameHTTP/1.1

  • Parallel DownloadsTwo in parallelFour in parallelEight in parallel

    Chart17

    0.50.3

    0.50.3

    0.20.3

    0.20.3

    0.20.3

    0.20.3

    0.20.3

    0.20.3

    0.20.3

    0.20.3

    00.2

    Sheet1

    "wd:dItemDuration">PT0.018238SPT0.288027SPT0.026868SPT0.103763SPT0.018247SPT0.053908SPT0.030719SPT0.044826SPT0.172498SPT0.145024SPT0.169048SPT0.192500SPT0.232298SPT0.162706SPT0.098428SPT0.071543SPT0.048729SPT0.032360SPT0.030886SPT0.034181SPT0.062929SPT0.147190SPT0.146844SPT0.071666SPT0.027494SPT0.235455SPT0.223070SPT0.075842SPT0.022563SPT0.023736SPT0.017868SPT0.115827SPT0.250341SPT0.035140SPT0.073697SPT0.018238SPT0.288027SPT0.026868SPT0.103763SPT0.018247SPT0.053908SPT0.030719SPT0.044826SPT0.172498SPT0.145024SPT0.169048SPT0.192500SPT0.232298SPT0.162706SPT0.098428SPT0.071543SPT0.048729SPT0.032360SPT0.030886SPT0.034181SPT0.062929SPT0.147190SPT0.146844SPT0.071666SPT0.027494SPT0.235455SPT0.223070SPT0.075842SPT0.022563SPT0.023736SPT0.017868SPT0.115827SPT0.250341SPT0.035140SPT0.073697SPT0.018238SPT0.288027SPT0.026868SPT0.103763SPT0.018247SPT0.053908SPT0.030719SPT0.044826SPT0.172498SPT0.145024SPT0.169048SPT0.192500SPT0.232298SPT0.162706SPT0.098428SPT0.071543SPT0.048729SPT0.032360SPT0.030886SPT0.034181SPT0.062929SPT0.147190SPT0.146844SPT0.071666SPT0.027494SPT0.235455SPT0.223070SPT0.075842SPT0.022563SPT0.023736SPT0.017868SPT0.115827SPT0.250341SPT0.035140SPT0.073697S

  • Maximizing Parallel Downloadsresponse time (seconds)aliases

  • Maximizing Parallel Downloadsresponse time (seconds)aliases

    Chart18

    0.5940.781

    0.3440.578

    0.3281.016

    0.3281.141

    0.3131.313

    36 x 36 px (0.9 Kb)

    116 x 61 px (3.4 Kb)

    SRP

    PRELOAD SRP COMPONENTS

    Sample Source URL:

    preload OFFpreload ONpreload OFFpreload ONpreload OFFpreload ON

    Summary(average of medians)dialupbroadbandlan

    fspl=0fspl=1fspl=0fspl=1fspl=0fspl=1

    RT# pointsRT# pointsdiff%changeRT# pointsRT# pointsdiff%changeRT# pointsRT# pointsdiff%change

    00000.000.00%0.39087560.96887500.58147.90%00000.000.00%

    # hostsdialupbroadbandlan

    fspl=0fspl=1s=ss=mfspl=0fspl=1

    RT# pointsRT# pointsdiff%changeRT# pointsRT# pointsdiff%changeRT# pointsRT# pointsdiff%change

    10.6251540.844154

    20.3751530.578149

    40.3281521.031151

    50.3131481.094148

    100.3131491.297148

    0.6251540.844154

    0.3751530.578149

    0.3281521.031151

    0.3131481.094148

    0.3131491.297148

    SRP

    00

    00

    00

    00

    00

    &A

    Page &P

    SYC

    sidDateDialup MedianDialup 95th PctlDialup Data PointsBroadband MedianBroadband 95th PctlBroadband Data PointsLan MedianLan 95th PctlLan Data Points

    958104692/20/0776302662514515786484206969279779

    958104692/21/0742182154610115164296222953317260

    958104692/22/0754062575012814015094223781223455

    958104692/23/0771882077010711875141216987265781

    958104692/24/075516222229312094000212761242666

    958104692/25/0763752448412512973745180906234456

    958104692/26/0773002390614812814579265969232369

    958104692/27/0743971700089121947461371142300063

    958104692/28/07551816234471875646978907346032

    958104693/1/073031152345716726700631232447623

    958104693/2/07759319750491216487539791275023

    958104693/3/0754851785913214224765217610245368

    958104693/4/0773352296010513315047202844248461

    958104693/5/0750472164112612344640224787307861

    958104693/6/07442220349163142050772471234339092

    958104693/7/07482818526155134452082188913093102

    958104693/8/07570818837134129750072271032243862

    958104693/9/0765312214013512114125273861309470

    958104693/10/0758752372411414425203222711207883

    958104693/11/0776722345411711514718223750209471

    958104693/12/07715722484160146948522661094262554

    958104693/13/0762352046817813755308228931285979

    958104693/14/0771722675012512344547209984365669

    958104693/15/0763132525013515474297247591276594

    958104693/16/0747032504717616225219216930256377

    958104693/17/0786102759411911885157199843276675

    958104693/18/0768282712514713433906205984271986

    958104693/19/07598424204157137549382391046345394

    958104693/20/0750632066012713624500219984253178

    958104693/21/07700021040215158447972031062408671

    958104693/22/07632822437151137543402361072359471

    SYC

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    Dialup Median

    Broadband Median

    Lan Median

    Sheet1

    Sheet1

    0.5940.7810.6875

    0.3440.5780.461

    0.3281.0160.672

    0.3281.1410.7345

    0.3131.3130.813

    36 x 36 px (0.9 Kb)

    116 x 61 px (3.4 Kb)

    average of median

    Sheet3

    number hostsnnumber imagesimage typeMedian Response Time# of Data PointsNumber of Hosts36 x 36 px (0.9 Kb)116 x 61 px (3.4 Kb)LargeaverageSmallMediumLargeAverageDialup

    12020s=l3.1424610.5940.7813.1400.6881.0781.4686.2182.92133333334.719

    21020s=l2.95324620.3440.5782.9530.4610.611.0475.7652.4744.610

    4520s=l2.93724740.3281.0162.9370.6720.5471.2185.7342.49966666679.391

    5420s=l2.93724650.3281.1412.9370.7350.5471.255.7342.51033333339.312

    10220s=l3.5245100.3131.3133.5000.8130.5471.4228.625

    12020s=m0.781247Number of Hosts36 x 36 px (0.9 Kb)

    21020s=m0.57824714.719

    4520s=m1.01624724.610

    5420s=m1.14124749.391

    10220s=m1.31324559.312

    12020s=s0.594246108.625

    21020s=s0.344247

    4520s=s0.328247

    5420s=s0.328247

    10220s=s0.313245

    14040s=l6.218233

    22040s=l5.765236

    41040s=l5.734241

    5840s=l5.734244

    14040s=m1.468246

    22040s=m1.047246

    41040s=m1.218247

    5840s=m1.25245

    10440s=m1.422245

    14040s=s1.078247

    22040s=s0.61247

    41040s=s0.547246

    5840s=s0.547247

    10440s=s0.547245

    Sheet3

    36 x 36 px (0.9 Kb)

    116 x 61 px (3.4 Kb)

  • Maximizing Parallel Downloadsresponse time (seconds)aliases

    Chart16

    0.5940.7810.6875

    0.3440.5780.461

    0.3281.0160.672

    0.3281.1410.7345

    0.3131.3130.813

    36 x 36 px (0.9 Kb)

    116 x 61 px (3.4 Kb)

    average

    SRP

    PRELOAD SRP COMPONENTS

    Sample Source URL:

    preload OFFpreload ONpreload OFFpreload ONpreload OFFpreload ON

    Summary(average of medians)dialupbroadbandlan

    fspl=0fspl=1fspl=0fspl=1fspl=0fspl=1

    RT# pointsRT# pointsdiff%changeRT# pointsRT# pointsdiff%changeRT# pointsRT# pointsdiff%change

    00000.000.00%0.39087560.96887500.58147.90%00000.000.00%

    # hostsdialupbroadbandlan

    fspl=0fspl=1s=ss=mfspl=0fspl=1

    RT# pointsRT# pointsdiff%changeRT# pointsRT# pointsdiff%changeRT# pointsRT# pointsdiff%change

    10.6251540.844154

    20.3751530.578149

    40.3281521.031151

    50.3131481.094148

    100.3131491.297148

    0.6251540.844154

    0.3751530.578149

    0.3281521.031151

    0.3131481.094148

    0.3131491.297148

    SRP

    00

    00

    00

    00

    00

    &A

    Page &P

    SYC

    sidDateDialup MedianDialup 95th PctlDialup Data PointsBroadband MedianBroadband 95th PctlBroadband Data PointsLan MedianLan 95th PctlLan Data Points

    958104692/20/0776302662514515786484206969279779

    958104692/21/0742182154610115164296222953317260

    958104692/22/0754062575012814015094223781223455

    958104692/23/0771882077010711875141216987265781

    958104692/24/075516222229312094000212761242666

    958104692/25/0763752448412512973745180906234456

    958104692/26/0773002390614812814579265969232369

    958104692/27/0743971700089121947461371142300063

    958104692/28/07551816234471875646978907346032

    958104693/1/073031152345716726700631232447623

    958104693/2/07759319750491216487539791275023

    958104693/3/0754851785913214224765217610245368

    958104693/4/0773352296010513315047202844248461

    958104693/5/0750472164112612344640224787307861

    958104693/6/07442220349163142050772471234339092

    958104693/7/07482818526155134452082188913093102

    958104693/8/07570818837134129750072271032243862

    958104693/9/0765312214013512114125273861309470

    958104693/10/0758752372411414425203222711207883

    958104693/11/0776722345411711514718223750209471

    958104693/12/07715722484160146948522661094262554

    958104693/13/0762352046817813755308228931285979

    958104693/14/0771722675012512344547209984365669

    958104693/15/0763132525013515474297247591276594

    958104693/16/0747032504717616225219216930256377

    958104693/17/0786102759411911885157199843276675

    958104693/18/0768282712514713433906205984271986

    958104693/19/07598424204157137549382391046345394

    958104693/20/0750632066012713624500219984253178

    958104693/21/07700021040215158447972031062408671

    958104693/22/07632822437151137543402361072359471

    SYC

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    Dialup Median

    Broadband Median

    Lan Median

    Sheet1

    Sheet1

    0.5940.7810.6875

    0.3440.5780.461

    0.3281.0160.672

    0.3281.1410.7345

    0.3131.3130.813

    36 x 36 px (0.9 Kb)

    116 x 61 px (3.4 Kb)

    average of median

    Sheet3

    number hostsnnumber imagesimage typeMedian Response Time# of Data PointsNumber of Hosts36 x 36 px (0.9 Kb)116 x 61 px (3.4 Kb)LargeaverageSmallMediumLargeAverageDialup

    12020s=l3.1424610.5940.7813.1400.6881.0781.4686.2182.92133333334.719

    21020s=l2.95324620.3440.5782.9530.4610.611.0475.7652.4744.610

    4520s=l2.93724740.3281.0162.9370.6720.5471.2185.7342.49966666679.391

    5420s=l2.93724650.3281.1412.9370.7350.5471.255.7342.51033333339.312

    10220s=l3.5245100.3131.3133.5000.8130.5471.4228.625

    12020s=m0.781247Number of Hosts36 x 36 px (0.9 Kb)

    21020s=m0.57824714.719

    4520s=m1.01624724.610

    5420s=m1.14124749.391

    10220s=m1.31324559.312

    12020s=s0.594246108.625

    21020s=s0.344247

    4520s=s0.328247

    5420s=s0.328247

    10220s=s0.313245

    14040s=l6.218233

    22040s=l5.765236

    41040s=l5.734241

    5840s=l5.734244

    14040s=m1.468246

    22040s=m1.047246

    41040s=m1.218247

    5840s=m1.25245

    10440s=m1.422245

    14040s=s1.078247

    22040s=s0.61247

    41040s=s0.547246

    5840s=s0.547247

    10440s=s0.547245

    Sheet3

    36 x 36 px (0.9 Kb)

    116 x 61 px (3.4 Kb)

    average

  • Maximizing Parallel Downloadsresponse time (seconds)rule of thumb: use at least two but no more than four aliases

    Chart16

    0.5940.7810.6875

    0.3440.5780.461

    0.3281.0160.672

    0.3281.1410.7345

    0.3131.3130.813

    36 x 36 px (0.9 Kb)

    116 x 61 px (3.4 Kb)

    average

    SRP

    PRELOAD SRP COMPONENTS

    Sample Source URL:

    preload OFFpreload ONpreload OFFpreload ONpreload OFFpreload ON

    Summary(average of medians)dialupbroadbandlan

    fspl=0fspl=1fspl=0fspl=1fspl=0fspl=1

    RT# pointsRT# pointsdiff%changeRT# pointsRT# pointsdiff%changeRT# pointsRT# pointsdiff%change

    00000.000.00%0.39087560.96887500.58147.90%00000.000.00%

    # hostsdialupbroadbandlan

    fspl=0fspl=1s=ss=mfspl=0fspl=1

    RT# pointsRT# pointsdiff%changeRT# pointsRT# pointsdiff%changeRT# pointsRT# pointsdiff%change

    10.6251540.844154

    20.3751530.578149

    40.3281521.031151

    50.3131481.094148

    100.3131491.297148

    0.6251540.844154

    0.3751530.578149

    0.3281521.031151

    0.3131481.094148

    0.3131491.297148

    SRP

    00

    00

    00

    00

    00

    &A

    Page &P

    SYC

    sidDateDialup MedianDialup 95th PctlDialup Data PointsBroadband MedianBroadband 95th PctlBroadband Data PointsLan MedianLan 95th PctlLan Data Points

    958104692/20/0776302662514515786484206969279779

    958104692/21/0742182154610115164296222953317260

    958104692/22/0754062575012814015094223781223455

    958104692/23/0771882077010711875141216987265781

    958104692/24/075516222229312094000212761242666

    958104692/25/0763752448412512973745180906234456

    958104692/26/0773002390614812814579265969232369

    958104692/27/0743971700089121947461371142300063

    958104692/28/07551816234471875646978907346032

    958104693/1/073031152345716726700631232447623

    958104693/2/07759319750491216487539791275023

    958104693/3/0754851785913214224765217610245368

    958104693/4/0773352296010513315047202844248461

    958104693/5/0750472164112612344640224787307861

    958104693/6/07442220349163142050772471234339092

    958104693/7/07482818526155134452082188913093102

    958104693/8/07570818837134129750072271032243862

    958104693/9/0765312214013512114125273861309470

    958104693/10/0758752372411414425203222711207883

    958104693/11/0776722345411711514718223750209471

    958104693/12/07715722484160146948522661094262554

    958104693/13/0762352046817813755308228931285979

    958104693/14/0771722675012512344547209984365669

    958104693/15/0763132525013515474297247591276594

    958104693/16/0747032504717616225219216930256377

    958104693/17/0786102759411911885157199843276675

    958104693/18/0768282712514713433906205984271986

    958104693/19/07598424204157137549382391046345394

    958104693/20/0750632066012713624500219984253178

    958104693/21/07700021040215158447972031062408671

    958104693/22/07632822437151137543402361072359471

    SYC

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    000

    Dialup Median

    Broadband Median

    Lan Median

    Sheet1

    Sheet1

    0.5940.7810.6875

    0.3440.5780.461

    0.3281.0160.672

    0.3281.1410.7345

    0.3131.3130.813

    36 x 36 px (0.9 Kb)

    116 x 61 px (3.4 Kb)

    average of median

    Sheet3

    number hostsnnumber imagesimage typeMedian Response Time# of Data PointsNumber of Hosts36 x 36 px (0.9 Kb)116 x 61 px (3.4 Kb)LargeaverageSmallMediumLargeAverageDialup

    12020s=l3.1424610.5940.7813.1400.6881.0781.4686.2182.92133333334.719

    21020s=l2.95324620.3440.5782.9530.4610.611.0475.7652.4744.610

    4520s=l2.93724740.3281.0162.9370.6720.5471.2185.7342.49966666679.391

    5420s=l2.93724650.3281.1412.9370.7350.5471.255.7342.51033333339.312

    10220s=l3.5245100.3131.3133.5000.8130.5471.4228.625

    12020s=m0.781247Number of Hosts36 x 36 px (0.9 Kb)

    21020s=m0.57824714.719

    4520s=m1.01624724.610

    5420s=m1.14124749.391

    10220s=m1.31324559.312

    12020s=s0.594246108.625

    21020s=s0.344247

    4520s=s0.328247

    5420s=s0.328247

    10220s=s0.313245

    14040s=l6.218233

    22040s=l5.765236

    41040s=l5.734241

    5840s=l5.734244

    14040s=m1.468246

    22040s=m1.047246

    41040s=m1.218247

    5840s=m1.25245

    10440s=m1.422245

    14040s=s1.078247

    22040s=s0.61247

    41040s=s0.547246

    5840s=s0.547247

    10440s=s0.547245

    Sheet3

    36 x 36 px (0.9 Kb)

    116 x 61 px (3.4 Kb)

    average

  • Experiment Takeawaysconsider the effects of CPU thrashingDNS lookup times vary across ISPs and geographic locationsdomain names may not be cached

  • SummaryWhat the 80/20 Rule Tells Us about Reducing HTTP Requestshttp://yuiblog.com/blog/2007/04/11/performance-research-part-4/Browser Cache Usage Exposed!http://yuiblog.com/blog/2007/01/04/performance-research-part-2/When the Cookie Crumbleshttp://yuiblog.com/blog/2007/01/04/performance-research-part-2/Maximizing Parallel Downloads in the Carpool Lanehttp://yuiblog.com/blog/2007/04/11/performance-research-part-4/

  • 14 Rules

  • 14 RulesMake fewer HTTP requestsUse a CDNAdd an Expires headerGzip componentsPut CSS at the topMove JS to the bottomAvoid CSS expressionsMake JS and CSS externalReduce DNS lookupsMinify JSAvoid redirectsRemove duplicate scriptsTurn off ETagsMake AJAX cacheable and small

  • Rule 1: Make fewer HTTP requestsimage mapsCSS spritesinline imagescombined scripts, combined stylesheets

  • Image mapsserver-side

    http://.../navbar.cgi?127,13client-side preferred

    drawbacks:must be contiguousdefining area coordinates tedious, errors

    http://www.w3.org/TR/html401/struct/objects.html#h-13.6

  • CSS Sprites Preferredsize of combined image is lessnot supported in Opera 6http://alistapart.com/articles/sprites

  • Inline Imagesdata: URL schemedata:[][;base64],

    not supported in IEavoid increasing size of HTML pages:put inline images in cached stylesheetshttp://tools.ietf.org/html/rfc2397

  • Combined Scripts, Combined Stylesheets

  • Combined Scripts,Combined Stylesheetscombining six scripts into one eliminates five HTTP requestschallenges: develop as separate modulesnumber of possible combinations vs. loading more than neededmaximize browser cacheone solution:dynamically combine and cache

  • Rule 2: Use a CDN

    distribute your static content before distributing your dynamic content

  • Rule 3: Add an Expires header not just for images

    ImagesStylesheetsScripts%Median Ageamazon.com0/620/10/30%114 daysaol.com23/431/16/1848%217 dayscnn.com0/1380/22/111%227 daysebay.com16/200/20/755%140 daysfroogle.google.com1/230/10/14%454 daysmsn.com32/351/13/980%34 daysmyspace.com0/180/20/20%1 daywikipedia.org6/81/12/375%1 dayyahoo.com23/231/14/4100%n/ayoutube.com0/320/30/70%26 days

  • Rule 4: Gzip components you can affect users' download times90%+ of browsers support compression

  • Gzip vs. Deflate

    Gzip compresses moreGzip supported in more browsers

  • Gzip: not just for HTML

    gzip scripts, stylesheets, XML, JSON (not images, PDF)

    HTMLScriptsStylesheetsamazon.comxaol.comxsomesomecnn.comebay.comxfroogle.google.comxxxmsn.comxdeflatedeflatemyspace.comxxxwikipedia.orgxxxyahoo.comxxxyoutube.comxsomesome

  • Gzip Configuration Apache 2.x: mod_deflateAddOutputFilterByType DEFLATE text/html text/css application/x-javascriptHTTP requestAccept-Encoding: gzip, deflateHTTP responseContent-Encoding: gzipVary: Accept-Encoding

    needed for proxies

  • Gzip Edge Cases
  • Rule 5: Put CSS at the top stylesheets block rendering in IEhttp://stevesouders.com/examples/css-bottom.phpsolution: put stylesheets in HEAD (per spec)avoids Flash of Unstyled Contentuse LINK (not @import)

  • Slowest is Fastest

  • Rule 6: Move scripts to the bottom scripts block parallel downloads across all hostnamesscripts block rendering of everything below them in the pageIE and FFhttp://stevesouders.com/examples/js-middle.php

  • Rule 6: Move scripts to the bottom script defer attribute is not a solutionblocks rendering and downloads in FFslight blocking in IEsolution: move them as low in the page as possible

  • Rule 7: Avoid CSS expressions used to set CSS properties dynamically in IEwidth: expression( document.body.clientWidth < 600 ? 600px : auto );problem: expressions execute many timesmouse move, key press, resize, scroll, etc.

    http://stevesouders.com/examples/expression-counter.php

  • One-Time Expressionsexpression overwrites itself

    P { background-color: expression(altBgcolor(this));}

    function altBgcolor(elem) { elem.style.backgroundColor = (new Date()).getHours()%2 ? "#F08A00" : "#B8D4FF";}

  • Event Handlerstie behavior to (fewer) specific eventswindow.onresize = setMinWidth;function setMinWidth() { var aElements = document.getElementsByTagName("p"); for ( var i = 0; i < aElements.length; i++ ) { aElements[i].runtimeStyle.width = ( document.body.clientWidth
  • Rule 8: Make JS and CSS external inline: HTML document is biggerexternal: more HTTP requests, but cachedvariablespage views per user (per session)empty vs. full cache statscomponent re-useexternal is typically betterhome pages may be an exception

  • Post-Onload Downloadinline in front pagedownload external files after onloadwindow.onload = downloadComponents;function downloadComponents() { var elem = document.createElement("script"); elem.src = "http://.../file1.js"; document.body.appendChild(elem); ...}speeds up secondary pages

  • Dynamic Inliningstart with post-onload downloadset cookie after components downloadedserver-side: if cookie, use externalelse, do inline with post-onload downloadcookie expiration date is keyspeeds up all pages

  • Rule 9: Reduce DNS lookups typically 20-120 msblock parallel downloadsOS and browser both have DNS caches

  • TTL (Time To Live)

    TTL how long record can be cachedbrowser settings override TTL

  • Browser DNS CacheIEDnsCacheTimeout: 30 minutesKeepAliveTimeout: 1 minuteServerInfoTimeout: 2 minutesFirefoxnetwork.dnsCacheExpiration: 1 minutenetwork.dnsCacheEntries: 20network.http.keep-alive.timeout: 5 minutesFasterfox: 1 hour, 512 entries, 30 seconds

  • Reducing DNS Lookupsfewer hostnames 2-4keep-alive

  • Rule 10: Minify JavaScript

    minify inline scripts, too

  • Minify vs. Obfuscate

    minify it's saferhttp://crockford.com/javascript/jsminhttp://dojotoolkit.org/docs/shrinksafe

  • Rule 11: Avoid redirects3xx status codes mostly 301 and 302HTTP/1.1 301 Moved PermanentlyLocation: http://stevesouders.com/newuriadd Expires headers to cache redirectsworst form of blockinghttp://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

  • Redirects

  • Avoid Redirectsmissing trailing slashhttp://astrology.yahoo.com/astrologyuse Alias or DirectorySlashmod_rewriteCNAMEslog referer track internal linksoutbound links harderbeacons beware of race conditionXHR bail at readyState 2

  • Rule 12: Remove duplicate scriptshurts performanceextra HTTP requests (IE only)extra executionsatypical?2 of 10 top sites contain duplicate scriptsteam size, # of scripts

  • Script Insertion Functions
  • Rule 13: Turn off ETagsunique identifier returned in responseETag: "c8897e-aee-4165acf0"Last-Modified: Thu, 07 Oct 2004 20:54:08 GMTused in conditional GET requestsIf-None-Match: "c8897e-aee-4165acf0"If-Modified-Since: Thu, 07 Oct 2004 20:54:08 GMTif ETag doesn't match, can't send 304

  • The Problem with ETagsETag for a single entity is always different across serversETag formatApache: inode-size-timestampIIS: Filetimestamp:ChangeNumberSites with >1 server return too few 304s(n-1)/nRemove themApache: FileETag noneIIS: http://support.microsoft.com/kb/922703/

  • Rule 14: Make AJAX cacheable and smallXHR, JSON, iframe, dynamic scripts can still be cached, minified, and gzippeda personalized response should still be cacheable by that person

  • AJAX Example: Yahoo! Mail Betaaddress book XML request GET /yab/[...]&r=0.5289571053069156 HTTP/1.1 Host: us.xxx.mail.yahoo.com HTTP/1.1 200 OK Date: Thu, 12 Apr 2007 19:39:09 GMT Cache-Control: private,max-age=0 Last-Modified: Sat, 31 Mar 2007 01:17:17 GMT Content-Type: text/xml; charset=utf-8 Content-Encoding: gzipaddress book changes infrequentlycache it; add last-modified-time in URL

  • Live Analysis

  • IBM Page Detailerpacket snifferWindows onlyIE, FF, any .exec:\windows\wd_WS2s.iniExecutable=(NETSCAPE.EXE),(NETSCP6.EXE),(firefox.exe)free trial, $300 licensehttp://alphaworks.ibm.com/tech/pagedetailer

  • http://alphaworks.ibm.com/tech/pagedetailer

  • Fasterfoxmeasures load time of pagesalters config settings for faster loadingFirefox extensionfreehttp://fasterfox.mozdev.org/

  • LiveHTTPHeadersview HTTP headersFirefox extensionfreehttp://livehttpheaders.mozdev.org/

  • Firebugweb development evolvedinspect and edit HTMLtweak and visualize CSSdebug and profile JavaScriptmonitor network activity (caveat)Firefox extensionfreehttp://getfirebug.com/

  • http://getfirebug.com/

  • YSlowperformance lint toolgrades web pages for each ruleFirefox extensionYahoo! internal tool

  • Conclusion

  • Takeawaysfocus on the front-endharvest the low-hanging fruityou do control user response timesLOFNO be an advocate for your users

  • Linksbook: http://www.oreilly.com/catalog/9780596514211/ examples: http://stevesouders.com/examples/ image maps: http://www.w3.org/TR/html401/struct/objects.html#h-13.6 CSS sprites: http://alistapart.com/articles/sprites inline images: http://tools.ietf.org/html/rfc2397 jsmin: http://crockford.com/javascript/jsmin dojo compressor: http://dojotoolkit.org/docs/shrinksafe HTTP status codes: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html IBM Page Detailer: http://alphaworks.ibm.com/tech/pagedetailer Fasterfox: http://fasterfox.mozdev.org/LiveHTTPHeaders: http://livehttpheaders.mozdev.org/Firebug: http://getfirebug.com/ YUIBlog: http://yuiblog.com/blog/2006/11/28/performance-research-part-1/ http://yuiblog.com/blog/2007/01/04/performance-research-part-2/ http://yuiblog.com/blog/2007/03/01/performance-research-part-3/ http://yuiblog.com/blog/2007/04/11/performance-research-part-4/YDN: http://developer.yahoo.net/blog/archives/2007/03/high_performanc.html http://developer.yahoo.net/blog/archives/2007/04/rule_1_make_few.html