Skip to content

Commit f9b5d67

Browse files
committed
Add an option to run this benchmark using the builtin webserver
1 parent 9353e15 commit f9b5d67

File tree

2 files changed

+43
-0
lines changed

2 files changed

+43
-0
lines changed

benchmarks/aiohttp.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import json
2+
import os
3+
import requests
4+
import subprocess
5+
import sys
6+
import threading
7+
import time
8+
9+
from djangocms import waitUntilUp
10+
11+
if __name__ == "__main__":
12+
exe = sys.executable
13+
14+
times = []
15+
16+
p = subprocess.Popen([exe, "gunicorn_serve.py"], stdout=open("/dev/null", "w"), stderr=subprocess.STDOUT, cwd=os.path.join(os.path.dirname(__file__), "../data"))
17+
try:
18+
waitUntilUp(("127.0.0.1", 8080))
19+
20+
n = 3000
21+
if len(sys.argv) > 1:
22+
n = int(sys.argv[1])
23+
24+
start = time.time()
25+
for i in range(n):
26+
times.append(time.time())
27+
if i % 100 == 0:
28+
print(i, time.time() - start)
29+
requests.get("http://localhost:8080/blog/").text
30+
times.append(time.time())
31+
elapsed = time.time() - start
32+
print("%.2fs (%.3freq/s)" % (elapsed, n / elapsed))
33+
34+
assert p.poll() is None, p.poll()
35+
36+
finally:
37+
p.terminate()
38+
39+
if len(sys.argv) > 2:
40+
json.dump(times, open(sys.argv[2], 'w'))

data/gunicorn_serve.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,6 @@ async def main():
77
app = web.Application()
88
app.add_routes([web.get('/', hello)])
99
return app
10+
11+
if __name__ == "__main__":
12+
web.run_app(main())

0 commit comments

Comments
 (0)