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

Side by Side Diff: tools/resource_prefetch_predictor/prefetch_predictor_tool.py

Issue 2385173002: predictors: Take the priority into account for scoring resources. (Closed)
Patch Set: Address comments. Created 4 years, 2 months 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 unified diff | Download patch
« no previous file with comments | « chrome/browser/predictors/resource_prefetch_predictor_tables_unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # Copyright 2016 The Chromium Authors. All rights reserved. 2 # Copyright 2016 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Inspection of the prefetch predictor database. 6 """Inspection of the prefetch predictor database.
7 7
8 On Android, the database can be extracted using: 8 On Android, the database can be extracted using:
9 adb pull \ 9 adb pull \
10 '/data/user/0/$package_name/app_chrome/Default/Network Action Predictor' 10 '/data/user/0/$package_name/app_chrome/Default/Network Action Predictor'
(...skipping 13 matching lines...) Expand all
24 self, main_page_url, resource_url, proto_buffer): 24 self, main_page_url, resource_url, proto_buffer):
25 self.main_page_url = main_page_url 25 self.main_page_url = main_page_url
26 self.resource_url = resource_url 26 self.resource_url = resource_url
27 self.proto = ResourceData() 27 self.proto = ResourceData()
28 self.proto.ParseFromString(proto_buffer) 28 self.proto.ParseFromString(proto_buffer)
29 self.confidence = float(self.proto.number_of_hits / ( 29 self.confidence = float(self.proto.number_of_hits / (
30 self.proto.number_of_hits + self.proto.number_of_misses)) 30 self.proto.number_of_hits + self.proto.number_of_misses))
31 self.score = self._Score() 31 self.score = self._Score()
32 32
33 def _Score(self): 33 def _Score(self):
34 """Mirrors ResourcePrefetchPredictorTables::ResourceRow::UpdateScore.""" 34 """Mirrors ResourcePrefetchPredictorTables::ComputeResourceScore."""
35 multiplier = 1 35 priority_multiplier = 1
36 type_multiplier = 1
37
38 if self.proto.priority == ResourceData.REQUEST_PRIORITY_HIGHEST:
39 priority_multiplier = 3
40 elif self.proto.priority == ResourceData.REQUEST_PRIORITY_MEDIUM:
41 priority_multiplier = 2
42
36 if self.proto.resource_type in (ResourceData.RESOURCE_TYPE_STYLESHEET, 43 if self.proto.resource_type in (ResourceData.RESOURCE_TYPE_STYLESHEET,
37 ResourceData.RESOURCE_TYPE_SCRIPT, 44 ResourceData.RESOURCE_TYPE_SCRIPT):
38 ResourceData.RESOURCE_TYPE_FONT_RESOURCE): 45 type_multiplier = 3
39 multiplier = 2 46 elif self.proto.resource_type == ResourceData.RESOURCE_TYPE_FONT_RESOURCE:
40 return multiplier * 100 - self.proto.average_position 47 type_multiplier = 2
48
49 return (100 * (priority_multiplier * 100 + type_multiplier * 10)
50 - self.proto.average_position)
41 51
42 @classmethod 52 @classmethod
43 def FromRow(cls, row): 53 def FromRow(cls, row):
44 """Builds an entry from a database row.""" 54 """Builds an entry from a database row."""
45 return Entry(*row) 55 return Entry(*row)
46 56
47 def __str__(self): 57 def __str__(self):
48 return 'score: %s\nmain_page_url: %s\nconfidence: %f"\n%s' % ( 58 return 'score: %s\nmain_page_url: %s\nconfidence: %f"\n%s' % (
49 self.score, self.main_page_url, self.confidence, self.proto) 59 self.score, self.main_page_url, self.confidence, self.proto)
50 60
(...skipping 25 matching lines...) Expand all
76 parser = argparse.ArgumentParser() 86 parser = argparse.ArgumentParser()
77 parser.add_argument('-f', dest='database_filename', required=True, 87 parser.add_argument('-f', dest='database_filename', required=True,
78 help='Path to the database') 88 help='Path to the database')
79 parser.add_argument('-d', dest='domain', default=None, help='Domain') 89 parser.add_argument('-d', dest='domain', default=None, help='Domain')
80 args = parser.parse_args() 90 args = parser.parse_args()
81 DatabaseStats(args.database_filename, args.domain) 91 DatabaseStats(args.database_filename, args.domain)
82 92
83 93
84 if __name__ == '__main__': 94 if __name__ == '__main__':
85 main() 95 main()
OLDNEW
« no previous file with comments | « chrome/browser/predictors/resource_prefetch_predictor_tables_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698