diff --git a/.gitignore b/.gitignore index f5ed26d626a0..7506288a7d5f 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ node_modules .DS_Store npm-debug.log .vscode +.tmp lighthouse-extension/dist lighthouse-core/third_party/src diff --git a/.travis.yml b/.travis.yml index be4e89c109d5..71dbc2ad8998 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,6 +13,7 @@ cache: yarn: true directories: - node_modules + - lantern-data - lighthouse-extension/node_modules - lighthouse-viewer/node_modules - /home/travis/.rvm/gems/ @@ -39,6 +40,7 @@ script: - yarn smoke:silentcoverage - yarn test-extension - yarn test-viewer + - yarn test-lantern # _JAVA_OPTIONS is breaking parsing of compiler output. See #3338. - unset _JAVA_OPTIONS # FIXME(paulirish): re-enable after a roll of LH->CDT diff --git a/lighthouse-core/scripts/lantern/assert-master-lantern-values-unchanged.js b/lighthouse-core/scripts/lantern/assert-master-lantern-values-unchanged.js new file mode 100755 index 000000000000..97020f3d07cb --- /dev/null +++ b/lighthouse-core/scripts/lantern/assert-master-lantern-values-unchanged.js @@ -0,0 +1,59 @@ +#!/usr/bin/env node +/** + * @license Copyright 2018 Google Inc. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + */ +'use strict'; + +/* eslint-disable no-console */ + +const fs = require('fs'); +const path = require('path'); +const execSync = require('child_process').execSync; +const constants = require('./constants'); + +const INPUT_PATH = process.argv[2] || constants.SITE_INDEX_WITH_GOLDEN_WITH_COMPUTED_PATH; +const HEAD_PATH = path.resolve(process.cwd(), INPUT_PATH); +const MASTER_PATH = constants.MASTER_COMPUTED_PATH; + +const TMP_DIR = path.join(__dirname, '../../../.tmp'); +const TMP_HEAD_PATH = path.join(TMP_DIR, 'HEAD-for-diff.json'); +const TMP_MASTER_PATH = path.join(TMP_DIR, 'master-for-diff.json'); + +if (!fs.existsSync(TMP_DIR)) fs.mkdirSync(TMP_DIR); + +if (!fs.existsSync(HEAD_PATH) || !fs.existsSync(MASTER_PATH)) { + throw new Error('Usage $0 '); +} + +let exitCode = 0; + +try { + const computedResults = require(HEAD_PATH); + const expectedResults = require(MASTER_PATH); + + const sites = []; + for (const entry of computedResults.sites) { + const lanternValues = entry.lantern; + Object.keys(lanternValues).forEach(key => lanternValues[key] = Math.round(lanternValues[key])); + sites.push({url: entry.url, ...lanternValues}); + } + + fs.writeFileSync(TMP_HEAD_PATH, JSON.stringify({sites}, null, 2)); + fs.writeFileSync(TMP_MASTER_PATH, JSON.stringify(expectedResults, null, 2)); + + try { + execSync(`git --no-pager diff --color=always --no-index ${TMP_MASTER_PATH} ${TMP_HEAD_PATH}`); + console.log('✅ PASS No changes between expected and computed!'); + } catch (err) { + console.log('❌ FAIL Changes between expected and computed!\n'); + console.log(err.stdout.toString()); + exitCode = 1; + } +} finally { + fs.unlinkSync(TMP_HEAD_PATH); + fs.unlinkSync(TMP_MASTER_PATH); +} + +process.exit(exitCode); diff --git a/lighthouse-core/scripts/lantern/constants.js b/lighthouse-core/scripts/lantern/constants.js new file mode 100644 index 000000000000..01901ea4977b --- /dev/null +++ b/lighthouse-core/scripts/lantern/constants.js @@ -0,0 +1,16 @@ +/** + * @license Copyright 2018 Google Inc. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + */ +'use strict'; + +const path = require('path'); + +/* eslint-disable max-len */ + +module.exports = { + SITE_INDEX_WITH_GOLDEN_PATH: './lantern-data/site-index-plus-golden-expectations.json', + SITE_INDEX_WITH_GOLDEN_WITH_COMPUTED_PATH: path.join(__dirname, '../../../.tmp/site-index-plus-golden-expectations-plus-computed.json'), + MASTER_COMPUTED_PATH: path.join(__dirname, '../../test/fixtures/lantern-master-computed-values.json'), +}; diff --git a/lighthouse-core/scripts/lantern/download-traces.sh b/lighthouse-core/scripts/lantern/download-traces.sh index b252b6b3a37e..4984912d8247 100755 --- a/lighthouse-core/scripts/lantern/download-traces.sh +++ b/lighthouse-core/scripts/lantern/download-traces.sh @@ -1,13 +1,22 @@ #!/bin/bash +set -e + DIRNAME="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" LH_ROOT_PATH="$DIRNAME/../../.." cd $LH_ROOT_PATH +if [[ -f lantern-data/site-index-plus-golden-expectations.json ]] && ! [[ "$FORCE" ]]; then + echo "Lantern data already detected, done." + exit 0 +fi + +rm -rf lantern-data/ +mkdir lantern-data/ && cd lantern-data/ + # snapshot of ~100 traces with no throttling recorded 2017-12-06 on a HP z840 workstation TAR_URL="https://drive.google.com/a/chromium.org/uc?id=1_w2g6fQVLgHI62FApsyUDejZyHNXMLm0&export=download" curl -o lantern-traces.tar.gz -L $TAR_URL tar -xzf lantern-traces.tar.gz -mv lantern-traces-subset lantern-data rm lantern-traces.tar.gz diff --git a/lighthouse-core/scripts/lantern/evaluate-results.js b/lighthouse-core/scripts/lantern/print-correlations.js similarity index 89% rename from lighthouse-core/scripts/lantern/evaluate-results.js rename to lighthouse-core/scripts/lantern/print-correlations.js index 58e1f109be32..f0c758672507 100755 --- a/lighthouse-core/scripts/lantern/evaluate-results.js +++ b/lighthouse-core/scripts/lantern/print-correlations.js @@ -8,16 +8,20 @@ /* eslint-disable no-console */ +const fs = require('fs'); const path = require('path'); +const constants = require('./constants'); const GOOD_ABSOLUTE_THRESHOLD = 0.2; const OK_ABSOLUTE_THRESHOLD = 0.5; const GOOD_RANK_THRESHOLD = 0.1; -if (!process.argv[2]) throw new Error('Usage $0 '); +const INPUT_PATH = process.argv[2] || constants.SITE_INDEX_WITH_GOLDEN_WITH_COMPUTED_PATH; +const COMPUTATIONS_PATH = path.resolve(process.cwd(), INPUT_PATH); + +if (!fs.existsSync(COMPUTATIONS_PATH)) throw new Error('Usage $0 '); -const COMPUTATIONS_PATH = path.resolve(process.cwd(), process.argv[2]); /** @type {{sites: LanternSiteDefinition[]}} */ const expectations = require(COMPUTATIONS_PATH); @@ -35,7 +39,7 @@ const totalOk = []; const totalBad = []; /** - * @param {keyof LanternSiteDefinition} metric + * @param {keyof TargetMetrics} metric * @param {keyof LanternMetrics} lanternMetric */ function evaluateBuckets(metric, lanternMetric) { @@ -52,8 +56,7 @@ function evaluateBuckets(metric, lanternMetric) { const rankErrors = []; const percentErrors = []; for (const entry of entries) { - // @ts-ignore - const expected = Math.round(entry[metric]); + const expected = Math.round(entry.wpt3g[metric]); if (expected === 0) continue; const expectedRank = sortedByMetric.indexOf(entry); @@ -122,9 +125,9 @@ evaluateBuckets('speedIndex', 'roughEstimateOfSI'); const total = totalGood.length + totalOk.length + totalBad.length; console.log('\n---- Summary Stats ----'); -console.log(`Good: ${Math.round(totalGood.length / total * 100)}%`); -console.log(`OK: ${Math.round(totalOk.length / total * 100)}%`); -console.log(`Bad: ${Math.round(totalBad.length / total * 100)}%`); +console.log(`Good: ${Math.round((totalGood.length / total) * 100)}%`); +console.log(`OK: ${Math.round((totalOk.length / total) * 100)}%`); +console.log(`Bad: ${Math.round((totalBad.length / total) * 100)}%`); console.log('\n---- Worst10 Sites ----'); for (const entry of totalBad.sort((a, b) => b.rankDiff - a.rankDiff).slice(0, 10)) { @@ -141,14 +144,8 @@ for (const entry of totalBad.sort((a, b) => b.rankDiff - a.rankDiff).slice(0, 10 /** * @typedef LanternSiteDefinition * @property {string} url - * @property {string} tracePath - * @property {string} devtoolsLogPath + * @property {TargetMetrics} wpt3g * @property {LanternMetrics} lantern - * @property {number} [firstContentfulPaint] - * @property {number} [firstMeaningfulPaint] - * @property {number} [timeToFirstInteractive] - * @property {number} [timeToConsistentlyInteractive] - * @property {number} [speedIndex] */ /** @@ -162,6 +159,15 @@ for (const entry of totalBad.sort((a, b) => b.rankDiff - a.rankDiff).slice(0, 10 * @property {number} rankDiffAsPercent */ +/** + * @typedef TargetMetrics + * @property {number} [firstContentfulPaint] + * @property {number} [firstMeaningfulPaint] + * @property {number} [timeToFirstInteractive] + * @property {number} [timeToConsistentlyInteractive] + * @property {number} [speedIndex] + */ + /** * @typedef LanternMetrics * @property {number} optimisticFCP @@ -179,4 +185,4 @@ for (const entry of totalBad.sort((a, b) => b.rankDiff - a.rankDiff).slice(0, 10 * @property {number} roughEstimateOfSI * @property {number} roughEstimateOfTTFCPUI * @property {number} roughEstimateOfTTI - */ + */ diff --git a/lighthouse-core/scripts/lantern/run-all-expectations.js b/lighthouse-core/scripts/lantern/run-on-all-assets.js similarity index 63% rename from lighthouse-core/scripts/lantern/run-all-expectations.js rename to lighthouse-core/scripts/lantern/run-on-all-assets.js index 8a09df54faa7..0dac3453eaaf 100755 --- a/lighthouse-core/scripts/lantern/run-all-expectations.js +++ b/lighthouse-core/scripts/lantern/run-on-all-assets.js @@ -11,17 +11,20 @@ const fs = require('fs'); const path = require('path'); const execFileSync = require('child_process').execFileSync; +const constants = require('./constants'); -if (!process.argv[2]) throw new Error('Usage $0 '); - +const INPUT_PATH = process.argv[2] || constants.SITE_INDEX_WITH_GOLDEN_PATH; +const SITE_INDEX_PATH = path.resolve(process.cwd(), INPUT_PATH); +const SITE_INDEX_DIR = path.dirname(SITE_INDEX_PATH); const RUN_ONCE_PATH = path.join(__dirname, 'run-once.js'); -const EXPECTATIONS_PATH = path.resolve(process.cwd(), process.argv[2]); -const EXPECTATIONS_DIR = path.dirname(EXPECTATIONS_PATH); -const expectations = require(EXPECTATIONS_PATH); + +if (!fs.existsSync(SITE_INDEX_PATH)) throw new Error('Usage $0 '); + +const expectations = require(SITE_INDEX_PATH); for (const site of expectations.sites) { - const trace = path.join(EXPECTATIONS_DIR, site.tracePath); - const log = path.join(EXPECTATIONS_DIR, site.devtoolsLogPath); + const trace = path.join(SITE_INDEX_DIR, site.unthrottled.tracePath); + const log = path.join(SITE_INDEX_DIR, site.unthrottled.devtoolsLogPath); console.log('Running', site.url, '...'); const rawOutput = execFileSync(RUN_ONCE_PATH, [trace, log]) @@ -33,5 +36,5 @@ for (const site of expectations.sites) { Object.assign(site, {lantern}); } -const computedSummaryPath = path.join(EXPECTATIONS_DIR, 'lantern-computed.json'); -fs.writeFileSync(computedSummaryPath, JSON.stringify(expectations, null, 2)); +// eslint-disable-next-line max-len +fs.writeFileSync(constants.SITE_INDEX_WITH_GOLDEN_WITH_COMPUTED_PATH, JSON.stringify(expectations, null, 2)); diff --git a/lighthouse-core/scripts/lantern/update-master-lantern-values.js b/lighthouse-core/scripts/lantern/update-master-lantern-values.js new file mode 100755 index 000000000000..79aee894943a --- /dev/null +++ b/lighthouse-core/scripts/lantern/update-master-lantern-values.js @@ -0,0 +1,44 @@ +#!/usr/bin/env node +/** + * @license Copyright 2018 Google Inc. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + */ +'use strict'; + +/* eslint-disable no-console */ + +const fs = require('fs'); +const path = require('path'); +const execFileSync = require('child_process').execFileSync; +const prettyJSONStringify = require('pretty-json-stringify'); +const constants = require('./constants'); + +const INPUT_PATH = process.argv[2] || constants.SITE_INDEX_WITH_GOLDEN_PATH; +const SITE_INDEX_PATH = path.resolve(process.cwd(), INPUT_PATH); +const HEAD_COMPUTED_PATH = constants.SITE_INDEX_WITH_GOLDEN_WITH_COMPUTED_PATH; +const RUN_ALL_SCRIPT_PATH = path.join(__dirname, 'run-on-all-assets.js'); +const OUTPUT_PATH = constants.MASTER_COMPUTED_PATH; + +if (!fs.existsSync(HEAD_COMPUTED_PATH) || process.env.FORCE) { + if (!fs.existsSync(SITE_INDEX_PATH)) throw new Error('Usage $0 '); + execFileSync(RUN_ALL_SCRIPT_PATH, [SITE_INDEX_PATH]); +} + +const computedResults = require(HEAD_COMPUTED_PATH); + +const sites = []; +for (const entry of computedResults.sites) { + const lanternValues = entry.lantern; + Object.keys(lanternValues).forEach(key => lanternValues[key] = Math.round(lanternValues[key])); + sites.push({url: entry.url, ...lanternValues}); +} + +fs.writeFileSync(OUTPUT_PATH, prettyJSONStringify({sites}, { + tab: ' ', + spaceBeforeColon: '', + spaceInsideObject: '', + shouldExpand: (_, level) => level < 2, +})); + + diff --git a/lighthouse-core/scripts/test-lantern.sh b/lighthouse-core/scripts/test-lantern.sh new file mode 100755 index 000000000000..49750f156d0d --- /dev/null +++ b/lighthouse-core/scripts/test-lantern.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash + +DIRNAME="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +LH_ROOT="$DIRNAME/../.." +cd $LH_ROOT + +set -e + +# Testing lantern can be expensive, we'll only run the tests if we touched files that affect the simulations. +CHANGED_FILES="" +if [[ "$CI" ]]; then + CHANGED_FILES=$(git --no-pager diff --name-only $TRAVIS_COMMIT_RANGE) +else + CHANGED_FILES=$(git --no-pager diff --name-only master) +fi + +printf "Determined the following files have been touched:\n\n$CHANGED_FILES\n\n" + +if ! echo $CHANGED_FILES | grep -E 'dependency-graph|metrics|lantern' > /dev/null; then + echo "No lantern files affected, skipping lantern checks." + exit 0 +fi + +printf "Lantern files affected!\n\nDownloading test set...\n" +"$LH_ROOT/lighthouse-core/scripts/lantern/download-traces.sh" + +printf "\n\nRunning lantern on all sites...\n" +"$LH_ROOT/lighthouse-core/scripts/lantern/run-on-all-assets.js" + +printf "\n\n" +"$LH_ROOT/lighthouse-core/scripts/lantern/print-correlations.js" + +printf "\n\nComparing to master computed values...\n" +"$LH_ROOT/lighthouse-core/scripts/lantern/assert-master-lantern-values-unchanged.js" diff --git a/lighthouse-core/test/fixtures/lantern-master-computed-values.json b/lighthouse-core/test/fixtures/lantern-master-computed-values.json new file mode 100644 index 000000000000..be568ed1ca2b --- /dev/null +++ b/lighthouse-core/test/fixtures/lantern-master-computed-values.json @@ -0,0 +1,103 @@ +{ + "sites": [ + {"url": "https://flipkart.com", "roughEstimateOfFCP": 2819, "optimisticFCP": 2017, "pessimisticFCP": 2017, "roughEstimateOfFMP": 6108, "optimisticFMP": 4960, "pessimisticFMP": 4960, "roughEstimateOfTTI": 12534, "optimisticTTI": 9513, "pessimisticTTI": 11613, "roughEstimateOfTTFCPUI": 12534, "optimisticTTFCPUI": 9513, "pessimisticTTFCPUI": 11613, "roughEstimateOfSI": 6223, "optimisticSI": 3687, "pessimisticSI": 2017, "roughEstimateOfEIL": 766, "optimisticEIL": 957, "pessimisticEIL": 957}, + {"url": "https://vine.co/", "roughEstimateOfFCP": 1977, "optimisticFCP": 1251, "pessimisticFCP": 1251, "roughEstimateOfFMP": 3204, "optimisticFMP": 1251, "pessimisticFMP": 2901, "roughEstimateOfTTI": 8901, "optimisticTTI": 6372, "pessimisticTTI": 7727, "roughEstimateOfTTFCPUI": 8901, "optimisticTTFCPUI": 6372, "pessimisticTTFCPUI": 7727, "roughEstimateOfSI": 3707, "optimisticSI": 2246, "pessimisticSI": 1251, "roughEstimateOfEIL": 961, "optimisticEIL": 1202, "pessimisticEIL": 1202}, + {"url": "https://weather.com/", "roughEstimateOfFCP": 5617, "optimisticFCP": 4561, "pessimisticFCP": 4561, "roughEstimateOfFMP": 5689, "optimisticFMP": 4561, "pessimisticFMP": 4561, "roughEstimateOfTTI": 25715, "optimisticTTI": 20554, "pessimisticTTI": 26182, "roughEstimateOfTTFCPUI": 25715, "optimisticTTFCPUI": 20554, "pessimisticTTFCPUI": 26182, "roughEstimateOfSI": 6301, "optimisticSI": 2561, "pessimisticSI": 4561, "roughEstimateOfEIL": 1648, "optimisticEIL": 2060, "pessimisticEIL": 2060}, + {"url": "http://www.4399.com/", "roughEstimateOfFCP": 3554, "optimisticFCP": 2685, "pessimisticFCP": 2685, "roughEstimateOfFMP": 3719, "optimisticFMP": 2685, "pessimisticFMP": 2685, "roughEstimateOfTTI": 5551, "optimisticTTI": 2696, "pessimisticTTI": 5185, "roughEstimateOfTTFCPUI": 5551, "optimisticTTFCPUI": 2696, "pessimisticTTFCPUI": 5185, "roughEstimateOfSI": 3554, "optimisticSI": 350, "pessimisticSI": 2685, "roughEstimateOfEIL": 13, "optimisticEIL": 16, "pessimisticEIL": 16}, + {"url": "http://www.4shared.com/", "roughEstimateOfFCP": 4380, "optimisticFCP": 3437, "pessimisticFCP": 3437, "roughEstimateOfFMP": 4509, "optimisticFMP": 3437, "pessimisticFMP": 3437, "roughEstimateOfTTI": 6302, "optimisticTTI": 4192, "pessimisticTTI": 4860, "roughEstimateOfTTFCPUI": 6302, "optimisticTTFCPUI": 4192, "pessimisticTTFCPUI": 4860, "roughEstimateOfSI": 4380, "optimisticSI": 1467, "pessimisticSI": 3437, "roughEstimateOfEIL": 51, "optimisticEIL": 63, "pessimisticEIL": 63}, + {"url": "http://www.56.com/", "roughEstimateOfFCP": 3727, "optimisticFCP": 2843, "pessimisticFCP": 2843, "roughEstimateOfFMP": 3885, "optimisticFMP": 2843, "pessimisticFMP": 2843, "roughEstimateOfTTI": 10645, "optimisticTTI": 3348, "pessimisticTTI": 15637, "roughEstimateOfTTFCPUI": 4476, "optimisticTTFCPUI": 3348, "pessimisticTTFCPUI": 1926, "roughEstimateOfSI": 9882, "optimisticSI": 5917, "pessimisticSI": 2843, "roughEstimateOfEIL": 13, "optimisticEIL": 16, "pessimisticEIL": 16}, + {"url": "http://www.58.com/", "roughEstimateOfFCP": 3549, "optimisticFCP": 2681, "pessimisticFCP": 2681, "roughEstimateOfFMP": 3715, "optimisticFMP": 2681, "pessimisticFMP": 2681, "roughEstimateOfTTI": 5599, "optimisticTTI": 3498, "pessimisticTTI": 4224, "roughEstimateOfTTFCPUI": 5599, "optimisticTTFCPUI": 3498, "pessimisticTTFCPUI": 4224, "roughEstimateOfSI": 6875, "optimisticSI": 3844, "pessimisticSI": 2681, "roughEstimateOfEIL": 1356, "optimisticEIL": 1695, "pessimisticEIL": 1695}, + {"url": "http://www.7k7k.com/", "roughEstimateOfFCP": 5546, "optimisticFCP": 4491, "pessimisticFCP": 4502, "roughEstimateOfFMP": 5622, "optimisticFMP": 4491, "pessimisticFMP": 4502, "roughEstimateOfTTI": 9935, "optimisticTTI": 5204, "pessimisticTTI": 11582, "roughEstimateOfTTFCPUI": 5622, "optimisticTTFCPUI": 5204, "pessimisticTTFCPUI": 1880, "roughEstimateOfSI": 9164, "optimisticSI": 4634, "pessimisticSI": 4502, "roughEstimateOfEIL": 1669, "optimisticEIL": 2086, "pessimisticEIL": 2086}, + {"url": "http://www.addthis.com/", "roughEstimateOfFCP": 3175, "optimisticFCP": 2341, "pessimisticFCP": 2341, "roughEstimateOfFMP": 3570, "optimisticFMP": 2543, "pessimisticFMP": 2543, "roughEstimateOfTTI": 10052, "optimisticTTI": 7175, "pessimisticTTI": 9216, "roughEstimateOfTTFCPUI": 10052, "optimisticTTFCPUI": 7175, "pessimisticTTFCPUI": 9216, "roughEstimateOfSI": 3405, "optimisticSI": 1524, "pessimisticSI": 2341, "roughEstimateOfEIL": 167, "optimisticEIL": 209, "pessimisticEIL": 209}, + {"url": "http://www.alexa.com/", "roughEstimateOfFCP": 7118, "optimisticFCP": 5925, "pessimisticFCP": 5925, "roughEstimateOfFMP": 7459, "optimisticFMP": 6247, "pessimisticFMP": 6247, "roughEstimateOfTTI": 15388, "optimisticTTI": 12076, "pessimisticTTI": 14540, "roughEstimateOfTTFCPUI": 15388, "optimisticTTFCPUI": 12076, "pessimisticTTFCPUI": 14540, "roughEstimateOfSI": 7118, "optimisticSI": 2192, "pessimisticSI": 5925, "roughEstimateOfEIL": 502, "optimisticEIL": 628, "pessimisticEIL": 628}, + {"url": "http://www.amazon.co.jp/", "roughEstimateOfFCP": 3305, "optimisticFCP": 2459, "pessimisticFCP": 2459, "roughEstimateOfFMP": 3607, "optimisticFMP": 2459, "pessimisticFMP": 2668, "roughEstimateOfTTI": 9030, "optimisticTTI": 5621, "pessimisticTTI": 9018, "roughEstimateOfTTFCPUI": 9030, "optimisticTTFCPUI": 5621, "pessimisticTTFCPUI": 9018, "roughEstimateOfSI": 4401, "optimisticSI": 2181, "pessimisticSI": 2459, "roughEstimateOfEIL": 262, "optimisticEIL": 328, "pessimisticEIL": 328}, + {"url": "http://www.att.com/", "roughEstimateOfFCP": 5409, "optimisticFCP": 3634, "pessimisticFCP": 5258, "roughEstimateOfFMP": 7094, "optimisticFMP": 4418, "pessimisticFMP": 7011, "roughEstimateOfTTI": 32310, "optimisticTTI": 26030, "pessimisticTTI": 33538, "roughEstimateOfTTFCPUI": 23710, "optimisticTTFCPUI": 26030, "pessimisticTTFCPUI": 14426, "roughEstimateOfSI": 15781, "optimisticSI": 9009, "pessimisticSI": 5258, "roughEstimateOfEIL": 1542, "optimisticEIL": 1928, "pessimisticEIL": 1928}, + {"url": "http://www.bing.com/", "roughEstimateOfFCP": 769, "optimisticFCP": 452, "pessimisticFCP": 452, "roughEstimateOfFMP": 1539, "optimisticFMP": 603, "pessimisticFMP": 1207, "roughEstimateOfTTI": 7574, "optimisticTTI": 3879, "pessimisticTTI": 8104, "roughEstimateOfTTFCPUI": 7574, "optimisticTTFCPUI": 3879, "pessimisticTTFCPUI": 8104, "roughEstimateOfSI": 2020, "optimisticSI": 1412, "pessimisticSI": 452, "roughEstimateOfEIL": 558, "optimisticEIL": 698, "pessimisticEIL": 698}, + {"url": "http://www.blogspot.com/", "roughEstimateOfFCP": 2815, "optimisticFCP": 2013, "pessimisticFCP": 2013, "roughEstimateOfFMP": 3014, "optimisticFMP": 2013, "pessimisticFMP": 2013, "roughEstimateOfTTI": 4407, "optimisticTTI": 2594, "pessimisticTTI": 2780, "roughEstimateOfTTFCPUI": 4407, "optimisticTTFCPUI": 2594, "pessimisticTTFCPUI": 2780, "roughEstimateOfSI": 11239, "optimisticSI": 7272, "pessimisticSI": 2013, "roughEstimateOfEIL": 13, "optimisticEIL": 16, "pessimisticEIL": 16}, + {"url": "http://www.brothersoft.com/", "roughEstimateOfFCP": 2481, "optimisticFCP": 1710, "pessimisticFCP": 1710, "roughEstimateOfFMP": 3365, "optimisticFMP": 2208, "pessimisticFMP": 2452, "roughEstimateOfTTI": 16936, "optimisticTTI": 12900, "pessimisticTTI": 16881, "roughEstimateOfTTFCPUI": 16936, "optimisticTTFCPUI": 12900, "pessimisticTTFCPUI": 16881, "roughEstimateOfSI": 4084, "optimisticSI": 2302, "pessimisticSI": 1710, "roughEstimateOfEIL": 636, "optimisticEIL": 795, "pessimisticEIL": 795}, + {"url": "http://www.china.com.cn/", "roughEstimateOfFCP": 5034, "optimisticFCP": 3589, "pessimisticFCP": 4562, "roughEstimateOfFMP": 5252, "optimisticFMP": 3589, "pessimisticFMP": 4562, "roughEstimateOfTTI": 7914, "optimisticTTI": 4173, "pessimisticTTI": 8466, "roughEstimateOfTTFCPUI": 5252, "optimisticTTFCPUI": 4173, "pessimisticTTFCPUI": 2407, "roughEstimateOfSI": 8102, "optimisticSI": 3848, "pessimisticSI": 4562, "roughEstimateOfEIL": 20, "optimisticEIL": 25, "pessimisticEIL": 25}, + {"url": "http://www.cnet.com/", "roughEstimateOfFCP": 2393, "optimisticFCP": 1451, "pessimisticFCP": 1845, "roughEstimateOfFMP": 2929, "optimisticFMP": 1451, "pessimisticFMP": 2294, "roughEstimateOfTTI": 25155, "optimisticTTI": 18878, "pessimisticTTI": 27174, "roughEstimateOfTTFCPUI": 25155, "optimisticTTFCPUI": 18878, "pessimisticTTFCPUI": 27174, "roughEstimateOfSI": 4292, "optimisticSI": 2388, "pessimisticSI": 1845, "roughEstimateOfEIL": 1061, "optimisticEIL": 1326, "pessimisticEIL": 1326}, + {"url": "http://www.cntv.cn/", "roughEstimateOfFCP": 3567, "optimisticFCP": 2697, "pessimisticFCP": 2697, "roughEstimateOfFMP": 3732, "optimisticFMP": 2697, "pessimisticFMP": 2697, "roughEstimateOfTTI": 4567, "optimisticTTI": 2697, "pessimisticTTI": 2997, "roughEstimateOfTTFCPUI": 4567, "optimisticTTFCPUI": 2697, "pessimisticTTFCPUI": 2997, "roughEstimateOfSI": 3890, "optimisticSI": 1705, "pessimisticSI": 2697, "roughEstimateOfEIL": 13, "optimisticEIL": 16, "pessimisticEIL": 16}, + {"url": "http://www.conduit.com/", "roughEstimateOfFCP": 2258, "optimisticFCP": 1507, "pessimisticFCP": 1507, "roughEstimateOfFMP": 2483, "optimisticFMP": 1507, "pessimisticFMP": 1507, "roughEstimateOfTTI": 3884, "optimisticTTI": 1960, "pessimisticTTI": 2463, "roughEstimateOfTTFCPUI": 3884, "optimisticTTFCPUI": 1960, "pessimisticTTFCPUI": 2463, "roughEstimateOfSI": 2539, "optimisticSI": 1292, "pessimisticSI": 1507, "roughEstimateOfEIL": 20, "optimisticEIL": 25, "pessimisticEIL": 25}, + {"url": "http://www.craigslist.org/", "roughEstimateOfFCP": 3615, "optimisticFCP": 2634, "pessimisticFCP": 2869, "roughEstimateOfFMP": 5456, "optimisticFMP": 4201, "pessimisticFMP": 4443, "roughEstimateOfTTI": 6120, "optimisticTTI": 4201, "pessimisticTTI": 4443, "roughEstimateOfTTFCPUI": 6120, "optimisticTTFCPUI": 4201, "pessimisticTTFCPUI": 4443, "roughEstimateOfSI": 3615, "optimisticSI": 1334, "pessimisticSI": 2869, "roughEstimateOfEIL": 182, "optimisticEIL": 227, "pessimisticEIL": 227}, + {"url": "http://www.dawn.com/", "roughEstimateOfFCP": 3859, "optimisticFCP": 2695, "pessimisticFCP": 3283, "roughEstimateOfFMP": 4083, "optimisticFMP": 2695, "pessimisticFMP": 3283, "roughEstimateOfTTI": 16102, "optimisticTTI": 12156, "pessimisticTTI": 16019, "roughEstimateOfTTFCPUI": 16102, "optimisticTTFCPUI": 12156, "pessimisticTTFCPUI": 16019, "roughEstimateOfSI": 5025, "optimisticSI": 2243, "pessimisticSI": 3283, "roughEstimateOfEIL": 298, "optimisticEIL": 373, "pessimisticEIL": 373}, + {"url": "http://www.depositfiles.com/", "roughEstimateOfFCP": 8891, "optimisticFCP": 7537, "pessimisticFCP": 7537, "roughEstimateOfFMP": 8891, "optimisticFMP": 7537, "pessimisticFMP": 7537, "roughEstimateOfTTI": 10999, "optimisticTTI": 8951, "pessimisticTTI": 8951, "roughEstimateOfTTFCPUI": 8891, "optimisticTTFCPUI": 775, "pessimisticTTFCPUI": 8951, "roughEstimateOfSI": 12654, "optimisticSI": 5718, "pessimisticSI": 7537, "roughEstimateOfEIL": 273, "optimisticEIL": 341, "pessimisticEIL": 341}, + {"url": "http://www.deviantart.com/", "roughEstimateOfFCP": 4693, "optimisticFCP": 3721, "pessimisticFCP": 3721, "roughEstimateOfFMP": 6268, "optimisticFMP": 5112, "pessimisticFMP": 5112, "roughEstimateOfTTI": 32184, "optimisticTTI": 18527, "pessimisticTTI": 43261, "roughEstimateOfTTFCPUI": 17915, "optimisticTTFCPUI": 18527, "pessimisticTTFCPUI": 11553, "roughEstimateOfSI": 5681, "optimisticSI": 2509, "pessimisticSI": 3721, "roughEstimateOfEIL": 624, "optimisticEIL": 780, "pessimisticEIL": 780}, + {"url": "http://www.dion.ne.jp/", "roughEstimateOfFCP": 8474, "optimisticFCP": 4680, "pessimisticFCP": 10133, "roughEstimateOfFMP": 9086, "optimisticFMP": 4680, "pessimisticFMP": 10133, "roughEstimateOfTTI": 34706, "optimisticTTI": 14284, "pessimisticTTI": 54524, "roughEstimateOfTTFCPUI": 20617, "optimisticTTFCPUI": 14284, "pessimisticTTFCPUI": 23214, "roughEstimateOfSI": 17627, "optimisticSI": 8065, "pessimisticSI": 10133, "roughEstimateOfEIL": 1028, "optimisticEIL": 1285, "pessimisticEIL": 1285}, + {"url": "http://www.domaintools.com/", "roughEstimateOfFCP": 1837, "optimisticFCP": 1125, "pessimisticFCP": 1125, "roughEstimateOfFMP": 3227, "optimisticFMP": 1995, "pessimisticFMP": 2383, "roughEstimateOfTTI": 9578, "optimisticTTI": 7177, "pessimisticTTI": 8159, "roughEstimateOfTTFCPUI": 9578, "optimisticTTFCPUI": 7177, "pessimisticTTFCPUI": 8159, "roughEstimateOfSI": 9196, "optimisticSI": 6225, "pessimisticSI": 1125, "roughEstimateOfEIL": 1346, "optimisticEIL": 1682, "pessimisticEIL": 1682}, + {"url": "http://www.douban.com/", "roughEstimateOfFCP": 7125, "optimisticFCP": 5932, "pessimisticFCP": 5932, "roughEstimateOfFMP": 7129, "optimisticFMP": 5932, "pessimisticFMP": 5932, "roughEstimateOfTTI": 9324, "optimisticTTI": 7076, "pessimisticTTI": 7729, "roughEstimateOfTTFCPUI": 9324, "optimisticTTFCPUI": 7076, "pessimisticTTFCPUI": 7729, "roughEstimateOfSI": 9975, "optimisticSI": 4549, "pessimisticSI": 5932, "roughEstimateOfEIL": 558, "optimisticEIL": 697, "pessimisticEIL": 697}, + {"url": "http://www.ebay.com/", "roughEstimateOfFCP": 2893, "optimisticFCP": 2085, "pessimisticFCP": 2085, "roughEstimateOfFMP": 3089, "optimisticFMP": 2085, "pessimisticFMP": 2085, "roughEstimateOfTTI": 8923, "optimisticTTI": 6143, "pessimisticTTI": 8083, "roughEstimateOfTTFCPUI": 8923, "optimisticTTFCPUI": 6143, "pessimisticTTFCPUI": 8083, "roughEstimateOfSI": 3728, "optimisticSI": 1873, "pessimisticSI": 2085, "roughEstimateOfEIL": 187, "optimisticEIL": 233, "pessimisticEIL": 233}, + {"url": "https://www.ebs.in/IPS/", "roughEstimateOfFCP": 6659, "optimisticFCP": 3785, "pessimisticFCP": 7576, "roughEstimateOfFMP": 7545, "optimisticFMP": 4161, "pessimisticFMP": 7955, "roughEstimateOfTTI": 21766, "optimisticTTI": 6860, "pessimisticTTI": 35667, "roughEstimateOfTTFCPUI": 7561, "optimisticTTFCPUI": 6860, "pessimisticTTFCPUI": 4100, "roughEstimateOfSI": 10123, "optimisticSI": 3892, "pessimisticSI": 7576, "roughEstimateOfEIL": 298, "optimisticEIL": 373, "pessimisticEIL": 373}, + {"url": "http://www.espn.com/", "roughEstimateOfFCP": 2917, "optimisticFCP": 2106, "pessimisticFCP": 2106, "roughEstimateOfFMP": 4068, "optimisticFMP": 2106, "pessimisticFMP": 3700, "roughEstimateOfTTI": 24187, "optimisticTTI": 19439, "pessimisticTTI": 24275, "roughEstimateOfTTFCPUI": 23459, "optimisticTTFCPUI": 19439, "pessimisticTTFCPUI": 22656, "roughEstimateOfSI": 3785, "optimisticSI": 1904, "pessimisticSI": 2106, "roughEstimateOfEIL": 1316, "optimisticEIL": 1645, "pessimisticEIL": 1645}, + {"url": "http://www.facebook.com/", "roughEstimateOfFCP": 3443, "optimisticFCP": 2585, "pessimisticFCP": 2585, "roughEstimateOfFMP": 3614, "optimisticFMP": 2585, "pessimisticFMP": 2585, "roughEstimateOfTTI": 5666, "optimisticTTI": 3421, "pessimisticTTI": 4474, "roughEstimateOfTTFCPUI": 5666, "optimisticTTFCPUI": 3421, "pessimisticTTFCPUI": 4474, "roughEstimateOfSI": 3669, "optimisticSI": 1599, "pessimisticSI": 2585, "roughEstimateOfEIL": 65, "optimisticEIL": 82, "pessimisticEIL": 82}, + {"url": "http://www.fc2.com/", "roughEstimateOfFCP": 3066, "optimisticFCP": 2242, "pessimisticFCP": 2242, "roughEstimateOfFMP": 3254, "optimisticFMP": 2242, "pessimisticFMP": 2242, "roughEstimateOfTTI": 4251, "optimisticTTI": 2440, "pessimisticTTI": 2638, "roughEstimateOfTTFCPUI": 4251, "optimisticTTFCPUI": 2440, "pessimisticTTFCPUI": 2638, "roughEstimateOfSI": 3231, "optimisticSI": 1446, "pessimisticSI": 2242, "roughEstimateOfEIL": 13, "optimisticEIL": 16, "pessimisticEIL": 16}, + {"url": "http://www.filestube.com/", "roughEstimateOfFCP": 9184, "optimisticFCP": 7803, "pessimisticFCP": 7803, "roughEstimateOfFMP": 11107, "optimisticFMP": 9264, "pessimisticFMP": 10063, "roughEstimateOfTTI": 25406, "optimisticTTI": 16639, "pessimisticTTI": 30716, "roughEstimateOfTTFCPUI": 18010, "optimisticTTFCPUI": 16639, "pessimisticTTFCPUI": 14282, "roughEstimateOfSI": 11939, "optimisticSI": 5083, "pessimisticSI": 7803, "roughEstimateOfEIL": 1198, "optimisticEIL": 1497, "pessimisticEIL": 1497}, + {"url": "http://www.foxnews.com/", "roughEstimateOfFCP": 3447, "optimisticFCP": 2588, "pessimisticFCP": 2588, "roughEstimateOfFMP": 3617, "optimisticFMP": 2588, "pessimisticFMP": 2588, "roughEstimateOfTTI": 30132, "optimisticTTI": 20217, "pessimisticTTI": 36447, "roughEstimateOfTTFCPUI": 28467, "optimisticTTFCPUI": 20217, "pessimisticTTFCPUI": 32749, "roughEstimateOfSI": 11115, "optimisticSI": 6916, "pessimisticSI": 2588, "roughEstimateOfEIL": 1306, "optimisticEIL": 1632, "pessimisticEIL": 1632}, + {"url": "http://www.getpersonas.com/", "roughEstimateOfFCP": 4265, "optimisticFCP": 3321, "pessimisticFCP": 3344, "roughEstimateOfFMP": 6777, "optimisticFMP": 5597, "pessimisticFMP": 5597, "roughEstimateOfTTI": 12397, "optimisticTTI": 9001, "pessimisticTTI": 11991, "roughEstimateOfTTFCPUI": 12397, "optimisticTTFCPUI": 9001, "pessimisticTTFCPUI": 11991, "roughEstimateOfSI": 4265, "optimisticSI": 1509, "pessimisticSI": 3344, "roughEstimateOfEIL": 1510, "optimisticEIL": 1888, "pessimisticEIL": 1888}, + {"url": "http://www.globo.com/", "roughEstimateOfFCP": 3558, "optimisticFCP": 2689, "pessimisticFCP": 2689, "roughEstimateOfFMP": 4217, "optimisticFMP": 2957, "pessimisticFMP": 3310, "roughEstimateOfTTI": 20958, "optimisticTTI": 15884, "pessimisticTTI": 21839, "roughEstimateOfTTFCPUI": 20958, "optimisticTTFCPUI": 15884, "pessimisticTTFCPUI": 21839, "roughEstimateOfSI": 4469, "optimisticSI": 2122, "pessimisticSI": 2689, "roughEstimateOfEIL": 2070, "optimisticEIL": 2588, "pessimisticEIL": 2588}, + {"url": "http://www.gmx.net/", "roughEstimateOfFCP": 2291, "optimisticFCP": 1537, "pessimisticFCP": 1537, "roughEstimateOfFMP": 2514, "optimisticFMP": 1537, "pessimisticFMP": 1537, "roughEstimateOfTTI": 9616, "optimisticTTI": 6627, "pessimisticTTI": 8978, "roughEstimateOfTTFCPUI": 9616, "optimisticTTFCPUI": 6627, "pessimisticTTFCPUI": 8978, "roughEstimateOfSI": 4970, "optimisticSI": 3015, "pessimisticSI": 1537, "roughEstimateOfEIL": 453, "optimisticEIL": 566, "pessimisticEIL": 566}, + {"url": "http://www.hatena.ne.jp/", "roughEstimateOfFCP": 1853, "optimisticFCP": 1025, "pessimisticFCP": 1276, "roughEstimateOfFMP": 2200, "optimisticFMP": 1188, "pessimisticFMP": 1276, "roughEstimateOfTTI": 22065, "optimisticTTI": 10950, "pessimisticTTI": 30878, "roughEstimateOfTTFCPUI": 14902, "optimisticTTFCPUI": 10950, "pessimisticTTFCPUI": 14960, "roughEstimateOfSI": 4530, "optimisticSI": 2821, "pessimisticSI": 1276, "roughEstimateOfEIL": 194, "optimisticEIL": 242, "pessimisticEIL": 242}, + {"url": "http://www.hexun.com/", "roughEstimateOfFCP": 4206, "optimisticFCP": 3278, "pessimisticFCP": 3278, "roughEstimateOfFMP": 5261, "optimisticFMP": 3278, "pessimisticFMP": 4809, "roughEstimateOfTTI": 8895, "optimisticTTI": 5514, "pessimisticTTI": 8858, "roughEstimateOfTTFCPUI": 8895, "optimisticTTFCPUI": 5514, "pessimisticTTFCPUI": 8858, "roughEstimateOfSI": 12760, "optimisticSI": 7771, "pessimisticSI": 3278, "roughEstimateOfEIL": 64, "optimisticEIL": 71, "pessimisticEIL": 88}, + {"url": "http://www.hotfile.com/", "roughEstimateOfFCP": 4943, "optimisticFCP": 3376, "pessimisticFCP": 4634, "roughEstimateOfFMP": 5200, "optimisticFMP": 3376, "pessimisticFMP": 4634, "roughEstimateOfTTI": 9928, "optimisticTTI": 5310, "pessimisticTTI": 11426, "roughEstimateOfTTFCPUI": 9928, "optimisticTTFCPUI": 5310, "pessimisticTTFCPUI": 11426, "roughEstimateOfSI": 9493, "optimisticSI": 4807, "pessimisticSI": 4634, "roughEstimateOfEIL": 100, "optimisticEIL": 126, "pessimisticEIL": 125}, + {"url": "http://www.hp.com/", "roughEstimateOfFCP": 8474, "optimisticFCP": 5962, "pessimisticFCP": 8594, "roughEstimateOfFMP": 9882, "optimisticFMP": 7293, "pessimisticFMP": 9499, "roughEstimateOfTTI": 17501, "optimisticTTI": 13912, "pessimisticTTI": 16785, "roughEstimateOfTTFCPUI": 17501, "optimisticTTFCPUI": 13912, "pessimisticTTFCPUI": 16785, "roughEstimateOfSI": 8693, "optimisticSI": 2398, "pessimisticSI": 8594, "roughEstimateOfEIL": 414, "optimisticEIL": 517, "pessimisticEIL": 517}, + {"url": "http://www.huffingtonpost.com/", "roughEstimateOfFCP": 3291, "optimisticFCP": 2446, "pessimisticFCP": 2446, "roughEstimateOfFMP": 3468, "optimisticFMP": 2446, "pessimisticFMP": 2446, "roughEstimateOfTTI": 20378, "optimisticTTI": 15398, "pessimisticTTI": 21198, "roughEstimateOfTTFCPUI": 20378, "optimisticTTFCPUI": 15398, "pessimisticTTFCPUI": 21198, "roughEstimateOfSI": 4104, "optimisticSI": 1974, "pessimisticSI": 2446, "roughEstimateOfEIL": 373, "optimisticEIL": 466, "pessimisticEIL": 466}, + {"url": "http://www.hulu.com/", "roughEstimateOfFCP": 13069, "optimisticFCP": 9026, "pessimisticFCP": 14108, "roughEstimateOfFMP": 15811, "optimisticFMP": 9805, "pessimisticFMP": 17498, "roughEstimateOfTTI": 25034, "optimisticTTI": 19714, "pessimisticTTI": 25790, "roughEstimateOfTTFCPUI": 25034, "optimisticTTFCPUI": 19714, "pessimisticTTFCPUI": 25790, "roughEstimateOfSI": 14682, "optimisticSI": 4115, "pessimisticSI": 14108, "roughEstimateOfEIL": 1468, "optimisticEIL": 1835, "pessimisticEIL": 1835}, + {"url": "http://www.iciba.com/", "roughEstimateOfFCP": 1436, "optimisticFCP": 845, "pessimisticFCP": 845, "roughEstimateOfFMP": 1647, "optimisticFMP": 845, "pessimisticFMP": 845, "roughEstimateOfTTI": 4294, "optimisticTTI": 2130, "pessimisticTTI": 3146, "roughEstimateOfTTFCPUI": 4294, "optimisticTTFCPUI": 2130, "pessimisticTTFCPUI": 3146, "roughEstimateOfSI": 4622, "optimisticSI": 3088, "pessimisticSI": 845, "roughEstimateOfEIL": 394, "optimisticEIL": 492, "pessimisticEIL": 492}, + {"url": "http://www.ifeng.com/", "roughEstimateOfFCP": 3827, "optimisticFCP": 2934, "pessimisticFCP": 2934, "roughEstimateOfFMP": 3980, "optimisticFMP": 2934, "pessimisticFMP": 2934, "roughEstimateOfTTI": 6299, "optimisticTTI": 2934, "pessimisticTTI": 6530, "roughEstimateOfTTFCPUI": 6275, "optimisticTTFCPUI": 2894, "pessimisticTTFCPUI": 6530, "roughEstimateOfSI": 3827, "optimisticSI": 879, "pessimisticSI": 2934, "roughEstimateOfEIL": 13, "optimisticEIL": 16, "pessimisticEIL": 16}, + {"url": "http://www.imageshack.us/", "roughEstimateOfFCP": 7728, "optimisticFCP": 6409, "pessimisticFCP": 6565, "roughEstimateOfFMP": 7728, "optimisticFMP": 6409, "pessimisticFMP": 6565, "roughEstimateOfTTI": 10364, "optimisticTTI": 8218, "pessimisticTTI": 8520, "roughEstimateOfTTFCPUI": 10364, "optimisticTTFCPUI": 8218, "pessimisticTTFCPUI": 8520, "roughEstimateOfSI": 7728, "optimisticSI": 1817, "pessimisticSI": 6565, "roughEstimateOfEIL": 1491, "optimisticEIL": 1864, "pessimisticEIL": 1864}, + {"url": "http://www.irs.gov/", "roughEstimateOfFCP": 3303, "optimisticFCP": 2457, "pessimisticFCP": 2457, "roughEstimateOfFMP": 4559, "optimisticFMP": 3257, "pessimisticFMP": 3656, "roughEstimateOfTTI": 13260, "optimisticTTI": 9497, "pessimisticTTI": 13248, "roughEstimateOfTTFCPUI": 13260, "optimisticTTFCPUI": 9497, "pessimisticTTFCPUI": 13248, "roughEstimateOfSI": 3364, "optimisticSI": 1440, "pessimisticSI": 2457, "roughEstimateOfEIL": 225, "optimisticEIL": 281, "pessimisticEIL": 281}, + {"url": "http://www.java.com/", "roughEstimateOfFCP": 1646, "optimisticFCP": 968, "pessimisticFCP": 968, "roughEstimateOfFMP": 1888, "optimisticFMP": 968, "pessimisticFMP": 968, "roughEstimateOfTTI": 4262, "optimisticTTI": 2210, "pessimisticTTI": 2968, "roughEstimateOfTTFCPUI": 4262, "optimisticTTFCPUI": 2210, "pessimisticTTFCPUI": 2968, "roughEstimateOfSI": 2177, "optimisticSI": 1284, "pessimisticSI": 968, "roughEstimateOfEIL": 13, "optimisticEIL": 16, "pessimisticEIL": 16}, + {"url": "http://www.linkedin.com/", "roughEstimateOfFCP": 5024, "optimisticFCP": 4021, "pessimisticFCP": 4021, "roughEstimateOfFMP": 5123, "optimisticFMP": 4021, "pessimisticFMP": 4021, "roughEstimateOfTTI": 6240, "optimisticTTI": 4323, "pessimisticTTI": 4547, "roughEstimateOfTTFCPUI": 6240, "optimisticTTFCPUI": 4323, "pessimisticTTFCPUI": 4547, "roughEstimateOfSI": 5024, "optimisticSI": 1074, "pessimisticSI": 4021, "roughEstimateOfEIL": 1598, "optimisticEIL": 1998, "pessimisticEIL": 1998}, + {"url": "http://www.livedoor.jp/", "roughEstimateOfFCP": 3333, "optimisticFCP": 2484, "pessimisticFCP": 2484, "roughEstimateOfFMP": 3509, "optimisticFMP": 2484, "pessimisticFMP": 2484, "roughEstimateOfTTI": 16561, "optimisticTTI": 10406, "pessimisticTTI": 19372, "roughEstimateOfTTFCPUI": 14360, "optimisticTTFCPUI": 10406, "pessimisticTTFCPUI": 14480, "roughEstimateOfSI": 7328, "optimisticSI": 4260, "pessimisticSI": 2484, "roughEstimateOfEIL": 221, "optimisticEIL": 276, "pessimisticEIL": 276}, + {"url": "http://www.liveperson.net/", "roughEstimateOfFCP": 11748, "optimisticFCP": 10045, "pessimisticFCP": 10241, "roughEstimateOfFMP": 12183, "optimisticFMP": 10634, "pessimisticFMP": 10830, "roughEstimateOfTTI": 34702, "optimisticTTI": 18360, "pessimisticTTI": 49081, "roughEstimateOfTTFCPUI": 13195, "optimisticTTFCPUI": 8512, "pessimisticTTFCPUI": 14417, "roughEstimateOfSI": 11748, "optimisticSI": 2248, "pessimisticSI": 10241, "roughEstimateOfEIL": 354, "optimisticEIL": 442, "pessimisticEIL": 442}, + {"url": "http://www.mail.ru/", "roughEstimateOfFCP": 5275, "optimisticFCP": 4250, "pessimisticFCP": 4250, "roughEstimateOfFMP": 5363, "optimisticFMP": 4250, "pessimisticFMP": 4250, "roughEstimateOfTTI": 11830, "optimisticTTI": 8391, "pessimisticTTI": 11546, "roughEstimateOfTTFCPUI": 11830, "optimisticTTFCPUI": 8391, "pessimisticTTFCPUI": 11546, "roughEstimateOfSI": 7902, "optimisticSI": 3849, "pessimisticSI": 4250, "roughEstimateOfEIL": 48, "optimisticEIL": 60, "pessimisticEIL": 60}, + {"url": "http://www.maktoob.com/", "roughEstimateOfFCP": 3986, "optimisticFCP": 3078, "pessimisticFCP": 3078, "roughEstimateOfFMP": 4132, "optimisticFMP": 3078, "pessimisticFMP": 3078, "roughEstimateOfTTI": 12242, "optimisticTTI": 9682, "pessimisticTTI": 10739, "roughEstimateOfTTFCPUI": 12242, "optimisticTTFCPUI": 9682, "pessimisticTTFCPUI": 10739, "roughEstimateOfSI": 4716, "optimisticSI": 2118, "pessimisticSI": 3078, "roughEstimateOfEIL": 265, "optimisticEIL": 332, "pessimisticEIL": 332}, + {"url": "http://www.marketgid.com/", "roughEstimateOfFCP": 3848, "optimisticFCP": 2952, "pessimisticFCP": 2952, "roughEstimateOfFMP": 6657, "optimisticFMP": 5483, "pessimisticFMP": 5483, "roughEstimateOfTTI": 9770, "optimisticTTI": 7073, "pessimisticTTI": 8723, "roughEstimateOfTTFCPUI": 9770, "optimisticTTFCPUI": 7073, "pessimisticTTFCPUI": 8723, "roughEstimateOfSI": 4795, "optimisticSI": 2233, "pessimisticSI": 2952, "roughEstimateOfEIL": 226, "optimisticEIL": 283, "pessimisticEIL": 283}, + {"url": "http://www.metacafe.com/", "roughEstimateOfFCP": 1973, "optimisticFCP": 1248, "pessimisticFCP": 1248, "roughEstimateOfFMP": 2213, "optimisticFMP": 1250, "pessimisticFMP": 1250, "roughEstimateOfTTI": 16192, "optimisticTTI": 12260, "pessimisticTTI": 16080, "roughEstimateOfTTFCPUI": 16192, "optimisticTTFCPUI": 12260, "pessimisticTTFCPUI": 16080, "roughEstimateOfSI": 2512, "optimisticSI": 1393, "pessimisticSI": 1248, "roughEstimateOfEIL": 361, "optimisticEIL": 451, "pessimisticEIL": 451}, + {"url": "http://www.metrolyrics.com/", "roughEstimateOfFCP": 3401, "optimisticFCP": 2456, "pessimisticFCP": 2654, "roughEstimateOfFMP": 3598, "optimisticFMP": 2456, "pessimisticFMP": 2654, "roughEstimateOfTTI": 54608, "optimisticTTI": 38080, "pessimisticTTI": 67023, "roughEstimateOfTTFCPUI": 28570, "optimisticTTFCPUI": 38080, "pessimisticTTFCPUI": 9160, "roughEstimateOfSI": 14965, "optimisticSI": 9636, "pessimisticSI": 2654, "roughEstimateOfEIL": 1134, "optimisticEIL": 1417, "pessimisticEIL": 1417}, + {"url": "http://www.mlb.com/", "roughEstimateOfFCP": 3235, "optimisticFCP": 2124, "pessimisticFCP": 2722, "roughEstimateOfFMP": 3489, "optimisticFMP": 2124, "pessimisticFMP": 2722, "roughEstimateOfTTI": 31734, "optimisticTTI": 25537, "pessimisticTTI": 32914, "roughEstimateOfTTFCPUI": 20685, "optimisticTTFCPUI": 25537, "pessimisticTTFCPUI": 8361, "roughEstimateOfSI": 7242, "optimisticSI": 4088, "pessimisticSI": 2722, "roughEstimateOfEIL": 761, "optimisticEIL": 951, "pessimisticEIL": 951}, + {"url": "http://www.mop.com/", "roughEstimateOfFCP": 7496, "optimisticFCP": 5780, "pessimisticFCP": 6856, "roughEstimateOfFMP": 7614, "optimisticFMP": 5780, "pessimisticFMP": 6856, "roughEstimateOfTTI": 20885, "optimisticTTI": 9659, "pessimisticTTI": 29977, "roughEstimateOfTTFCPUI": 8565, "optimisticTTFCPUI": 9659, "pessimisticTTFCPUI": 2599, "roughEstimateOfSI": 9814, "optimisticSI": 4006, "pessimisticSI": 6856, "roughEstimateOfEIL": 828, "optimisticEIL": 1035, "pessimisticEIL": 1035}, + {"url": "http://www.mozilla.org/", "roughEstimateOfFCP": 2556, "optimisticFCP": 1455, "pessimisticFCP": 2166, "roughEstimateOfFMP": 3307, "optimisticFMP": 1455, "pessimisticFMP": 2919, "roughEstimateOfTTI": 6322, "optimisticTTI": 3850, "pessimisticTTI": 5361, "roughEstimateOfTTFCPUI": 6322, "optimisticTTFCPUI": 3850, "pessimisticTTFCPUI": 5361, "roughEstimateOfSI": 2798, "optimisticSI": 1172, "pessimisticSI": 2166, "roughEstimateOfEIL": 842, "optimisticEIL": 1053, "pessimisticEIL": 1053}, + {"url": "http://www.msn.com/", "roughEstimateOfFCP": 2651, "optimisticFCP": 1865, "pessimisticFCP": 1865, "roughEstimateOfFMP": 2976, "optimisticFMP": 1865, "pessimisticFMP": 2061, "roughEstimateOfTTI": 11598, "optimisticTTI": 8171, "pessimisticTTI": 11324, "roughEstimateOfTTFCPUI": 11598, "optimisticTTFCPUI": 8171, "pessimisticTTFCPUI": 11324, "roughEstimateOfSI": 3691, "optimisticSI": 1949, "pessimisticSI": 1865, "roughEstimateOfEIL": 313, "optimisticEIL": 391, "pessimisticEIL": 391}, + {"url": "http://www.netflix.com/", "roughEstimateOfFCP": 2695, "optimisticFCP": 1904, "pessimisticFCP": 1904, "roughEstimateOfFMP": 2899, "optimisticFMP": 1904, "pessimisticFMP": 1904, "roughEstimateOfTTI": 6407, "optimisticTTI": 4163, "pessimisticTTI": 5131, "roughEstimateOfTTFCPUI": 6407, "optimisticTTFCPUI": 4163, "pessimisticTTFCPUI": 5131, "roughEstimateOfSI": 2966, "optimisticSI": 1413, "pessimisticSI": 1904, "roughEstimateOfEIL": 393, "optimisticEIL": 491, "pessimisticEIL": 491}, + {"url": "http://www.nih.gov/", "roughEstimateOfFCP": 5054, "optimisticFCP": 3606, "pessimisticFCP": 4582, "roughEstimateOfFMP": 5272, "optimisticFMP": 3606, "pessimisticFMP": 4582, "roughEstimateOfTTI": 9227, "optimisticTTI": 5225, "pessimisticTTI": 9981, "roughEstimateOfTTFCPUI": 9227, "optimisticTTFCPUI": 5225, "pessimisticTTFCPUI": 9981, "roughEstimateOfSI": 6657, "optimisticSI": 2807, "pessimisticSI": 4582, "roughEstimateOfEIL": 106, "optimisticEIL": 116, "pessimisticEIL": 148}, + {"url": "http://www.ning.com/", "roughEstimateOfFCP": 2922, "optimisticFCP": 2111, "pessimisticFCP": 2111, "roughEstimateOfFMP": 3424, "optimisticFMP": 2404, "pessimisticFMP": 2404, "roughEstimateOfTTI": 15624, "optimisticTTI": 10628, "pessimisticTTI": 16995, "roughEstimateOfTTFCPUI": 15624, "optimisticTTFCPUI": 10628, "pessimisticTTFCPUI": 16995, "roughEstimateOfSI": 3403, "optimisticSI": 1629, "pessimisticSI": 2111, "roughEstimateOfEIL": 253, "optimisticEIL": 316, "pessimisticEIL": 316}, + {"url": "http://www.nokia.com/", "roughEstimateOfFCP": 6305, "optimisticFCP": 5186, "pessimisticFCP": 5186, "roughEstimateOfFMP": 6346, "optimisticFMP": 5186, "pessimisticFMP": 5186, "roughEstimateOfTTI": 14376, "optimisticTTI": 9886, "pessimisticTTI": 15209, "roughEstimateOfTTFCPUI": 14376, "optimisticTTFCPUI": 9886, "pessimisticTTFCPUI": 15209, "roughEstimateOfSI": 6305, "optimisticSI": 2069, "pessimisticSI": 5186, "roughEstimateOfEIL": 211, "optimisticEIL": 264, "pessimisticEIL": 264}, + {"url": "http://www.ocn.ne.jp/", "roughEstimateOfFCP": 3617, "optimisticFCP": 2743, "pessimisticFCP": 2743, "roughEstimateOfFMP": 3780, "optimisticFMP": 2743, "pessimisticFMP": 2743, "roughEstimateOfTTI": 9278, "optimisticTTI": 5906, "pessimisticTTI": 9186, "roughEstimateOfTTFCPUI": 9278, "optimisticTTFCPUI": 5906, "pessimisticTTFCPUI": 9186, "roughEstimateOfSI": 5506, "optimisticSI": 2838, "pessimisticSI": 2743, "roughEstimateOfEIL": 75, "optimisticEIL": 94, "pessimisticEIL": 94}, + {"url": "http://www.onet.pl/", "roughEstimateOfFCP": 4230, "optimisticFCP": 3162, "pessimisticFCP": 3465, "roughEstimateOfFMP": 5355, "optimisticFMP": 4070, "pessimisticFMP": 4373, "roughEstimateOfTTI": 20585, "optimisticTTI": 13386, "pessimisticTTI": 24342, "roughEstimateOfTTFCPUI": 15282, "optimisticTTFCPUI": 13386, "pessimisticTTFCPUI": 12556, "roughEstimateOfSI": 14603, "optimisticSI": 9001, "pessimisticSI": 3465, "roughEstimateOfEIL": 1150, "optimisticEIL": 1437, "pessimisticEIL": 1437}, + {"url": "http://www.optmd.com/", "roughEstimateOfFCP": 1227, "optimisticFCP": 660, "pessimisticFCP": 870, "roughEstimateOfFMP": 1413, "optimisticFMP": 660, "pessimisticFMP": 870, "roughEstimateOfTTI": 1874, "optimisticTTI": 674, "pessimisticTTI": 870, "roughEstimateOfTTFCPUI": 1806, "optimisticTTFCPUI": 674, "pessimisticTTFCPUI": 718, "roughEstimateOfSI": 1227, "optimisticSI": 542, "pessimisticSI": 870, "roughEstimateOfEIL": 13, "optimisticEIL": 16, "pessimisticEIL": 16}, + {"url": "http://www.orange.fr/", "roughEstimateOfFCP": 3677, "optimisticFCP": 2319, "pessimisticFCP": 3372, "roughEstimateOfFMP": 4143, "optimisticFMP": 2319, "pessimisticFMP": 3665, "roughEstimateOfTTI": 14786, "optimisticTTI": 10328, "pessimisticTTI": 15532, "roughEstimateOfTTFCPUI": 14786, "optimisticTTFCPUI": 10328, "pessimisticTTFCPUI": 15532, "roughEstimateOfSI": 8536, "optimisticSI": 4710, "pessimisticSI": 3372, "roughEstimateOfEIL": 433, "optimisticEIL": 541, "pessimisticEIL": 541}, + {"url": "http://www.orkut.com/", "roughEstimateOfFCP": 1875, "optimisticFCP": 1120, "pessimisticFCP": 1206, "roughEstimateOfFMP": 2128, "optimisticFMP": 1120, "pessimisticFMP": 1206, "roughEstimateOfTTI": 3108, "optimisticTTI": 1436, "pessimisticTTI": 1436, "roughEstimateOfTTFCPUI": 3108, "optimisticTTFCPUI": 1436, "pessimisticTTFCPUI": 1436, "roughEstimateOfSI": 1875, "optimisticSI": 873, "pessimisticSI": 1206, "roughEstimateOfEIL": 13, "optimisticEIL": 16, "pessimisticEIL": 16}, + {"url": "http://www.partypoker.com/", "roughEstimateOfFCP": 6448, "optimisticFCP": 5184, "pessimisticFCP": 5476, "roughEstimateOfFMP": 6518, "optimisticFMP": 5184, "pessimisticFMP": 5476, "roughEstimateOfTTI": 18808, "optimisticTTI": 12254, "pessimisticTTI": 21900, "roughEstimateOfTTFCPUI": 13899, "optimisticTTFCPUI": 12254, "pessimisticTTFCPUI": 10993, "roughEstimateOfSI": 10690, "optimisticSI": 5272, "pessimisticSI": 5476, "roughEstimateOfEIL": 217, "optimisticEIL": 293, "pessimisticEIL": 250}, + {"url": "http://www.pcpop.com/", "roughEstimateOfFCP": 2910, "optimisticFCP": 2008, "pessimisticFCP": 2210, "roughEstimateOfFMP": 3130, "optimisticFMP": 2008, "pessimisticFMP": 2210, "roughEstimateOfTTI": 8601, "optimisticTTI": 4392, "pessimisticTTI": 9701, "roughEstimateOfTTFCPUI": 8601, "optimisticTTFCPUI": 4392, "pessimisticTTFCPUI": 9701, "roughEstimateOfSI": 5446, "optimisticSI": 3042, "pessimisticSI": 2210, "roughEstimateOfEIL": 80, "optimisticEIL": 100, "pessimisticEIL": 100}, + {"url": "http://www.pdfqueen.com/", "roughEstimateOfFCP": 2735, "optimisticFCP": 1857, "pessimisticFCP": 2042, "roughEstimateOfFMP": 2961, "optimisticFMP": 1857, "pessimisticFMP": 2042, "roughEstimateOfTTI": 4873, "optimisticTTI": 3053, "pessimisticTTI": 3203, "roughEstimateOfTTFCPUI": 4873, "optimisticTTFCPUI": 3053, "pessimisticTTFCPUI": 3203, "roughEstimateOfSI": 2735, "optimisticSI": 816, "pessimisticSI": 2042, "roughEstimateOfEIL": 13, "optimisticEIL": 16, "pessimisticEIL": 16}, + {"url": "http://www.pptv.com/", "roughEstimateOfFCP": 2828, "optimisticFCP": 2025, "pessimisticFCP": 2025, "roughEstimateOfFMP": 3026, "optimisticFMP": 2025, "pessimisticFMP": 2025, "roughEstimateOfTTI": 10247, "optimisticTTI": 5951, "pessimisticTTI": 11281, "roughEstimateOfTTFCPUI": 6786, "optimisticTTFCPUI": 5951, "pessimisticTTFCPUI": 3590, "roughEstimateOfSI": 11215, "optimisticSI": 7249, "pessimisticSI": 2025, "roughEstimateOfEIL": 623, "optimisticEIL": 779, "pessimisticEIL": 779}, + {"url": "http://www.rakuten.co.jp/", "roughEstimateOfFCP": 4183, "optimisticFCP": 3257, "pessimisticFCP": 3257, "roughEstimateOfFMP": 4320, "optimisticFMP": 3257, "pessimisticFMP": 3257, "roughEstimateOfTTI": 24817, "optimisticTTI": 13328, "pessimisticTTI": 33822, "roughEstimateOfTTFCPUI": 13639, "optimisticTTFCPUI": 13328, "pessimisticTTFCPUI": 8981, "roughEstimateOfSI": 5392, "optimisticSI": 2518, "pessimisticSI": 3257, "roughEstimateOfEIL": 1283, "optimisticEIL": 1604, "pessimisticEIL": 1604}, + {"url": "http://www.rakuten.ne.jp/", "roughEstimateOfFCP": 2959, "optimisticFCP": 2086, "pessimisticFCP": 2213, "roughEstimateOfFMP": 3167, "optimisticFMP": 2086, "pessimisticFMP": 2213, "roughEstimateOfTTI": 24461, "optimisticTTI": 12581, "pessimisticTTI": 34027, "roughEstimateOfTTFCPUI": 12636, "optimisticTTFCPUI": 12581, "pessimisticTTFCPUI": 7749, "roughEstimateOfSI": 4343, "optimisticSI": 2253, "pessimisticSI": 2213, "roughEstimateOfEIL": 1719, "optimisticEIL": 2149, "pessimisticEIL": 2149}, + {"url": "http://www.scribd.com/", "roughEstimateOfFCP": 2824, "optimisticFCP": 2022, "pessimisticFCP": 2022, "roughEstimateOfFMP": 4270, "optimisticFMP": 3208, "pessimisticFMP": 3210, "roughEstimateOfTTI": 13782, "optimisticTTI": 10227, "pessimisticTTI": 13435, "roughEstimateOfTTFCPUI": 13782, "optimisticTTFCPUI": 10227, "pessimisticTTFCPUI": 13435, "roughEstimateOfSI": 3386, "optimisticSI": 1658, "pessimisticSI": 2022, "roughEstimateOfEIL": 833, "optimisticEIL": 1041, "pessimisticEIL": 1041}, + {"url": "http://www.shopping.com/", "roughEstimateOfFCP": 2126, "optimisticFCP": 1387, "pessimisticFCP": 1387, "roughEstimateOfFMP": 2357, "optimisticFMP": 1387, "pessimisticFMP": 1387, "roughEstimateOfTTI": 3356, "optimisticTTI": 1532, "pessimisticTTI": 1858, "roughEstimateOfTTFCPUI": 3356, "optimisticTTFCPUI": 1532, "pessimisticTTFCPUI": 1858, "roughEstimateOfSI": 2126, "optimisticSI": 902, "pessimisticSI": 1387, "roughEstimateOfEIL": 13, "optimisticEIL": 16, "pessimisticEIL": 16}, + {"url": "http://www.skype.com/", "roughEstimateOfFCP": 4738, "optimisticFCP": 3762, "pessimisticFCP": 3762, "roughEstimateOfFMP": 4850, "optimisticFMP": 3762, "pessimisticFMP": 3762, "roughEstimateOfTTI": 8469, "optimisticTTI": 5911, "pessimisticTTI": 7382, "roughEstimateOfTTFCPUI": 8469, "optimisticTTFCPUI": 5911, "pessimisticTTFCPUI": 7382, "roughEstimateOfSI": 5178, "optimisticSI": 2131, "pessimisticSI": 3762, "roughEstimateOfEIL": 111, "optimisticEIL": 139, "pessimisticEIL": 139}, + {"url": "http://www.so-net.ne.jp/", "roughEstimateOfFCP": 5131, "optimisticFCP": 3169, "pessimisticFCP": 5260, "roughEstimateOfFMP": 5482, "optimisticFMP": 3169, "pessimisticFMP": 5260, "roughEstimateOfTTI": 13060, "optimisticTTI": 9802, "pessimisticTTI": 12397, "roughEstimateOfTTFCPUI": 13060, "optimisticTTFCPUI": 9802, "pessimisticTTFCPUI": 12397, "roughEstimateOfSI": 8408, "optimisticSI": 3742, "pessimisticSI": 5260, "roughEstimateOfEIL": 1798, "optimisticEIL": 2248, "pessimisticEIL": 2248}, + {"url": "http://www.softonic.com/", "roughEstimateOfFCP": 4230, "optimisticFCP": 3300, "pessimisticFCP": 3300, "roughEstimateOfFMP": 4365, "optimisticFMP": 3300, "pessimisticFMP": 3300, "roughEstimateOfTTI": 19507, "optimisticTTI": 15223, "pessimisticTTI": 19496, "roughEstimateOfTTFCPUI": 19507, "optimisticTTFCPUI": 15223, "pessimisticTTFCPUI": 19496, "roughEstimateOfSI": 14189, "optimisticSI": 8782, "pessimisticSI": 3300, "roughEstimateOfEIL": 317, "optimisticEIL": 396, "pessimisticEIL": 396}, + {"url": "http://www.sogou.com/", "roughEstimateOfFCP": 3025, "optimisticFCP": 2204, "pessimisticFCP": 2204, "roughEstimateOfFMP": 3215, "optimisticFMP": 2204, "pessimisticFMP": 2204, "roughEstimateOfTTI": 6205, "optimisticTTI": 3522, "pessimisticTTI": 5538, "roughEstimateOfTTFCPUI": 6205, "optimisticTTFCPUI": 3522, "pessimisticTTFCPUI": 5538, "roughEstimateOfSI": 6341, "optimisticSI": 3684, "pessimisticSI": 2204, "roughEstimateOfEIL": 261, "optimisticEIL": 326, "pessimisticEIL": 326}, + {"url": "http://www.soso.com/", "roughEstimateOfFCP": 2360, "optimisticFCP": 1490, "pessimisticFCP": 1733, "roughEstimateOfFMP": 2610, "optimisticFMP": 1490, "pessimisticFMP": 1733, "roughEstimateOfTTI": 7252, "optimisticTTI": 3940, "pessimisticTTI": 7306, "roughEstimateOfTTFCPUI": 6382, "optimisticTTFCPUI": 3940, "pessimisticTTFCPUI": 5373, "roughEstimateOfSI": 4431, "optimisticSI": 2539, "pessimisticSI": 1733, "roughEstimateOfEIL": 434, "optimisticEIL": 543, "pessimisticEIL": 543}, + {"url": "http://www.symantec.com/", "roughEstimateOfFCP": 4911, "optimisticFCP": 3824, "pessimisticFCP": 4033, "roughEstimateOfFMP": 5041, "optimisticFMP": 3824, "pessimisticFMP": 4033, "roughEstimateOfTTI": 18178, "optimisticTTI": 13591, "pessimisticTTI": 18718, "roughEstimateOfTTFCPUI": 18178, "optimisticTTFCPUI": 13591, "pessimisticTTFCPUI": 18718, "roughEstimateOfSI": 7132, "optimisticSI": 3400, "pessimisticSI": 4033, "roughEstimateOfEIL": 2678, "optimisticEIL": 3348, "pessimisticEIL": 3348}, + {"url": "http://www.t-online.de/", "roughEstimateOfFCP": 4892, "optimisticFCP": 3765, "pessimisticFCP": 4065, "roughEstimateOfFMP": 5827, "optimisticFMP": 3765, "pessimisticFMP": 5388, "roughEstimateOfTTI": 25446, "optimisticTTI": 19453, "pessimisticTTI": 27054, "roughEstimateOfTTFCPUI": 25446, "optimisticTTFCPUI": 19453, "pessimisticTTFCPUI": 27054, "roughEstimateOfSI": 9068, "optimisticSI": 4768, "pessimisticSI": 4065, "roughEstimateOfEIL": 397, "optimisticEIL": 497, "pessimisticEIL": 497}, + {"url": "http://www.tabelog.com/", "roughEstimateOfFCP": 3670, "optimisticFCP": 2323, "pessimisticFCP": 3351, "roughEstimateOfFMP": 3956, "optimisticFMP": 2323, "pessimisticFMP": 3351, "roughEstimateOfTTI": 13369, "optimisticTTI": 8904, "pessimisticTTI": 14283, "roughEstimateOfTTFCPUI": 13369, "optimisticTTFCPUI": 8904, "pessimisticTTFCPUI": 14283, "roughEstimateOfSI": 10077, "optimisticSI": 5820, "pessimisticSI": 3351, "roughEstimateOfEIL": 912, "optimisticEIL": 522, "pessimisticEIL": 1758}, + {"url": "http://www.thefreedictionary.com/", "roughEstimateOfFCP": 1805, "optimisticFCP": 1096, "pessimisticFCP": 1096, "roughEstimateOfFMP": 2050, "optimisticFMP": 1096, "pessimisticFMP": 1096, "roughEstimateOfTTI": 22243, "optimisticTTI": 16021, "pessimisticTTI": 24512, "roughEstimateOfTTFCPUI": 22243, "optimisticTTFCPUI": 16021, "pessimisticTTFCPUI": 24512, "roughEstimateOfSI": 2933, "optimisticSI": 1765, "pessimisticSI": 1096, "roughEstimateOfEIL": 466, "optimisticEIL": 583, "pessimisticEIL": 583}, + {"url": "http://www.thepiratebay.org/", "roughEstimateOfFCP": 3343, "optimisticFCP": 2446, "pessimisticFCP": 2551, "roughEstimateOfFMP": 3531, "optimisticFMP": 2446, "pessimisticFMP": 2551, "roughEstimateOfTTI": 6267, "optimisticTTI": 4252, "pessimisticTTI": 4702, "roughEstimateOfTTFCPUI": 6267, "optimisticTTFCPUI": 4252, "pessimisticTTFCPUI": 4702, "roughEstimateOfSI": 10690, "optimisticSI": 6630, "pessimisticSI": 2551, "roughEstimateOfEIL": 85, "optimisticEIL": 106, "pessimisticEIL": 106}, + {"url": "http://www.thestar.com.my", "roughEstimateOfFCP": 6406, "optimisticFCP": 5208, "pessimisticFCP": 5362, "roughEstimateOfFMP": 7241, "optimisticFMP": 5423, "pessimisticFMP": 6501, "roughEstimateOfTTI": 15922, "optimisticTTI": 10549, "pessimisticTTI": 17762, "roughEstimateOfTTFCPUI": 15922, "optimisticTTFCPUI": 10549, "pessimisticTTFCPUI": 17762, "roughEstimateOfSI": 11235, "optimisticSI": 5714, "pessimisticSI": 5362, "roughEstimateOfEIL": 275, "optimisticEIL": 344, "pessimisticEIL": 344}, + {"url": "http://www.tianya.cn/", "roughEstimateOfFCP": 2024, "optimisticFCP": 1294, "pessimisticFCP": 1294, "roughEstimateOfFMP": 2259, "optimisticFMP": 1294, "pessimisticFMP": 1294, "roughEstimateOfTTI": 8045, "optimisticTTI": 5462, "pessimisticTTI": 7039, "roughEstimateOfTTFCPUI": 8045, "optimisticTTFCPUI": 5462, "pessimisticTTFCPUI": 7039, "roughEstimateOfSI": 8898, "optimisticSI": 5933, "pessimisticSI": 1294, "roughEstimateOfEIL": 2076, "optimisticEIL": 2595, "pessimisticEIL": 2595}, + {"url": "http://www.torrentz.com/", "roughEstimateOfFCP": 519, "optimisticFCP": 305, "pessimisticFCP": 305, "roughEstimateOfFMP": 595, "optimisticFMP": 305, "pessimisticFMP": 305, "roughEstimateOfTTI": 1802, "optimisticTTI": 672, "pessimisticTTI": 717, "roughEstimateOfTTFCPUI": 1824, "optimisticTTFCPUI": 672, "pessimisticTTFCPUI": 767, "roughEstimateOfSI": 1030, "optimisticSI": 773, "pessimisticSI": 305, "roughEstimateOfEIL": 13, "optimisticEIL": 16, "pessimisticEIL": 16}, + {"url": "http://www.tumblr.com/", "roughEstimateOfFCP": 7546, "optimisticFCP": 6314, "pessimisticFCP": 6314, "roughEstimateOfFMP": 7546, "optimisticFMP": 6314, "pessimisticFMP": 6314, "roughEstimateOfTTI": 13238, "optimisticTTI": 10915, "pessimisticTTI": 11309, "roughEstimateOfTTFCPUI": 13238, "optimisticTTFCPUI": 10915, "pessimisticTTFCPUI": 11309, "roughEstimateOfSI": 7546, "optimisticSI": 1280, "pessimisticSI": 6314, "roughEstimateOfEIL": 2035, "optimisticEIL": 2544, "pessimisticEIL": 2544}, + {"url": "http://www.twitpic.com/", "roughEstimateOfFCP": 2004, "optimisticFCP": 1277, "pessimisticFCP": 1277, "roughEstimateOfFMP": 6086, "optimisticFMP": 4939, "pessimisticFMP": 4939, "roughEstimateOfTTI": 8586, "optimisticTTI": 6589, "pessimisticTTI": 6739, "roughEstimateOfTTFCPUI": 8586, "optimisticTTFCPUI": 6589, "pessimisticTTFCPUI": 6739, "roughEstimateOfSI": 2583, "optimisticSI": 1431, "pessimisticSI": 1277, "roughEstimateOfEIL": 981, "optimisticEIL": 1226, "pessimisticEIL": 1226}, + {"url": "http://www.typepad.com/", "roughEstimateOfFCP": 3665, "optimisticFCP": 1826, "pessimisticFCP": 3938, "roughEstimateOfFMP": 4229, "optimisticFMP": 2147, "pessimisticFMP": 3938, "roughEstimateOfTTI": 5732, "optimisticTTI": 3275, "pessimisticTTI": 4817, "roughEstimateOfTTFCPUI": 5732, "optimisticTTFCPUI": 3275, "pessimisticTTFCPUI": 4817, "roughEstimateOfSI": 3665, "optimisticSI": 962, "pessimisticSI": 3938, "roughEstimateOfEIL": 108, "optimisticEIL": 16, "pessimisticEIL": 253}, + {"url": "http://www.verizonwireless.com/", "roughEstimateOfFCP": 3131, "optimisticFCP": 2301, "pessimisticFCP": 2301, "roughEstimateOfFMP": 4107, "optimisticFMP": 3054, "pessimisticFMP": 3054, "roughEstimateOfTTI": 16796, "optimisticTTI": 12895, "pessimisticTTI": 16577, "roughEstimateOfTTFCPUI": 16796, "optimisticTTFCPUI": 12895, "pessimisticTTFCPUI": 16577, "roughEstimateOfSI": 3437, "optimisticSI": 1565, "pessimisticSI": 2301, "roughEstimateOfEIL": 931, "optimisticEIL": 1164, "pessimisticEIL": 1164}, + {"url": "http://www.vevo.com/", "roughEstimateOfFCP": 2592, "optimisticFCP": 1811, "pessimisticFCP": 1811, "roughEstimateOfFMP": 3701, "optimisticFMP": 2668, "pessimisticFMP": 2668, "roughEstimateOfTTI": 24162, "optimisticTTI": 18073, "pessimisticTTI": 26039, "roughEstimateOfTTFCPUI": 14355, "optimisticTTFCPUI": 18073, "pessimisticTTFCPUI": 4248, "roughEstimateOfSI": 4172, "optimisticSI": 2318, "pessimisticSI": 1811, "roughEstimateOfEIL": 2218, "optimisticEIL": 2772, "pessimisticEIL": 2772}, + {"url": "http://www.weather.com/", "roughEstimateOfFCP": 6844, "optimisticFCP": 5676, "pessimisticFCP": 5676, "roughEstimateOfFMP": 6860, "optimisticFMP": 5676, "pessimisticFMP": 5676, "roughEstimateOfTTI": 28641, "optimisticTTI": 22898, "pessimisticTTI": 29561, "roughEstimateOfTTFCPUI": 22576, "optimisticTTFCPUI": 22898, "pessimisticTTFCPUI": 16083, "roughEstimateOfSI": 7932, "optimisticSI": 3209, "pessimisticSI": 5676, "roughEstimateOfEIL": 1338, "optimisticEIL": 1672, "pessimisticEIL": 1672}, + {"url": "http://www.wikipedia.org/", "roughEstimateOfFCP": 1587, "optimisticFCP": 934, "pessimisticFCP": 934, "roughEstimateOfFMP": 1821, "optimisticFMP": 934, "pessimisticFMP": 934, "roughEstimateOfTTI": 5915, "optimisticTTI": 4070, "pessimisticTTI": 4161, "roughEstimateOfTTFCPUI": 5915, "optimisticTTFCPUI": 4070, "pessimisticTTFCPUI": 4161, "roughEstimateOfSI": 2299, "optimisticSI": 1387, "pessimisticSI": 934, "roughEstimateOfEIL": 1682, "optimisticEIL": 2102, "pessimisticEIL": 2102}, + {"url": "http://www.ynet.com/", "roughEstimateOfFCP": 2518, "optimisticFCP": 1744, "pessimisticFCP": 1744, "roughEstimateOfFMP": 2731, "optimisticFMP": 1744, "pessimisticFMP": 1744, "roughEstimateOfTTI": 9865, "optimisticTTI": 3663, "pessimisticTTI": 13483, "roughEstimateOfTTFCPUI": 5439, "optimisticTTFCPUI": 3663, "pessimisticTTFCPUI": 3649, "roughEstimateOfSI": 4689, "optimisticSI": 2718, "pessimisticSI": 1744, "roughEstimateOfEIL": 152, "optimisticEIL": 190, "pessimisticEIL": 190}, + {"url": "http://www.youdao.com/", "roughEstimateOfFCP": 3309, "optimisticFCP": 2463, "pessimisticFCP": 2463, "roughEstimateOfFMP": 3486, "optimisticFMP": 2463, "pessimisticFMP": 2463, "roughEstimateOfTTI": 4186, "optimisticTTI": 2463, "pessimisticTTI": 2463, "roughEstimateOfTTFCPUI": 3486, "optimisticTTFCPUI": 1231, "pessimisticTTFCPUI": 1277, "roughEstimateOfSI": 6077, "optimisticSI": 3376, "pessimisticSI": 2463, "roughEstimateOfEIL": 13, "optimisticEIL": 16, "pessimisticEIL": 16}, + {"url": "http://www.zol.com.cn/", "roughEstimateOfFCP": 2759, "optimisticFCP": 1341, "pessimisticFCP": 2707, "roughEstimateOfFMP": 3128, "optimisticFMP": 1341, "pessimisticFMP": 2707, "roughEstimateOfTTI": 10822, "optimisticTTI": 4970, "pessimisticTTI": 13868, "roughEstimateOfTTFCPUI": 5530, "optimisticTTFCPUI": 4970, "pessimisticTTFCPUI": 2107, "roughEstimateOfSI": 13453, "optimisticSI": 8531, "pessimisticSI": 2707, "roughEstimateOfEIL": 249, "optimisticEIL": 83, "pessimisticEIL": 539} + ] +} \ No newline at end of file diff --git a/package.json b/package.json index e13ff7f84a9a..bc27eee5150e 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "test": "yarn lint --quiet && yarn unit && yarn type-check && yarn diff:sample-json", "test-extension": "cd lighthouse-extension && yarn test", "test-viewer": "cd lighthouse-viewer && yarn pptr-test", + "test-lantern": "bash lighthouse-core/scripts/test-lantern.sh", "unit-core": "mocha --reporter dot \"lighthouse-core/test/**/*-test.js\"", "unit-cli": "mocha --reporter dot \"lighthouse-cli/test/**/*-test.js\"",