Created
August 23, 2019 20:40
-
-
Save peterbe/866811f652a606bc951d28859e06508c to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
urls = [ | |
"/en-US/docs/Web/CSS/Specificity", | |
"/en-US/", | |
"/en-US/docs/Web/JavaScript", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter", | |
"/zh-CN/", | |
"/en-US/docs/Web/API/Fetch_API/Using_Fetch", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find", | |
"/en-US/docs/Web/HTTP/CORS", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date", | |
"/en-US/docs/Web/HTTP/Status", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map", | |
"/en-US/docs/Web/JavaScript/Guide/Regular_Expressions", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign", | |
"/en-US/docs/Web/API/Fetch_API", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce", | |
"/en-US/docs/Web", | |
"/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes", | |
"/en-US/docs/Web/HTML/Element/input", | |
"/zh-CN/docs/Web/JavaScript", | |
"/en-US/docs/Web/JavaScript/Reference/Operators/typeof", | |
"/en-US/docs/Web/JavaScript/Reference/Classes", | |
"/en-US/docs/Web/API/EventTarget/addEventListener", | |
"/en-US/docs/Web/JavaScript/Reference/Template_literals", | |
"/en-US/docs/Learn", | |
"/en-US/docs/Web/HTML", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify", | |
"/en-US/docs/Web/HTML/Element", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace", | |
"/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment", | |
"/en-US/docs/Web/CSS", | |
"/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator", | |
"/zh-CN/docs/Web", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all", | |
"/en-US/docs/Web/JavaScript/Reference/Statements/async_function", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/String", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some", | |
"/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax", | |
"/en-US/docs/Web/JavaScript/Reference/Statements/for...in", | |
"/en-US/docs/Learn/Getting_started_with_the_web/JavaScript_basics", | |
"/en-US/docs/Web/JavaScript/Reference/Errors/Unexpected_type", | |
"/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript", | |
"/en-US/docs/Web/CSS/CSS_Flexible_Box_Layout/Aligning_Items_in_a_Flex_Container", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object", | |
"/en-US/docs/Web/API", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split", | |
"/en-US/docs/Web/HTML/Element/input/date", | |
"/en-US/docs/Web/JavaScript/Reference/Statements/import", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/concat", | |
"/en-US/docs/Web/JavaScript/Reference/Errors/Not_defined", | |
"/en-US/docs/Web/HTML/Element/input/file", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match", | |
"/en-US/docs/Web/API/Document/querySelector", | |
"/en-US/docs/Web/API/XMLHttpRequest", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce", | |
"/en-US/docs/Web/JavaScript/Guide/Working_with_Objects", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random", | |
"/en-US/docs/Web/Progressive_web_apps", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push", | |
"/en-US/docs/Web/Events", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse", | |
"/en-US/docs/Web/JavaScript/Reference/Statements/for...of", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now", | |
"/en-US/docs/Tools/Debugger/Source_map_errors", | |
"/en-US/docs/Web/CSS/Reference", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects", | |
"/en-US/docs/Web/HTML/Element/input/checkbox", | |
"/en-US/docs/Web/CSS/box-shadow", | |
"/en-US/docs/Web/HTTP/Headers/X-Frame-Options", | |
"/en-US/docs/Web/API/History_API", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/resolve", | |
"/en-US/docs/Web/HTTP/Status/400", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every", | |
"/en-US/docs/Learn/Getting_started_with_the_web", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math", | |
"/en-US/docs/Learn/HTML/Introduction_to_HTML", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt", | |
"/en-US/docs/Web/JavaScript/Reference/Errors/Not_a_function", | |
"/en-US/docs/Web/HTTP/Headers", | |
"/en-US/docs/Web/API/Document/getElementById", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join", | |
"/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin", | |
"/en-US/docs/Web/HTML/Element/input/radio", | |
"/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then", | |
"/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding", | |
] | |
urls = ["https://developer.mozilla.org" + x for x in urls] | |
import random | |
from collections import defaultdict | |
import time | |
import statistics | |
import requests | |
def T(s): | |
return "{:.1f}ms".format(s * 1000) | |
def run(): | |
random.shuffle(urls) | |
times = defaultdict(list) | |
for url in urls: | |
t0 = time.time() | |
r = requests.get(url) | |
t1 = time.time() | |
print(r.headers["x-cache"], T(t1 - t0), url) | |
time.sleep(1) | |
times[r.headers["x-cache"]].append(t1 - t0) | |
for header in sorted(times): | |
median = statistics.median(times[header]) | |
print( | |
header, | |
"count:", | |
len(times[header]), | |
"median:", | |
T(median) | |
) | |
# print(urls) | |
run() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment