-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbench_user.py
61 lines (47 loc) · 1.58 KB
/
bench_user.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import asyncio
import json
import pyvolt
import revolt
import revolt.http
import revolt.state
import timeit
import typing
import voltage
import voltage.internals
async def bench_users():
with open('./test/data/users/user.json', 'r') as fp:
payload: typing.Any = json.load(fp)
state = pyvolt.State()
parser = pyvolt.Parser(state)
state.setup(parser=parser)
def using_pyvolt():
return parser.parse_user(payload)
import aiohttp
session = aiohttp.ClientSession()
api_info: typing.Any = {
'features': {
'autumn': {
'url': 'https://autumn.revolt.chat/'
}
}
}
rpy_http = revolt.http.HttpClient(
session,
'',
'https://api.revolt.chat/',
api_info
)
rpy_state = revolt.state.State(rpy_http, api_info, 1000)
def using_revoltpy():
return revolt.User(data=payload, state=rpy_state)
vpy_http = voltage.internals.http.HTTPHandler(session, '')
vpy_cache = voltage.internals.cache.CacheHandler(vpy_http, asyncio.get_event_loop())
def using_voltage():
return voltage.User(data=payload, cache=vpy_cache)
time_pyvolt = timeit.timeit(using_pyvolt, number=100_000)
time_revoltpy = timeit.timeit(using_revoltpy, number=100_000)
time_voltage = timeit.timeit(using_voltage, number=100_000)
print(f"[User] Time using pyvolt ----: {time_pyvolt:.6f} seconds")
print(f"[User] Time using revolt.py -: {time_revoltpy:.6f} seconds")
print(f"[User] Time using voltage ---: {time_voltage:.6f} seconds")
await session.close()