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
|
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
|
-
+
-
+
|
finally:
end = time.perf_counter()
print('{} : {}'.format(label, end - start))
if hDst:
hDst.write("{:<12.6}".format(end-start))
def perf (sVersion, bMemo=False):
def perf (sVersion, sResultFile=""):
"performance tests"
print("Performance tests")
gc_engine.load()
gc_engine.parse("Text to compile rules before launching real tests.")
spHere, _ = os.path.split(__file__)
spfPerfTest = os.path.join(spHere, "perf.txt")
if not os.path.exists(spfPerfTest):
print(f"No file <perf.txt> in <{spHere}>")
return
with open(spfPerfTest, "r", encoding="utf-8") as hSrc:
hDst = open("./gc_lang/"+sLang+"/perf_memo.txt", "a", encoding="utf-8", newline="\n") if bMemo else None
hDst = open(sResultFile, "a", encoding="utf-8", newline="\n") if sResultFile else None
if hDst:
hDst.write("{:<12}{:<20}".format(sVersion, time.strftime("%Y.%m.%d %H:%M")))
for sText in ( s.strip() for s in hSrc if not s.startswith("#") and s.strip() ):
with timeblock(sText[:sText.find(".")], hDst):
gc_engine.parse(sText)
if hDst:
hDst.write("\n")
|