| 中文 | English |
This file records the complete results of running bench_mark compiled in Release mode (-O3 -DNDEBUG) locally. It covers 51 Lua performance scenarios across 6 categories, each with C++ / Lua 5.4 / FakeLua TCC / FakeLua GCC comparisons (analysis focuses on GCC vs Lua and GCC vs C++).
-O3 -DNDEBUG), GCC 15.1.0debug_mode=false, GCC -O3 optimization)build/bin/bench_markAbsolute runtimes are highly dependent on machine and compiler version and are not comparable across environments. All numbers in this file come from a single run; only ratios within the same table are meaningful. In particular, C++ reference implementations in some scenarios may be fully folded by the compiler (see annotations below), in which case the GCC vs C++ column is not informative.
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --target bench_mark --parallel
build/bin/bench_mark --benchmark_repetitions=1 --benchmark_report_aggregates_only=true
The table below takes the largest parameter (most representative) for each scenario. The GCC vs Lua column shows the speedup of FakeLua GCC relative to Lua 5.4 (>1 means FakeLua is faster); the GCC vs C++ column shows the runtime ratio of FakeLua GCC to handwritten C++ (<1 means FakeLua is faster).
| Scenario | Param | GCC vs Lua | GCC vs C++ | Notes |
|---|---|---|---|---|
| Fibonacci | n=32 | 36.6x | 0.13 | Numeric specialization, close to C++ |
| GCD | 2147483647/1073741823 | 0.45x | 10.8 | Single call ~0.4 µs, dominated by call overhead |
| PowMod | 1234567/7654321/1e9+7 | 1.7x | 2.56 | |
| Sum | n=5M | 30.4x | 0.06 | GCC vectorization, far faster than C++ |
| BubbleSort | n=200 | 1.9x | 2.80 | Table index read/write drag |
| Sieve | n=5000 | 1.8x | 2.68 | |
| BinarySearch | n=1000 | 3.7x | 2.40 | |
| FastPow | 1234567/7654321/1e9+7 | 1.6x | 2.45 | |
| Popcount | n=100K | 37.3x | 0.12 | Extreme bitwise optimization |
| InsertionSort | n=200 | 2.6x | 2.92 | |
| MatMul | 3×3 | 2.9x | 5.10 | |
| Vector3 | n=1M | 4.8x | 5.85 | Table specialized to struct, pointer offset |
| FloatPoly | n=1M | 34.9x | 0.49 | Float specialization, GCC 2x faster than C++ |
| Scenario | Param | GCC vs Lua | GCC vs C++ | Notes |
|---|---|---|---|---|
| StringLen | n=10K | 1.8x | 67.3 | |
| StringSub | n=10K | 1.3x | 6.15 | |
| StringRep | n=1000 | 1.1x | 0.16 | CGen FlStringRep inline |
| StringReverse | n=10K | 1.7x | 0.26 | CGen FlStringReverse inline |
| StringLower | n=10K | 6.1x | 0.02 | CGen inline + ASCII single pass |
| StringUpper | n=10K | 5.0x | 0.02 | Same as above |
| StringByte | n=1000 | 1.0x | 37.7 | |
| StringChar | n=500 | 1.0x | 10.6 | |
| StringFormat | n=500 | 1.8x | 2.71 | Const "%d" → FlFormatInt |
| StringFind | n=10K | 0.85x | 19.2 | Plain substring search (FlStringFindPlain inline, but still has call overhead) |
| StringGsub | n=1000 | 0.06x | 38.1 | ECMAScript regex (see below) |
| ToNumber | n=1 | 0.53x | 5.65 | CGen FlTonumber decimal integer inline parse (same input "1234567890") |
| ToString | n=500 | 0.74x | 0.01 | INT → FlFormatInt |
| StringFindPattern | n=1000 | 0.12x | 39.6 | ECMAScript regex; compile cache added |
| StringGmatch | n=1000 | 0.21x | 23.3 | ECMAScript regex; compile cache added |
On regex being slower than Lua: FakeLua’s
string.find/match/gmatch/gsubuse ECMAScript Boost.Regex (with process-level compile caching), which is more powerful than Lua 5.4’s built-in pattern (lookahead, full character classes, non-greedy, etc.). Therefore regex scenarios being slower than Lua (currently ~0.06~0.21x) is acceptable — it’s capability for performance. To match Lua in the future, the direction is a separate Lua pattern engine, not further optimizing Boost.Regex. Scripts uniformly use[0-9]+(semantically identical in Lua pattern and ECMAScript regex).
| Scenario | Param | GCC vs Lua | GCC vs C++ | Notes |
|---|---|---|---|---|
| TableInsert | n=5K | 4.0x | 4.87 | |
| TableRemove | n=5K | 3.2x | 2.99 | |
| TableConcat | n=1000 | 1.0x | 4.16 | Arena single write |
| TablePack | n=1 | 1.9x | 157 | |
| TableMove | n=5K | 1.0x | 2.84 | CGen FlTableMove + empty table pre-grow |
| TableSort | n=1000 | 1.2x | 4.74 | |
| TableCreate | n=5K | 1.1x | 2.20 | |
| HashInsert | n=1000 | 2.0x | 0.88 | |
| HashLookup | n=1000 | 1.9x | 0.45 | |
| NestedTable | n=10K | 3.4x | 1.39 | Outer table pointer offset traversal |
| Scenario | Param | GCC vs Lua | GCC vs C++ | Notes |
|---|---|---|---|---|
| EmptyCall | n=100K | 14.1x | 61561 | C++ inlined to 0 |
| Recursion | n=25 | 42.9x | 0.13 | Numeric specialization |
| Variadic | n=1 | 0.91x | 75.4 | High vararg construction overhead |
| MultiReturn | n=10K | 23.3x | 0.46 | |
| Closure | n=1000 | 2.1x | 19.4 | |
| TailRecursion | n=5K | 107.5x | 0.07 | Tail call to loop + vectorization |
| Scenario | Param | GCC vs Lua | GCC vs C++ | Notes |
|---|---|---|---|---|
| TableChurn | n=1000 | 9.3x | 1.24 | Arena allocator advantage |
| StringChurn | n=1000 | 2.2x | 1.47 | String allocation is a weakness |
| MixedAlloc | n=1000 | 2.3x | 1.68 |
| Scenario | Param | GCC vs Lua | GCC vs C++ | Notes |
|---|---|---|---|---|
| MathTrig (sin+cos) | n=100K | 5.8x | 0.87 | Close to native C++ speed |
| MathSqrt | n=100K | 22.3x | 0.48 | GCC 2x faster than C++ |
| MathExpLog | n=100K | 4.3x | 0.87 | |
| MathMinMax | n=100K | 10.4x | 0.90 |
Pure numeric scenarios comprehensively beat Lua 5.4 and approach handwritten C++: Fibonacci 36.6x, TailRecursion 107.5x, Recursion 42.9x, FloatPoly 34.9x, Popcount 37.3x, Sum 30.4x. Numeric specialization makes the generated C code nearly identical to handwritten versions; the rest is handled by GCC -O3.
All four math library functions are faster than Lua (4.3x~22.3x); sin/cos/sqrt approach native C++ speed.
Most string standard library functions are faster than Lua: lower/upper 5-6x, format 1.8x, rep 1.1x, reverse 1.7x — all via CGen inline (FlStringLower/Upper, FlFormatInt, FlStringRep, FlStringReverse) avoiding FakeluaCallByName overhead. Only StringFind (plain) at 0.85x is slightly slower than Lua, the remaining gap being single-call dispatch overhead.
Table operations are overall advantageous: table.insert 4.0x, remove 3.2x, sort 1.2x faster than Lua; move / concat roughly on par. VarTable caches contiguous integer key prefix length making #t O(1); host side and JIT side share the same hash/bucket layout.
Arena allocator shows clear advantage in heavy table-creation scenarios: TableChurn 9.3x faster than Lua — no GC, bulk free.
Regex scenarios being slower than Lua is acceptable (Gsub 0.06x, FindPattern 0.12x, Gmatch 0.21x): uses more powerful ECMAScript Boost.Regex (not Lua pattern), with compile caching; different capability, not a target to match.
Remaining slow items are dominated by call dispatch overhead: GCD (0.45x), ToNumber (0.53x), ToString (0.74x), Variadic (0.91x) have extremely small function bodies (< 1 µs); JIT CVar boxing/unboxing and calling convention overhead dominate — not the computation itself being slow. Cross-function inlining or calling convention optimization is needed to catch up.
Note: ToNumber bench parses the same input string
"1234567890"on both sides. The remaining gap is mainly from singleCall()dispatch and string boxing constant overhead, not parsing itself.
Below is the complete google benchmark output for all 51 scenarios from benchmark_algo.cpp / benchmark_string.cpp / benchmark_table.cpp / benchmark_function.cpp / benchmark_gc.cpp / benchmark_math.cpp (including TCC data):
⚠️ The eight lines for
BM_*_StringFindPattern/BM_*_StringGmatchare old data from before the[0-9]+correction; the two sides have unequal workloads and should not be compared. Use the corrected values in the tables above.
<string>:1561: warning: assignment of read-only location
Starting benchmarks...
2026-08-14T12:05:23+08:00
Running ./bin/bench_mark
Run on (2 X 2595.12 MHz CPU s)
CPU Caches:
L1 Data 32 KiB (x2)
L1 Instruction 32 KiB (x2)
L2 Unified 4096 KiB (x2)
L3 Unified 16384 KiB (x1)
Load Average: 5.87, 5.69, 4.54
***WARNING*** ASLR is enabled, the results may have unreproducible noise in them.
----------------------------------------------------------------------------
Benchmark Time CPU Iterations
----------------------------------------------------------------------------
BM_CPP_BinarySearch/100 7,735 ns 4,893 ns 143,193
BM_CPP_BinarySearch/1000 94,468 ns 65,183 ns 10,769
BM_CPP_BinarySearch/500 53,068 ns 29,810 ns 23,430
BM_CPP_BubbleSort/100 98,467 ns 62,909 ns 11,127
BM_CPP_BubbleSort/200 388,207 ns 249,256 ns 2,800
BM_CPP_BubbleSort/50 26,237 ns 15,964 ns 43,992
BM_CPP_Closure/100 792 ns 551 ns 1,272,292
BM_CPP_Closure/1000 8,993 ns 5,466 ns 128,618
BM_CPP_EmptyCall/10000 9 ns 5 ns 127,122,452
BM_CPP_EmptyCall/100000 8 ns 5 ns 127,515,986
BM_CPP_FastPow/1234567/7654321/1000000007 514 ns 297 ns 2,357,197
BM_CPP_FastPow/2/1000/1000000007 261 ns 121 ns 5,799,249
BM_CPP_FastPow/7/1000000/1000000007 373 ns 205 ns 3,429,130
BM_CPP_Fibonacci/20 342,994 ns 188,804 ns 3,720
BM_CPP_Fibonacci/25 3,686,904 ns 2,091,372 ns 333
BM_CPP_Fibonacci/30 37,599,358 ns 23,298,280 ns 30
BM_CPP_Fibonacci/32 99,812,719 ns 60,640,845 ns 12
BM_CPP_FloatPoly/1000000 7,930,843 ns 5,847,105 ns 120
BM_CPP_GCD/123456789/987654321 82 ns 44 ns 15,634,680
BM_CPP_GCD/2147483647/1073741823 65 ns 39 ns 17,808,461
BM_CPP_GCD/832040/514229 270 ns 181 ns 3,855,731
BM_CPP_HashInsert/100 42,343 ns 25,099 ns 27,962
BM_CPP_HashInsert/1000 404,595 ns 288,678 ns 2,410
BM_CPP_HashInsert/500 224,686 ns 141,863 ns 4,922
BM_CPP_HashLookup/100 540,670 ns 308,545 ns 2,270
BM_CPP_HashLookup/1000 763,223 ns 492,689 ns 1,426
BM_CPP_HashLookup/500 609,514 ns 389,886 ns 1,793
BM_CPP_InsertionSort/100 51,359 ns 30,374 ns 23,049
BM_CPP_InsertionSort/200 204,452 ns 118,372 ns 5,882
BM_CPP_InsertionSort/50 13,938 ns 8,006 ns 88,502
BM_CPP_MatMul 485 ns 247 ns 2,846,106
BM_CPP_MathExpLog/100000 7,276,256 ns 4,629,740 ns 151
BM_CPP_MathMinMax/100000 3,610,545 ns 2,396,188 ns 291
BM_CPP_MathSqrt/100000 906,821 ns 571,279 ns 1,234
BM_CPP_MathTrig/100000 5,398,646 ns 3,531,282 ns 199
BM_CPP_MixedAlloc/100 32,146 ns 23,078 ns 30,205
BM_CPP_MixedAlloc/1000 433,047 ns 234,244 ns 2,990
BM_CPP_MixedAlloc/500 200,939 ns 116,896 ns 5,985
BM_CPP_MultiReturn/1000 10,052 ns 5,480 ns 126,527
BM_CPP_MultiReturn/10000 91,075 ns 54,916 ns 12,734
BM_CPP_NestedTable/1000 91,243 ns 60,937 ns 11,457
BM_CPP_NestedTable/10000 1,132,805 ns 607,423 ns 1,155
BM_CPP_Popcount/1000 48,426 ns 32,558 ns 21,481
BM_CPP_Popcount/10000 649,786 ns 408,784 ns 1,712
BM_CPP_Popcount/100000 7,400,519 ns 5,004,960 ns 140
BM_CPP_PowMod/1234567/7654321/1000000007 489 ns 297 ns 2,355,934
BM_CPP_PowMod/2/1000/1000000007 192 ns 121 ns 5,817,991
BM_CPP_PowMod/7/1000000/1000000007 329 ns 205 ns 3,395,045
BM_CPP_Recursion/10 2,623 ns 1,517 ns 461,648
BM_CPP_Recursion/20 306,905 ns 188,664 ns 3,708
BM_CPP_Recursion/25 3,584,836 ns 2,076,389 ns 337
BM_CPP_Sieve/100 2,194 ns 1,462 ns 476,278
BM_CPP_Sieve/1000 27,651 ns 15,057 ns 46,837
BM_CPP_Sieve/500 14,586 ns 7,367 ns 94,648
BM_CPP_Sieve/5000 125,191 ns 79,410 ns 8,797
BM_CPP_StringByte/10 30 ns 16 ns 41,418,033
BM_CPP_StringByte/100 27 ns 16 ns 41,401,382
BM_CPP_StringByte/1000 27 ns 16 ns 41,359,841
BM_CPP_StringChar/10 348 ns 208 ns 3,374,227
BM_CPP_StringChar/100 2,491 ns 1,459 ns 479,078
BM_CPP_StringChar/500 11,997 ns 6,820 ns 102,786
BM_CPP_StringChurn/100 52,805 ns 29,398 ns 23,705
BM_CPP_StringChurn/1000 572,837 ns 302,474 ns 2,282
BM_CPP_StringChurn/500 231,629 ns 152,176 ns 4,647
BM_CPP_StringFind/10 105 ns 66 ns 10,555,668
BM_CPP_StringFind/100 132 ns 66 ns 10,629,430
BM_CPP_StringFind/1000 123 ns 70 ns 9,901,078
BM_CPP_StringFind/10000 209 ns 130 ns 5,445,641
BM_CPP_StringFindPattern/1000 359,361 ns 193,176 ns 3,608
BM_CPP_StringFormat/10 845 ns 522 ns 1,337,811
BM_CPP_StringFormat/100 7,618 ns 5,158 ns 132,433
BM_CPP_StringFormat/500 43,386 ns 28,435 ns 24,749
BM_CPP_StringGmatch/1000 437,710 ns 226,440 ns 3,092
BM_CPP_StringGsub/10 277 ns 184 ns 3,792,558
BM_CPP_StringGsub/100 2,760 ns 1,736 ns 407,043
BM_CPP_StringGsub/1000 27,888 ns 17,248 ns 40,720
BM_CPP_StringLen/10 27 ns 16 ns 41,401,789
BM_CPP_StringLen/100 26 ns 16 ns 41,582,886
BM_CPP_StringLen/1000 26 ns 16 ns 41,425,791
BM_CPP_StringLen/10000 23 ns 16 ns 41,620,113
BM_CPP_StringLower/10 306 ns 195 ns 3,601,028
BM_CPP_StringLower/100 2,325 ns 1,348 ns 521,413
BM_CPP_StringLower/1000 22,828 ns 12,466 ns 56,209
BM_CPP_StringLower/10000 195,537 ns 123,952 ns 5,665
BM_CPP_StringRep/10 739 ns 420 ns 1,655,571
BM_CPP_StringRep/100 5,540 ns 3,120 ns 225,710
BM_CPP_StringRep/1000 49,757 ns 30,123 ns 23,272
BM_CPP_StringReverse/10 175 ns 103 ns 6,811,517
BM_CPP_StringReverse/100 692 ns 450 ns 1,556,938
BM_CPP_StringReverse/1000 5,818 ns 3,468 ns 200,200
BM_CPP_StringReverse/10000 53,508 ns 34,013 ns 20,679
BM_CPP_StringSub/10 151 ns 91 ns 7,642,290
BM_CPP_StringSub/100 212 ns 134 ns 5,214,628
BM_CPP_StringSub/1000 211 ns 143 ns 4,924,983
BM_CPP_StringSub/10000 566 ns 369 ns 1,910,754
BM_CPP_StringUpper/10 331 ns 194 ns 3,595,139
BM_CPP_StringUpper/100 2,405 ns 1,347 ns 521,995
BM_CPP_StringUpper/1000 21,399 ns 12,455 ns 55,977
BM_CPP_StringUpper/10000 214,600 ns 123,125 ns 5,676
BM_CPP_Sum/10000 87,621 ns 54,921 ns 12,724
BM_CPP_Sum/100000 855,607 ns 548,039 ns 1,282
BM_CPP_Sum/1000000 8,922,555 ns 5,483,076 ns 128
BM_CPP_Sum/5000000 40,471,358 ns 27,449,499 ns 26
BM_CPP_TableChurn/100 8,172 ns 5,265 ns 131,011
BM_CPP_TableChurn/1000 76,141 ns 52,421 ns 13,634
BM_CPP_TableChurn/500 50,410 ns 26,018 ns 26,612
BM_CPP_TableConcat/100 12,265 ns 8,491 ns 82,644
BM_CPP_TableConcat/1000 124,859 ns 87,820 ns 7,873
BM_CPP_TableConcat/500 83,736 ns 43,958 ns 15,941
BM_CPP_TableCreate/1000 19,036 ns 11,735 ns 59,861
BM_CPP_TableCreate/3000 53,314 ns 34,985 ns 20,129
BM_CPP_TableCreate/5000 89,021 ns 58,477 ns 12,039
BM_CPP_TableInsert/100 1,047 ns 659 ns 1,075,111
BM_CPP_TableInsert/1000 11,124 ns 5,875 ns 120,021
BM_CPP_TableInsert/500 5,603 ns 2,984 ns 234,160
BM_CPP_TableInsert/5000 44,146 ns 28,972 ns 24,187
BM_CPP_TableMove/100 3,080 ns 1,905 ns 366,242
BM_CPP_TableMove/1000 25,244 ns 17,827 ns 39,325
BM_CPP_TableMove/500 15,080 ns 9,002 ns 77,536
BM_CPP_TableMove/5000 144,251 ns 88,188 ns 7,924
BM_CPP_TablePack/1 10 ns 5 ns 127,192,129
BM_CPP_TableRemove/100 3,206 ns 1,792 ns 389,950
BM_CPP_TableRemove/1000 32,342 ns 17,231 ns 40,355
BM_CPP_TableRemove/500 14,258 ns 8,737 ns 81,578
BM_CPP_TableRemove/5000 167,448 ns 85,880 ns 8,243
BM_CPP_TableSort/100 8,862 ns 5,155 ns 137,027
BM_CPP_TableSort/1000 87,764 ns 69,572 ns 10,079
BM_CPP_TableSort/500 53,222 ns 33,132 ns 21,144
BM_CPP_TailRecursion/100 1,049 ns 553 ns 1,267,372
BM_CPP_TailRecursion/1000 9,701 ns 5,491 ns 127,230
BM_CPP_TailRecursion/5000 45,927 ns 27,491 ns 25,469
BM_CPP_ToNumber/1 167 ns 96 ns 7,262,672
BM_CPP_ToString/10 1,205 ns 872 ns 802,717
BM_CPP_ToString/100 13,072 ns 8,462 ns 84,581
BM_CPP_ToString/500 70,978 ns 44,001 ns 16,041
BM_CPP_Variadic/1 18 ns 10 ns 64,199,090
BM_CPP_Vector3/10000 85,966 ns 52,871 ns 13,291
BM_CPP_Vector3/100000 984,296 ns 527,532 ns 1,322
BM_CPP_Vector3/1000000 10,423,974 ns 5,285,754 ns 133
BM_FakeLua_BinarySearch_GCC/100 13,922 ns 8,156 ns 85,400
BM_FakeLua_BinarySearch_GCC/1000 271,491 ns 156,553 ns 4,320
BM_FakeLua_BinarySearch_GCC/500 122,929 ns 67,590 ns 10,333
BM_FakeLua_BinarySearch_TCC/100 81,768 ns 52,935 ns 13,579
BM_FakeLua_BinarySearch_TCC/1000 1,422,010 ns 874,824 ns 774
BM_FakeLua_BinarySearch_TCC/500 660,936 ns 373,850 ns 1,911
BM_FakeLua_BubbleSort_GCC/100 230,707 ns 175,479 ns 3,985
BM_FakeLua_BubbleSort_GCC/200 1,244,348 ns 698,588 ns 1,007
BM_FakeLua_BubbleSort_GCC/50 83,555 ns 44,675 ns 15,516
BM_FakeLua_BubbleSort_TCC/100 1,454,647 ns 836,477 ns 816
BM_FakeLua_BubbleSort_TCC/200 5,488,115 ns 3,256,166 ns 213
BM_FakeLua_BubbleSort_TCC/50 293,114 ns 211,591 ns 3,390
BM_FakeLua_Closure_GCC/100 19,181 ns 11,046 ns 63,564
BM_FakeLua_Closure_GCC/1000 211,068 ns 106,248 ns 6,492
BM_FakeLua_Closure_TCC/100 36,088 ns 21,576 ns 32,483
BM_FakeLua_Closure_TCC/1000 354,499 ns 211,904 ns 3,347
BM_FakeLua_EmptyCall_GCC/10000 56,352 ns 30,976 ns 23,093
BM_FakeLua_EmptyCall_GCC/100000 557,461 ns 307,805 ns 2,283
BM_FakeLua_EmptyCall_TCC/10000 367,650 ns 256,049 ns 2,730
BM_FakeLua_EmptyCall_TCC/100000 5,327,379 ns 2,558,148 ns 272
BM_FakeLua_FastPow_GCC/1234567/7654321/1000000007 1,095 ns 729 ns 957,306
BM_FakeLua_FastPow_GCC/2/1000/1000000007 919 ns 531 ns 1,320,878
BM_FakeLua_FastPow_GCC/7/1000000/1000000007 1,008 ns 632 ns 1,110,756
BM_FakeLua_FastPow_TCC/1234567/7654321/1000000007 1,148 ns 818 ns 863,171
BM_FakeLua_FastPow_TCC/2/1000/1000000007 864 ns 630 ns 1,111,709
BM_FakeLua_FastPow_TCC/7/1000000/1000000007 1,241 ns 734 ns 956,152
BM_FakeLua_Fibonacci_GCC/20 45,729 ns 29,702 ns 24,017
BM_FakeLua_Fibonacci_GCC/25 385,589 ns 271,393 ns 2,570
BM_FakeLua_Fibonacci_GCC/30 5,624,615 ns 2,967,464 ns 241
BM_FakeLua_Fibonacci_GCC/32 12,786,224 ns 7,590,283 ns 93
BM_FakeLua_Fibonacci_TCC/20 123,444 ns 78,774 ns 9,099
BM_FakeLua_Fibonacci_TCC/25 1,350,023 ns 855,121 ns 805
BM_FakeLua_Fibonacci_TCC/30 12,850,953 ns 9,452,837 ns 74
BM_FakeLua_Fibonacci_TCC/32 38,140,319 ns 24,861,804 ns 28
BM_FakeLua_FloatPoly_GCC/1000000 4,232,156 ns 2,865,423 ns 245
BM_FakeLua_FloatPoly_TCC/1000000 22,886,829 ns 13,789,552 ns 50
BM_FakeLua_GCD_GCC/123456789/987654321 654 ns 423 ns 1,654,415
BM_FakeLua_GCD_GCC/2147483647/1073741823 620 ns 421 ns 1,665,114
BM_FakeLua_GCD_GCC/832040/514229 824 ns 520 ns 1,353,393
BM_FakeLua_GCD_TCC/123456789/987654321 784 ns 490 ns 1,442,922
BM_FakeLua_GCD_TCC/2147483647/1073741823 817 ns 478 ns 1,444,175
BM_FakeLua_GCD_TCC/832040/514229 994 ns 615 ns 1,145,840
BM_FakeLua_HashInsert_GCC/100 39,491 ns 24,481 ns 28,788
BM_FakeLua_HashInsert_GCC/1000 394,557 ns 253,863 ns 2,777
BM_FakeLua_HashInsert_GCC/500 209,448 ns 119,708 ns 5,816
BM_FakeLua_HashInsert_TCC/100 62,986 ns 39,308 ns 17,965
BM_FakeLua_HashInsert_TCC/1000 709,844 ns 432,322 ns 1,607
BM_FakeLua_HashInsert_TCC/500 288,573 ns 189,151 ns 3,702
BM_FakeLua_HashLookup_GCC/100 32,466 ns 22,404 ns 31,590
BM_FakeLua_HashLookup_GCC/1000 363,678 ns 222,897 ns 3,149
BM_FakeLua_HashLookup_GCC/500 161,127 ns 111,924 ns 6,177
BM_FakeLua_HashLookup_TCC/100 50,594 ns 30,941 ns 22,728
BM_FakeLua_HashLookup_TCC/1000 541,329 ns 316,970 ns 2,207
BM_FakeLua_HashLookup_TCC/500 271,060 ns 156,821 ns 4,417
BM_FakeLua_InsertionSort_GCC/100 154,078 ns 89,101 ns 7,854
BM_FakeLua_InsertionSort_GCC/200 584,821 ns 345,628 ns 2,021
BM_FakeLua_InsertionSort_GCC/50 44,420 ns 23,795 ns 29,465
BM_FakeLua_InsertionSort_TCC/100 902,132 ns 532,541 ns 1,398
BM_FakeLua_InsertionSort_TCC/200 3,914,237 ns 2,087,508 ns 346
BM_FakeLua_InsertionSort_TCC/50 233,170 ns 139,290 ns 4,924
BM_FakeLua_MatMul_GCC 2,165 ns 1,260 ns 545,399
BM_FakeLua_MatMul_TCC 6,551 ns 4,132 ns 166,327
BM_FakeLua_MathExpLog_GCC/100000 5,721,714 ns 4,046,541 ns 174
BM_FakeLua_MathExpLog_TCC/100000 17,934,875 ns 11,444,546 ns 61
BM_FakeLua_MathMinMax_GCC/100000 3,704,800 ns 2,159,112 ns 323
BM_FakeLua_MathMinMax_TCC/100000 19,676,004 ns 11,465,920 ns 62
BM_FakeLua_MathSqrt_GCC/100000 464,885 ns 275,825 ns 2,537
BM_FakeLua_MathSqrt_TCC/100000 6,879,179 ns 4,166,763 ns 168
BM_FakeLua_MathTrig_GCC/100000 5,560,194 ns 3,058,615 ns 229
BM_FakeLua_MathTrig_TCC/100000 21,645,316 ns 11,484,684 ns 61
BM_FakeLua_MixedAlloc_GCC/100 62,577 ns 40,070 ns 17,411
BM_FakeLua_MixedAlloc_GCC/1000 536,218 ns 393,414 ns 1,779
BM_FakeLua_MixedAlloc_GCC/500 310,651 ns 197,231 ns 3,526
BM_FakeLua_MixedAlloc_TCC/100 102,126 ns 62,232 ns 11,196
BM_FakeLua_MixedAlloc_TCC/1000 973,380 ns 628,448 ns 1,111
BM_FakeLua_MixedAlloc_TCC/500 521,024 ns 314,661 ns 2,229
BM_FakeLua_MultiReturn_GCC/1000 4,766 ns 2,915 ns 240,764
BM_FakeLua_MultiReturn_GCC/10000 44,533 ns 25,062 ns 27,754
BM_FakeLua_MultiReturn_TCC/1000 9,596 ns 5,775 ns 124,053
BM_FakeLua_MultiReturn_TCC/10000 84,003 ns 52,909 ns 13,405
BM_FakeLua_NestedTable_GCC/1000 138,830 ns 85,672 ns 8,199
BM_FakeLua_NestedTable_GCC/10000 1,448,717 ns 845,455 ns 813
BM_FakeLua_NestedTable_TCC/1000 769,763 ns 444,952 ns 1,569
BM_FakeLua_NestedTable_TCC/10000 7,183,922 ns 4,455,904 ns 158
BM_FakeLua_Popcount_GCC/1000 6,777 ns 4,367 ns 160,915
BM_FakeLua_Popcount_GCC/10000 89,012 ns 48,663 ns 14,499
BM_FakeLua_Popcount_GCC/100000 1,016,120 ns 592,552 ns 1,160
BM_FakeLua_Popcount_TCC/1000 21,598 ns 13,338 ns 52,591
BM_FakeLua_Popcount_TCC/10000 268,037 ns 153,982 ns 4,337
BM_FakeLua_Popcount_TCC/100000 2,767,183 ns 1,913,541 ns 375
BM_FakeLua_PowMod_GCC/1234567/7654321/1000000007 1,209 ns 759 ns 928,849
BM_FakeLua_PowMod_GCC/2/1000/1000000007 830 ns 559 ns 1,262,622
BM_FakeLua_PowMod_GCC/7/1000000/1000000007 957 ns 666 ns 1,059,056
BM_FakeLua_PowMod_TCC/1234567/7654321/1000000007 1,821 ns 1,084 ns 645,501
BM_FakeLua_PowMod_TCC/2/1000/1000000007 1,222 ns 720 ns 977,040
BM_FakeLua_PowMod_TCC/7/1000000/1000000007 1,492 ns 947 ns 733,551
BM_FakeLua_Recursion_GCC/10 928 ns 578 ns 1,197,261
BM_FakeLua_Recursion_GCC/20 48,722 ns 30,172 ns 23,410
BM_FakeLua_Recursion_GCC/25 386,863 ns 269,108 ns 2,586
BM_FakeLua_Recursion_TCC/10 1,702 ns 1,089 ns 639,131
BM_FakeLua_Recursion_TCC/20 138,307 ns 79,106 ns 8,834
BM_FakeLua_Recursion_TCC/25 1,453,790 ns 857,782 ns 801
BM_FakeLua_Sieve_GCC/100 6,701 ns 3,979 ns 175,646
BM_FakeLua_Sieve_GCC/1000 63,689 ns 35,024 ns 19,847
BM_FakeLua_Sieve_GCC/500 29,989 ns 17,088 ns 40,695
BM_FakeLua_Sieve_GCC/5000 344,444 ns 213,124 ns 3,359
BM_FakeLua_Sieve_TCC/100 29,560 ns 17,487 ns 39,646
BM_FakeLua_Sieve_TCC/1000 263,604 ns 172,742 ns 4,041
BM_FakeLua_Sieve_TCC/500 143,477 ns 85,340 ns 8,216
BM_FakeLua_Sieve_TCC/5000 1,780,537 ns 1,041,591 ns 679
BM_FakeLua_StringByte_GCC/10 939 ns 531 ns 1,304,736
BM_FakeLua_StringByte_GCC/100 951 ns 576 ns 1,226,213
BM_FakeLua_StringByte_GCC/1000 1,003 ns 603 ns 1,162,886
BM_FakeLua_StringByte_TCC/10 983 ns 593 ns 1,206,309
BM_FakeLua_StringByte_TCC/100 1,000 ns 638 ns 1,076,212
BM_FakeLua_StringByte_TCC/1000 1,140 ns 666 ns 1,037,743
BM_FakeLua_StringChar_GCC/10 4,717 ns 2,785 ns 252,981
BM_FakeLua_StringChar_GCC/100 26,150 ns 16,053 ns 43,522
BM_FakeLua_StringChar_GCC/500 124,214 ns 72,588 ns 9,375
BM_FakeLua_StringChar_TCC/10 7,145 ns 4,461 ns 157,332
BM_FakeLua_StringChar_TCC/100 56,569 ns 31,568 ns 22,304
BM_FakeLua_StringChar_TCC/500 214,876 ns 144,492 ns 4,830
BM_FakeLua_StringChurn_GCC/100 65,339 ns 44,656 ns 15,766
BM_FakeLua_StringChurn_GCC/1000 826,591 ns 443,901 ns 1,576
BM_FakeLua_StringChurn_GCC/500 365,738 ns 223,272 ns 3,136
BM_FakeLua_StringChurn_TCC/100 90,760 ns 57,091 ns 12,523
BM_FakeLua_StringChurn_TCC/1000 1,114,236 ns 571,149 ns 1,237
BM_FakeLua_StringChurn_TCC/500 513,027 ns 283,598 ns 2,459
BM_FakeLua_StringFindPattern_GCC/1000 11,580,621 ns 7,654,594 ns 91
BM_FakeLua_StringFindPattern_TCC/1000 13,050,656 ns 7,914,296 ns 88
BM_FakeLua_StringFind_GCC/10 2,628 ns 1,647 ns 424,630
BM_FakeLua_StringFind_GCC/100 2,637 ns 1,654 ns 421,490
BM_FakeLua_StringFind_GCC/1000 2,950 ns 1,723 ns 410,605
BM_FakeLua_StringFind_GCC/10000 3,955 ns 2,502 ns 276,271
BM_FakeLua_StringFind_TCC/10 2,650 ns 1,713 ns 409,465
BM_FakeLua_StringFind_TCC/100 2,782 ns 1,721 ns 404,834
BM_FakeLua_StringFind_TCC/1000 2,985 ns 1,771 ns 394,892
BM_FakeLua_StringFind_TCC/10000 3,996 ns 2,588 ns 272,588
BM_FakeLua_StringFormat_GCC/10 3,354 ns 1,954 ns 356,680
BM_FakeLua_StringFormat_GCC/100 26,095 ns 15,567 ns 44,584
BM_FakeLua_StringFormat_GCC/500 119,442 ns 77,076 ns 8,998
BM_FakeLua_StringFormat_TCC/10 3,333 ns 2,324 ns 299,598
BM_FakeLua_StringFormat_TCC/100 29,993 ns 18,834 ns 36,855
BM_FakeLua_StringFormat_TCC/500 160,453 ns 93,895 ns 7,480
BM_FakeLua_StringGmatch_GCC/1000 8,819,264 ns 5,272,718 ns 130
BM_FakeLua_StringGmatch_TCC/1000 9,236,472 ns 5,559,361 ns 126
BM_FakeLua_StringGsub_GCC/10 13,205 ns 8,969 ns 78,419
BM_FakeLua_StringGsub_GCC/100 103,458 ns 68,161 ns 10,359
BM_FakeLua_StringGsub_GCC/1000 1,101,351 ns 657,675 ns 1,070
BM_FakeLua_StringGsub_TCC/10 13,795 ns 8,996 ns 77,772
BM_FakeLua_StringGsub_TCC/100 114,274 ns 67,941 ns 10,349
BM_FakeLua_StringGsub_TCC/1000 1,114,296 ns 658,608 ns 1,073
BM_FakeLua_StringLen_GCC/10 818 ns 492 ns 1,432,371
BM_FakeLua_StringLen_GCC/100 796 ns 540 ns 1,299,835
BM_FakeLua_StringLen_GCC/1000 866 ns 561 ns 1,246,589
BM_FakeLua_StringLen_GCC/10000 1,914 ns 1,077 ns 647,127
BM_FakeLua_StringLen_TCC/10 877 ns 535 ns 1,273,369
BM_FakeLua_StringLen_TCC/100 1,032 ns 585 ns 1,189,078
BM_FakeLua_StringLen_TCC/1000 901 ns 603 ns 1,162,520
BM_FakeLua_StringLen_TCC/10000 1,808 ns 1,112 ns 601,399
BM_FakeLua_StringLower_GCC/10 1,048 ns 600 ns 1,152,148
BM_FakeLua_StringLower_GCC/100 1,393 ns 702 ns 1,001,106
BM_FakeLua_StringLower_GCC/1000 1,551 ns 846 ns 816,183
BM_FakeLua_StringLower_GCC/10000 5,043 ns 2,822 ns 251,014
BM_FakeLua_StringLower_TCC/10 1,073 ns 692 ns 1,016,288
BM_FakeLua_StringLower_TCC/100 1,855 ns 1,212 ns 583,384
BM_FakeLua_StringLower_TCC/1000 8,751 ns 5,402 ns 128,947
BM_FakeLua_StringLower_TCC/10000 86,072 ns 48,207 ns 14,542
BM_FakeLua_StringRep_GCC/10 1,033 ns 671 ns 1,049,153
BM_FakeLua_StringRep_GCC/100 1,806 ns 1,100 ns 630,280
BM_FakeLua_StringRep_GCC/1000 8,126 ns 4,888 ns 141,355
BM_FakeLua_StringRep_TCC/10 1,328 ns 752 ns 927,065
BM_FakeLua_StringRep_TCC/100 2,358 ns 1,389 ns 505,237
BM_FakeLua_StringRep_TCC/1000 10,189 ns 7,129 ns 98,349
BM_FakeLua_StringReverse_GCC/10 1,109 ns 604 ns 1,148,807
BM_FakeLua_StringReverse_GCC/100 1,397 ns 765 ns 919,546
BM_FakeLua_StringReverse_GCC/1000 2,668 ns 1,438 ns 477,188
BM_FakeLua_StringReverse_GCC/10000 14,935 ns 8,698 ns 78,927
BM_FakeLua_StringReverse_TCC/10 925 ns 681 ns 1,037,089
BM_FakeLua_StringReverse_TCC/100 1,870 ns 1,066 ns 657,331
BM_FakeLua_StringReverse_TCC/1000 6,110 ns 4,063 ns 172,547
BM_FakeLua_StringReverse_TCC/10000 52,709 ns 34,603 ns 20,307
BM_FakeLua_StringSub_GCC/10 2,264 ns 1,345 ns 518,241
BM_FakeLua_StringSub_GCC/100 2,557 ns 1,430 ns 489,733
BM_FakeLua_StringSub_GCC/1000 2,763 ns 1,490 ns 466,344
BM_FakeLua_StringSub_GCC/10000 4,070 ns 2,268 ns 306,435
BM_FakeLua_StringSub_TCC/10 2,372 ns 1,390 ns 508,219
BM_FakeLua_StringSub_TCC/100 2,314 ns 1,485 ns 474,333
BM_FakeLua_StringSub_TCC/1000 3,228 ns 1,543 ns 458,387
BM_FakeLua_StringSub_TCC/10000 3,832 ns 2,334 ns 301,764
BM_FakeLua_StringUpper_GCC/10 1,127 ns 601 ns 1,168,948
BM_FakeLua_StringUpper_GCC/100 1,114 ns 702 ns 992,199
BM_FakeLua_StringUpper_GCC/1000 1,386 ns 850 ns 820,082
BM_FakeLua_StringUpper_GCC/10000 5,104 ns 2,832 ns 248,824
BM_FakeLua_StringUpper_TCC/10 1,169 ns 696 ns 1,006,148
BM_FakeLua_StringUpper_TCC/100 2,031 ns 1,214 ns 575,272
BM_FakeLua_StringUpper_TCC/1000 10,406 ns 5,421 ns 129,932
BM_FakeLua_StringUpper_TCC/10000 81,506 ns 48,151 ns 14,489
BM_FakeLua_Sum_GCC/10000 6,452 ns 3,508 ns 199,582
BM_FakeLua_Sum_GCC/100000 50,566 ns 31,381 ns 22,327
BM_FakeLua_Sum_GCC/1000000 578,521 ns 309,437 ns 2,250
BM_FakeLua_Sum_GCC/5000000 3,098,218 ns 1,547,859 ns 453
BM_FakeLua_Sum_TCC/10000 37,857 ns 24,934 ns 27,821
BM_FakeLua_Sum_TCC/100000 417,183 ns 246,397 ns 2,850
BM_FakeLua_Sum_TCC/1000000 4,479,399 ns 2,452,786 ns 283
BM_FakeLua_Sum_TCC/5000000 18,728,703 ns 12,321,859 ns 56
BM_FakeLua_TableChurn_GCC/100 11,409 ns 6,971 ns 100,756
BM_FakeLua_TableChurn_GCC/1000 119,994 ns 65,155 ns 10,754
BM_FakeLua_TableChurn_GCC/500 43,896 ns 33,036 ns 21,217
BM_FakeLua_TableChurn_TCC/100 57,082 ns 36,778 ns 19,044
BM_FakeLua_TableChurn_TCC/1000 466,370 ns 354,670 ns 1,972
BM_FakeLua_TableChurn_TCC/500 281,725 ns 182,147 ns 3,900
BM_FakeLua_TableConcat_GCC/100 58,710 ns 38,108 ns 18,314
BM_FakeLua_TableConcat_GCC/1000 708,780 ns 365,628 ns 1,886
BM_FakeLua_TableConcat_GCC/500 309,868 ns 185,102 ns 3,781
BM_FakeLua_TableConcat_TCC/100 101,629 ns 54,515 ns 13,123
BM_FakeLua_TableConcat_TCC/1000 914,385 ns 523,737 ns 1,328
BM_FakeLua_TableConcat_TCC/500 487,979 ns 262,511 ns 2,665
BM_FakeLua_TableCreate_GCC/1000 33,890 ns 20,427 ns 34,468
BM_FakeLua_TableCreate_GCC/3000 117,469 ns 69,451 ns 10,059
BM_FakeLua_TableCreate_GCC/5000 251,652 ns 128,429 ns 5,479
BM_FakeLua_TableCreate_TCC/1000 193,548 ns 117,177 ns 6,020
BM_FakeLua_TableCreate_TCC/3000 605,946 ns 392,114 ns 1,794
BM_FakeLua_TableCreate_TCC/5000 1,235,125 ns 705,496 ns 988
BM_FakeLua_TableInsert_GCC/100 5,796 ns 3,230 ns 217,272
BM_FakeLua_TableInsert_GCC/1000 37,577 ns 23,234 ns 30,067
BM_FakeLua_TableInsert_GCC/500 18,496 ns 12,007 ns 57,879
BM_FakeLua_TableInsert_GCC/5000 230,109 ns 141,009 ns 4,927
BM_FakeLua_TableInsert_TCC/100 25,990 ns 14,008 ns 51,081
BM_FakeLua_TableInsert_TCC/1000 190,463 ns 121,881 ns 5,882
BM_FakeLua_TableInsert_TCC/500 122,192 ns 62,347 ns 11,427
BM_FakeLua_TableInsert_TCC/5000 1,128,122 ns 726,417 ns 929
BM_FakeLua_TableMove_GCC/100 8,264 ns 5,510 ns 123,002
BM_FakeLua_TableMove_GCC/1000 65,516 ns 40,768 ns 17,565
BM_FakeLua_TableMove_GCC/500 31,437 ns 20,959 ns 33,710
BM_FakeLua_TableMove_GCC/5000 415,416 ns 250,364 ns 2,806
BM_FakeLua_TableMove_TCC/100 40,035 ns 23,025 ns 30,393
BM_FakeLua_TableMove_TCC/1000 291,431 ns 196,812 ns 3,556
BM_FakeLua_TableMove_TCC/500 148,661 ns 99,540 ns 7,076
BM_FakeLua_TableMove_TCC/5000 1,689,098 ns 1,175,769 ns 595
BM_FakeLua_TablePack_GCC/1 1,240 ns 784 ns 894,882
BM_FakeLua_TablePack_TCC/1 3,413 ns 1,830 ns 383,737
BM_FakeLua_TableRemove_GCC/100 10,904 ns 5,496 ns 128,245
BM_FakeLua_TableRemove_GCC/1000 84,466 ns 46,212 ns 15,196
BM_FakeLua_TableRemove_GCC/500 37,355 ns 23,386 ns 28,737
BM_FakeLua_TableRemove_GCC/5000 430,685 ns 256,491 ns 2,710
BM_FakeLua_TableRemove_TCC/100 41,184 ns 23,119 ns 30,006
BM_FakeLua_TableRemove_TCC/1000 419,694 ns 215,409 ns 3,251
BM_FakeLua_TableRemove_TCC/500 177,077 ns 107,216 ns 6,561
BM_FakeLua_TableRemove_TCC/5000 1,793,838 ns 1,185,962 ns 589
BM_FakeLua_TableSort_GCC/100 44,298 ns 28,004 ns 25,024
BM_FakeLua_TableSort_GCC/1000 562,565 ns 330,027 ns 2,138
BM_FakeLua_TableSort_GCC/500 271,424 ns 154,615 ns 4,519
BM_FakeLua_TableSort_TCC/100 66,261 ns 39,107 ns 17,856
BM_FakeLua_TableSort_TCC/1000 730,477 ns 431,083 ns 1,617
BM_FakeLua_TableSort_TCC/500 306,301 ns 206,069 ns 3,371
BM_FakeLua_TailRecursion_GCC/100 777 ns 426 ns 1,648,769
BM_FakeLua_TailRecursion_GCC/1000 1,205 ns 712 ns 979,895
BM_FakeLua_TailRecursion_GCC/5000 3,796 ns 1,951 ns 358,052
BM_FakeLua_TailRecursion_TCC/100 1,584 ns 927 ns 759,379
BM_FakeLua_TailRecursion_TCC/1000 9,233 ns 5,203 ns 100,000
BM_FakeLua_TailRecursion_TCC/5000 42,186 ns 24,371 ns 29,042
BM_FakeLua_ToNumber_GCC/1 802 ns 542 ns 1,304,733
BM_FakeLua_ToNumber_TCC/1 1,150 ns 693 ns 1,016,080
BM_FakeLua_ToString_GCC/10 1,194 ns 647 ns 1,097,100
BM_FakeLua_ToString_GCC/100 979 ns 646 ns 1,079,352
BM_FakeLua_ToString_GCC/500 1,059 ns 650 ns 1,080,277
BM_FakeLua_ToString_TCC/10 1,174 ns 701 ns 1,016,080
BM_FakeLua_ToString_TCC/100 1,203 ns 700 ns 987,485
BM_FakeLua_ToString_TCC/500 959 ns 701 ns 999,183
BM_FakeLua_Variadic_GCC/1 1,215 ns 754 ns 928,022
BM_FakeLua_Variadic_TCC/1 2,233 ns 1,224 ns 575,243
BM_FakeLua_Vector3_GCC/10000 607,809 ns 309,974 ns 2,261
BM_FakeLua_Vector3_GCC/100000 4,839,630 ns 3,056,228 ns 228
BM_FakeLua_Vector3_GCC/1000000 47,773,627 ns 30,897,897 ns 22
BM_FakeLua_Vector3_TCC/10000 3,344,400 ns 2,091,722 ns 331
BM_FakeLua_Vector3_TCC/100000 42,147,447 ns 21,209,412 ns 33
BM_FakeLua_Vector3_TCC/1000000 347,663,874 ns 210,547,754 ns 3
BM_Lua_BinarySearch/100 60,634 ns 37,029 ns 18,896
BM_Lua_BinarySearch/1000 959,697 ns 580,933 ns 1,221
BM_Lua_BinarySearch/500 440,300 ns 254,492 ns 2,758
BM_Lua_BubbleSort/100 594,801 ns 338,786 ns 2,093
BM_Lua_BubbleSort/200 2,086,556 ns 1,328,612 ns 534
BM_Lua_BubbleSort/50 164,153 ns 85,624 ns 8,213
BM_Lua_Closure/100 39,957 ns 22,696 ns 30,670
BM_Lua_Closure/1000 348,764 ns 226,293 ns 3,086
BM_Lua_EmptyCall/10000 722,370 ns 439,736 ns 1,597
BM_Lua_EmptyCall/100000 7,933,740 ns 4,354,814 ns 159
BM_Lua_FastPow/1234567/7654321/1000000007 1,930 ns 1,152 ns 594,367
BM_Lua_FastPow/2/1000/1000000007 1,039 ns 593 ns 1,199,681
BM_Lua_FastPow/7/1000000/1000000007 1,725 ns 974 ns 722,218
BM_Lua_Fibonacci/20 1,569,773 ns 860,801 ns 824
BM_Lua_Fibonacci/25 15,600,871 ns 9,626,976 ns 72
BM_Lua_Fibonacci/30 168,261,430 ns 106,484,626 ns 7
BM_Lua_Fibonacci/32 503,047,483 ns 277,915,868 ns 3
BM_Lua_FloatPoly/1000000 195,928,101 ns 99,944,530 ns 7
BM_Lua_GCD/123456789/987654321 337 ns 212 ns 3,268,053
BM_Lua_GCD/2147483647/1073741823 370 ns 191 ns 3,676,078
BM_Lua_GCD/832040/514229 1,132 ns 730 ns 942,430
BM_Lua_HashInsert/100 87,286 ns 48,607 ns 14,714
BM_Lua_HashInsert/1000 786,406 ns 499,118 ns 1,378
BM_Lua_HashInsert/500 378,706 ns 241,489 ns 2,867
BM_Lua_HashLookup/100 68,701 ns 39,114 ns 17,775
BM_Lua_HashLookup/1000 649,131 ns 414,686 ns 1,713
BM_Lua_HashLookup/500 315,722 ns 205,240 ns 3,408
BM_Lua_InsertionSort/100 389,213 ns 228,283 ns 3,094
BM_Lua_InsertionSort/200 1,452,926 ns 894,653 ns 782
BM_Lua_InsertionSort/50 92,414 ns 59,708 ns 11,653
BM_Lua_MatMul 5,810 ns 3,698 ns 190,328
BM_Lua_MathExpLog/100000 30,397,983 ns 17,460,595 ns 41
BM_Lua_MathMinMax/100000 36,855,906 ns 22,431,932 ns 31
BM_Lua_MathSqrt/100000 11,202,131 ns 6,162,470 ns 112
BM_Lua_MathTrig/100000 28,341,267 ns 17,880,549 ns 39
BM_Lua_MixedAlloc/100 148,240 ns 87,270 ns 8,030
BM_Lua_MixedAlloc/1000 1,718,443 ns 897,348 ns 810
BM_Lua_MixedAlloc/500 703,958 ns 442,235 ns 1,559
BM_Lua_MultiReturn/1000 96,520 ns 59,128 ns 11,867
BM_Lua_MultiReturn/10000 926,960 ns 582,937 ns 1,229
BM_Lua_NestedTable/1000 466,508 ns 292,829 ns 2,366
BM_Lua_NestedTable/10000 5,063,234 ns 2,900,521 ns 240
BM_Lua_Popcount/1000 240,702 ns 144,200 ns 4,801
BM_Lua_Popcount/10000 2,783,275 ns 1,828,025 ns 382
BM_Lua_Popcount/100000 35,208,870 ns 22,105,500 ns 32
BM_Lua_PowMod/1234567/7654321/1000000007 2,090 ns 1,299 ns 544,422
BM_Lua_PowMod/2/1000/1000000007 1,028 ns 661 ns 1,072,320
BM_Lua_PowMod/7/1000000/1000000007 2,075 ns 1,100 ns 631,710
BM_Lua_Recursion/10 13,957 ns 8,364 ns 81,503
BM_Lua_Recursion/20 1,412,171 ns 1,043,444 ns 689
BM_Lua_Recursion/25 17,663,822 ns 11,536,223 ns 61
BM_Lua_Sieve/100 15,105 ns 9,868 ns 70,790
BM_Lua_Sieve/1000 131,859 ns 75,406 ns 9,411
BM_Lua_Sieve/500 59,479 ns 39,012 ns 17,749
BM_Lua_Sieve/5000 537,121 ns 378,408 ns 1,865
BM_Lua_StringByte/10 498 ns 303 ns 2,260,816
BM_Lua_StringByte/100 760 ns 460 ns 1,530,782
BM_Lua_StringByte/1000 927 ns 624 ns 1,147,141
BM_Lua_StringChar/10 4,724 ns 3,004 ns 233,911
BM_Lua_StringChar/100 26,038 ns 17,295 ns 40,665
BM_Lua_StringChar/500 115,847 ns 75,332 ns 9,010
BM_Lua_StringChurn/100 124,238 ns 72,452 ns 9,398
BM_Lua_StringChurn/1000 1,713,625 ns 971,816 ns 707
BM_Lua_StringChurn/500 726,842 ns 474,138 ns 1,477
BM_Lua_StringFind/10 816 ns 457 ns 1,510,131
BM_Lua_StringFind/100 1,002 ns 571 ns 1,225,626
BM_Lua_StringFind/1000 1,076 ns 756 ns 933,030
BM_Lua_StringFind/10000 3,359 ns 2,139 ns 327,326
BM_Lua_StringFindPattern/1000 1,536,606 ns 938,600 ns 753
BM_Lua_StringFormat/10 4,810 ns 2,816 ns 249,862
BM_Lua_StringFormat/100 45,648 ns 28,036 ns 25,220
BM_Lua_StringFormat/500 217,375 ns 138,971 ns 5,005
BM_Lua_StringGmatch/1000 1,797,588 ns 1,101,192 ns 634
BM_Lua_StringGsub/10 1,551 ns 942 ns 743,199
BM_Lua_StringGsub/100 7,349 ns 4,529 ns 155,040
BM_Lua_StringGsub/1000 67,386 ns 37,743 ns 18,523
BM_Lua_StringLen/10 255 ns 169 ns 4,208,529
BM_Lua_StringLen/100 512 ns 317 ns 2,210,217
BM_Lua_StringLen/1000 625 ns 491 ns 1,417,701
BM_Lua_StringLen/10000 2,719 ns 1,979 ns 358,597
BM_Lua_StringLower/10 596 ns 322 ns 2,189,914
BM_Lua_StringLower/100 1,225 ns 747 ns 942,770
BM_Lua_StringLower/1000 3,564 ns 2,181 ns 320,649
BM_Lua_StringLower/10000 29,966 ns 17,111 ns 41,238
BM_Lua_StringRep/10 737 ns 408 ns 1,705,699
BM_Lua_StringRep/100 1,822 ns 997 ns 694,622
BM_Lua_StringRep/1000 9,142 ns 5,390 ns 126,264
BM_Lua_StringReverse/10 597 ns 307 ns 2,261,963
BM_Lua_StringReverse/100 1,182 ns 706 ns 961,826
BM_Lua_StringReverse/1000 3,323 ns 1,913 ns 365,656
BM_Lua_StringReverse/10000 24,703 ns 14,399 ns 48,160
BM_Lua_StringSub/10 617 ns 364 ns 1,942,516
BM_Lua_StringSub/100 1,105 ns 594 ns 1,177,842
BM_Lua_StringSub/1000 1,379 ns 906 ns 766,324
BM_Lua_StringSub/10000 4,908 ns 3,045 ns 231,995
BM_Lua_StringUpper/10 567 ns 323 ns 2,190,345
BM_Lua_StringUpper/100 1,342 ns 735 ns 951,815
BM_Lua_StringUpper/1000 3,109 ns 1,965 ns 355,243
BM_Lua_StringUpper/10000 27,760 ns 14,242 ns 48,029
BM_Lua_Sum/10000 180,892 ns 92,068 ns 7,391
BM_Lua_Sum/100000 1,380,171 ns 911,977 ns 771
BM_Lua_Sum/1000000 16,461,078 ns 9,233,507 ns 76
BM_Lua_Sum/5000000 74,960,840 ns 46,977,732 ns 15
BM_Lua_TableChurn/100 88,809 ns 61,258 ns 11,328
BM_Lua_TableChurn/1000 820,002 ns 602,970 ns 1,148
BM_Lua_TableChurn/500 477,274 ns 305,247 ns 2,384
BM_Lua_TableConcat/100 71,908 ns 36,736 ns 19,340
BM_Lua_TableConcat/1000 585,304 ns 361,357 ns 1,936
BM_Lua_TableConcat/500 325,897 ns 177,956 ns 3,874
BM_Lua_TableCreate/1000 47,111 ns 29,524 ns 23,831
BM_Lua_TableCreate/3000 138,745 ns 86,404 ns 8,046
BM_Lua_TableCreate/5000 257,284 ns 145,201 ns 4,849
BM_Lua_TableInsert/100 23,857 ns 13,362 ns 53,418
BM_Lua_TableInsert/1000 208,845 ns 116,643 ns 5,895
BM_Lua_TableInsert/500 107,318 ns 57,789 ns 11,379
BM_Lua_TableInsert/5000 928,408 ns 564,608 ns 1,170
BM_Lua_TableMove/100 12,817 ns 8,743 ns 81,064
BM_Lua_TableMove/1000 92,904 ns 50,879 ns 10,000
BM_Lua_TableMove/500 44,285 ns 28,002 ns 25,009
BM_Lua_TableMove/5000 355,241 ns 250,016 ns 2,787
BM_Lua_TablePack/1 2,840 ns 1,516 ns 462,846
BM_Lua_TableRemove/100 24,388 ns 17,343 ns 40,851
BM_Lua_TableRemove/1000 261,457 ns 152,441 ns 4,709
BM_Lua_TableRemove/500 126,597 ns 76,961 ns 9,300
BM_Lua_TableRemove/5000 1,354,665 ns 828,342 ns 831
BM_Lua_TableSort/100 42,572 ns 30,042 ns 23,123
BM_Lua_TableSort/1000 714,671 ns 398,060 ns 1,749
BM_Lua_TableSort/500 289,863 ns 184,677 ns 3,803
BM_Lua_TailRecursion/100 8,300 ns 4,805 ns 160,595
BM_Lua_TailRecursion/1000 73,087 ns 42,646 ns 15,958
BM_Lua_TailRecursion/5000 346,152 ns 209,783 ns 3,406
BM_Lua_ToNumber/1 529 ns 285 ns 2,447,960
BM_Lua_ToString/10 903 ns 478 ns 1,479,778
BM_Lua_ToString/100 922 ns 481 ns 1,460,211
BM_Lua_ToString/500 739 ns 477 ns 1,451,251
BM_Lua_Variadic/1 1,069 ns 685 ns 1,026,991
BM_Lua_Vector3/10000 2,302,920 ns 1,493,404 ns 464
BM_Lua_Vector3/100000 24,833,907 ns 14,947,118 ns 46
BM_Lua_Vector3/1000000 239,352,621 ns 149,734,385 ns 5