Skip to content

Instantly share code, notes, and snippets.

@peterbe
Created August 23, 2019 20:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save peterbe/866811f652a606bc951d28859e06508c to your computer and use it in GitHub Desktop.
Save peterbe/866811f652a606bc951d28859e06508c to your computer and use it in GitHub Desktop.
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