Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(615)

Unified Diff: tools/resource_prefetch_predictor/generate_test_data.py

Issue 2561353002: tools: WPR support for testing speculative_prefetch_predictor. (Closed)
Patch Set: . Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/resource_prefetch_predictor/generate_test_data.py
diff --git a/tools/resource_prefetch_predictor/generate_database.py b/tools/resource_prefetch_predictor/generate_test_data.py
similarity index 72%
rename from tools/resource_prefetch_predictor/generate_database.py
rename to tools/resource_prefetch_predictor/generate_test_data.py
index 60dfd5fa629b8a7b3903307366d04e2f2db4d79b..39f8c35da5a60aae10f13881af145bfb9c9a22fd 100755
--- a/tools/resource_prefetch_predictor/generate_database.py
+++ b/tools/resource_prefetch_predictor/generate_test_data.py
@@ -6,6 +6,7 @@
"""Loads a set of web pages several times on a device, and extracts the
predictor database.
+Also generates a WPR archive for another page.
"""
import argparse
@@ -24,13 +25,14 @@ sys.path.append(os.path.join(_SRC_PATH, 'build', 'android'))
import devil_chromium
sys.path.append(os.path.join(_SRC_PATH, 'tools', 'android', 'loading'))
+import device_setup
from options import OPTIONS
import page_track
import prefetch_predictor_common
-_PAGE_LOAD_TIMEOUT = 20
+_PAGE_LOAD_TIMEOUT = 40
def _CreateArgumentParser():
@@ -43,14 +45,16 @@ def _CreateArgumentParser():
'(one per line). URLs can be repeated.')
parser.add_argument('--output_filename',
help='File to store the database in.')
+ parser.add_argument('--test_url', help='URL to record an archive of.')
+ parser.add_argument('--wpr_archive', help='WPR archive path.')
parser.add_argument('--url_repeat',
help=('Number of times each URL in the input '
- 'file is loaded.'),
- default=3)
+ 'file is loaded.'), default=3)
return parser
-def _Go(chrome_controller, urls_filename, output_filename, repeats):
+def _GenerateDatabase(chrome_controller, urls_filename, output_filename,
+ repeats):
urls = []
with open(urls_filename) as f:
urls = [line.strip() for line in f.readlines()]
@@ -71,6 +75,16 @@ def _Go(chrome_controller, urls_filename, output_filename, repeats):
output_filename)
+def _GenerateWprArchive(device, url, archive_path):
+ with device_setup.RemoteWprHost(device, archive_path, record=True) as wpr:
+ chrome_controller = prefetch_predictor_common.Setup(
+ device, wpr.chrome_args)
+ with chrome_controller.Open() as connection:
+ page_track.PageTrack(connection) # Registers the listeners.
+ connection.MonitorUrl(url, timeout_seconds=_PAGE_LOAD_TIMEOUT,
+ stop_delay_multiplier=1.5)
+
+
def main():
devil_chromium.Initialize()
logging.basicConfig(level=logging.INFO)
@@ -86,8 +100,9 @@ def main():
chrome_controller = prefetch_predictor_common.Setup(
device, ['--speculative-resource-prefetching=learning'])
- _Go(chrome_controller, args.urls_filename, args.output_filename,
- int(args.url_repeat))
+ _GenerateDatabase(chrome_controller, args.urls_filename,
+ args.output_filename, int(args.url_repeat))
+ _GenerateWprArchive(device, args.test_url, args.wpr_archive)
if __name__ == '__main__':
« no previous file with comments | « tools/resource_prefetch_predictor/generate_database.py ('k') | tools/resource_prefetch_predictor/prefetch_benchmark.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698