MCPcopy Create free account
hub / github.com/WheretIB/nullc / SpeedTestText

Function SpeedTestText

tests/TestSpeed.cpp:30–90  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

28}
29
30void SpeedTestText(const char* name, const char* text)
31{
32 nullcTerminate();
33 nullcInit(MODULE_PATH);
34
35 nullcInitTypeinfoModule();
36 nullcInitFileModule();
37 nullcInitMathModule();
38 nullcInitVectorModule();
39 nullcInitRandomModule();
40 nullcInitDynamicModule();
41 nullcInitGCModule();
42 nullcInitIOModule();
43 nullcInitCanvasModule();
44 nullcInitTimeModule();
45 nullcInitPugiXMLModule();
46
47 // exclusive for progressbar test
48 nullcLoadModuleBySource("test.rect", "int draw_rect(int a, b, c, d, e);");
49 nullcBindModuleFunction("test.rect", (void(*)())TestDrawRect, "draw_rect", 0);
50
51#if defined(_MSC_VER)
52 nullcInitWindowModule();
53#endif
54
55 nullcSetExecutor(NULLC_VM);
56
57 unsigned int runs = 0;
58 double time = myGetPreciseTime();
59 double compileTime = 0.0;
60 double linkTime = 0.0;
61 double coldStart = 0.0;
62 while(linkTime < speedTestTimeThreshold)
63 {
64 runs++;
65 nullres good = nullcCompile(text);
66 compileTime += myGetPreciseTime() - time;
67
68 if(good)
69 {
70 char *bytecode = NULL;
71 nullcGetBytecode(&bytecode);
72 nullcClean();
73 if(!nullcLinkCode(bytecode))
74 printf("Link failed: %s\r\n", nullcGetLastError());
75 delete[] bytecode;
76 }else{
77 printf("Compilation failed: %s\r\n", nullcGetLastError());
78 break;
79 }
80 linkTime += myGetPreciseTime() - time;
81 time = myGetPreciseTime();
82 if(runs == 1)
83 coldStart = linkTime;
84 }
85 printf("Speed test (%s) managed to run %d times in %f ms\n", name, runs, linkTime);
86 printf("Cold start: %f ms\n", coldStart);
87 printf("Compile time: %f Link time: %f\n", compileTime, linkTime - compileTime, compileTime / double(runs));

Callers 2

SpeedTestFileFunction · 0.85
TestSpeed.cppFile · 0.85

Calls 15

nullcTerminateFunction · 0.85
nullcInitFunction · 0.85
nullcInitFileModuleFunction · 0.85
nullcInitMathModuleFunction · 0.85
nullcInitVectorModuleFunction · 0.85
nullcInitRandomModuleFunction · 0.85
nullcInitGCModuleFunction · 0.85
nullcInitIOModuleFunction · 0.85
nullcInitCanvasModuleFunction · 0.85
nullcInitTimeModuleFunction · 0.85
nullcInitPugiXMLModuleFunction · 0.85
nullcLoadModuleBySourceFunction · 0.85

Tested by

no test coverage detected