37 lines
929 B
Python
37 lines
929 B
Python
"""vast_c vs 纯 Python vast 对照基准(VAST_USE_C 开关)"""
|
|
import os
|
|
import sys
|
|
import time
|
|
|
|
sys.path.insert(0, r'd:\Users\TermiNexus\Desktop\TransPyC')
|
|
sys.path.insert(0, r'd:\Users\TermiNexus\Desktop\TransPyC\lib')
|
|
|
|
import vast
|
|
|
|
Parts = []
|
|
for I in range(50):
|
|
Parts.append(f'def F{I}(A: int, B: float = 1.5) -> str:')
|
|
Parts.append(' X = A + B * 2')
|
|
Parts.append(' if X > 10:')
|
|
Parts.append(' return "big"')
|
|
Parts.append(' return "small"')
|
|
Src = '\n'.join(Parts)
|
|
N = 30
|
|
|
|
os.environ['VAST_USE_C'] = '0'
|
|
T0 = time.perf_counter()
|
|
for _ in range(N):
|
|
vast.parse(Src)
|
|
T1 = time.perf_counter()
|
|
|
|
os.environ['VAST_USE_C'] = 'strict'
|
|
for _ in range(N):
|
|
vast.parse(Src)
|
|
T2 = time.perf_counter()
|
|
|
|
PyMs = (T1 - T0) / N * 1000
|
|
CMs = (T2 - T1) / N * 1000
|
|
print(f'纯Python vast : {PyMs:.3f} ms/次')
|
|
print(f'vast_c : {CMs:.3f} ms/次')
|
|
print(f'加速比 : {PyMs / CMs:.1f}x')
|