Performance improvements to response and moved tests around
This commit is contained in:
13
tests/performance/aiohttp/python.aiohttp.py
Normal file
13
tests/performance/aiohttp/python.aiohttp.py
Normal file
@@ -0,0 +1,13 @@
|
||||
from aiohttp import web
|
||||
|
||||
async def handle(request):
|
||||
name = request.match_info.get('name', "Anonymous")
|
||||
text = "Hello, " + name
|
||||
return web.Response(text=text)
|
||||
|
||||
|
||||
app = web.Application()
|
||||
app.router.add_get('/', handle)
|
||||
app.router.add_get('/{name}', handle)
|
||||
|
||||
web.run_app(app)
|
||||
16
tests/performance/golang/golang.http.go
Normal file
16
tests/performance/golang/golang.http.go
Normal file
@@ -0,0 +1,16 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
func handler(w http.ResponseWriter, r *http.Request) {
|
||||
fmt.Fprintf(w, "Hi there, I love %s!", r.URL.Path[1:])
|
||||
}
|
||||
|
||||
func main() {
|
||||
http.HandleFunc("/", handler)
|
||||
http.ListenAndServe(":" + os.Args[1], nil)
|
||||
}
|
||||
33
tests/performance/sanic/http_response.py
Normal file
33
tests/performance/sanic/http_response.py
Normal file
@@ -0,0 +1,33 @@
|
||||
import asyncpg
|
||||
import sys
|
||||
import os
|
||||
import inspect
|
||||
|
||||
currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
|
||||
sys.path.insert(0,currentdir + '/../../../')
|
||||
|
||||
import timeit
|
||||
|
||||
from sanic.response import json
|
||||
|
||||
print(json({ "test":True }).output())
|
||||
|
||||
print("Running New 100,000 times")
|
||||
times = 0
|
||||
total_time = 0
|
||||
for n in range(6):
|
||||
time = timeit.timeit('json({ "test":True }).output()', setup='from sanic.response import json', number=100000)
|
||||
print("Took {} seconds".format(time))
|
||||
total_time += time
|
||||
times += 1
|
||||
print("Average: {}".format(total_time/times))
|
||||
|
||||
print("Running Old 100,000 times")
|
||||
times = 0
|
||||
total_time = 0
|
||||
for n in range(6):
|
||||
time = timeit.timeit('json({ "test":True }).output_old()', setup='from sanic.response import json', number=100000)
|
||||
print("Took {} seconds".format(time))
|
||||
total_time += time
|
||||
times += 1
|
||||
print("Average: {}".format(total_time/times))
|
||||
85
tests/performance/sanic/simple_server.py
Normal file
85
tests/performance/sanic/simple_server.py
Normal file
@@ -0,0 +1,85 @@
|
||||
import sys
|
||||
import os
|
||||
import inspect
|
||||
|
||||
currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
|
||||
sys.path.insert(0,currentdir + '/../../../')
|
||||
|
||||
from sanic import Sanic
|
||||
from sanic.response import json, text
|
||||
from sanic.exceptions import ServerError
|
||||
|
||||
app = Sanic("test")
|
||||
|
||||
@app.route("/")
|
||||
async def test(request):
|
||||
return json({ "test": True })
|
||||
|
||||
@app.route("/sync")
|
||||
def test(request):
|
||||
return json({ "test": True })
|
||||
|
||||
|
||||
|
||||
|
||||
@app.route("/text")
|
||||
def rtext(request):
|
||||
return text("yeehaww")
|
||||
|
||||
@app.route("/exception")
|
||||
def exception(request):
|
||||
raise ServerError("yep")
|
||||
|
||||
@app.route("/exception/async")
|
||||
async def test(request):
|
||||
raise ServerError("asunk")
|
||||
|
||||
@app.route("/post_json")
|
||||
def post_json(request):
|
||||
return json({ "received": True, "message": request.json })
|
||||
|
||||
@app.route("/query_string")
|
||||
def query_string(request):
|
||||
return json({ "parsed": True, "args": request.args, "url": request.url, "query_string": request.query_string })
|
||||
|
||||
import sys
|
||||
app.run(host="0.0.0.0", port=sys.argv[1],)#, on_start=setup)
|
||||
|
||||
|
||||
|
||||
# import asyncio_redis
|
||||
# import asyncpg
|
||||
# async def setup(sanic, loop):
|
||||
# sanic.conn = []
|
||||
# sanic.redis = []
|
||||
# for x in range(10):
|
||||
# sanic.conn.append(await asyncpg.connect(user='postgres', password='zomgdev', database='postgres', host='192.168.99.100'))
|
||||
# for n in range(30):
|
||||
# connection = await asyncio_redis.Connection.create(host='192.168.99.100', port=6379)
|
||||
# sanic.redis.append(connection)
|
||||
|
||||
|
||||
# c=0
|
||||
# @app.route("/postgres")
|
||||
# async def postgres(request):
|
||||
# global c
|
||||
# values = await app.conn[c].fetch('''SELECT * FROM players''')
|
||||
# c += 1
|
||||
# if c == 10:
|
||||
# c = 0
|
||||
# return text("yep")
|
||||
|
||||
# r=0
|
||||
# @app.route("/redis")
|
||||
# async def redis(request):
|
||||
# global r
|
||||
# try:
|
||||
# values = await app.redis[r].get('my_key')
|
||||
# except asyncio_redis.exceptions.ConnectionLostError:
|
||||
# app.redis[r] = await asyncio_redis.Connection.create(host='127.0.0.1', port=6379)
|
||||
# values = await app.redis[r].get('my_key')
|
||||
|
||||
# r += 1
|
||||
# if r == 30:
|
||||
# r = 0
|
||||
# return text(values)
|
||||
Reference in New Issue
Block a user