Skip to content

Conversation

onheap
Copy link
Owner

@onheap onheap commented Sep 14, 2022

Summary

This PR enables stateless operators in compile config

Test Plan

  • Unit test passed
❯ go test
PASS
ok  	github.com/onheap/eval	2.050s
  • No degradation in performance
❯ go test -bench=BenchmarkEval -run=none -benchtime=3s -benchmem
goos: darwin
goarch: amd64
pkg: github.com/onheap/eval_lab/benchmark/local
cpu: Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz
BenchmarkEvalLocal-16       	51658551	        59.92 ns/op	      32 B/op	       1 allocs/op
BenchmarkEvalMain-16        	51540975	        62.40 ns/op	      32 B/op	       1 allocs/op
BenchmarkEvalLocal1-16      	58381821	        60.55 ns/op	      32 B/op	       1 allocs/op
BenchmarkEvalMain1-16       	55394245	        63.79 ns/op	      32 B/op	       1 allocs/op
BenchmarkEvalLocalRCO-16    	28741203	       122.1 ns/op	      32 B/op	       1 allocs/op
PASS
ok  	github.com/onheap/eval_lab/benchmark/local	17.694s
  • Tested on over a million random expressions
❯ go test -run='TestRandomExpressions'
| gen progs|exec progs| gen count|exec count|  gen chan| exec chan|      time|
|----------|----------|----------|----------|----------|----------|----------|
|       1 %|       1 %|     38347|     30000|      5906|        42|    2.117s|
|       2 %|       2 %|     62798|     60000|       320|        78|    3.801s|
|       3 %|       3 %|     96353|     90000|      3921|        32|    4.899s|
|       4 %|       4 %|    122402|    120000|         0|         4|    5.444s|
|       5 %|       5 %|    152421|    150000|        14|         7|    4.621s|
|       6 %|       6 %|    182393|    180000|         0|         0|    4.137s|
|       7 %|       7 %|    212573|    210000|       167|         6|    4.274s|
|       8 %|       8 %|    242449|    240000|         0|        53|    4.143s|
|       9 %|       9 %|    272461|    270000|         0|        61|    4.425s|
|      10 %|      10 %|    302810|    300000|       198|       212|    4.141s|
|      11 %|      11 %|    332759|    330000|       216|       143|     4.32s|
|      12 %|      12 %|    362722|    360000|       154|       168|    4.543s|
|      13 %|      13 %|    392406|    390000|         0|        13|    4.949s|
|      14 %|      14 %|    422902|    420000|       398|       104|    4.751s|
|      15 %|      15 %|    452560|    450000|       109|        51|    4.469s|
|      16 %|      16 %|    482400|    480000|         0|         2|    4.493s|
|      17 %|      17 %|    512700|    510000|       296|         4|    4.712s|
|      18 %|      18 %|    542334|    540000|         0|         0|    4.514s|
|      19 %|      19 %|    572599|    570000|        53|       146|    4.728s|
|      20 %|      20 %|    602543|    600000|       123|        20|    4.699s|
|      21 %|      21 %|    633349|    630000|       943|         6|    4.389s|
|      22 %|      22 %|    663714|    660000|      1250|        64|    4.378s|
|      23 %|      23 %|    692473|    690000|        47|        26|    5.085s|
|      24 %|      24 %|    722541|    720000|        11|       130|    4.483s|
|      25 %|      25 %|    752793|    750000|       270|       123|    4.655s|
|      26 %|      26 %|    782512|    780000|        87|        25|    5.941s|
|      27 %|      27 %|    812429|    810000|         0|        45|     6.24s|
|      28 %|      28 %|    842590|    840000|        62|       128|    5.456s|
|      29 %|      29 %|    872587|    870000|       173|        14|    5.036s|
|      30 %|      30 %|    902520|    900000|        46|        74|    4.954s|
|      31 %|      31 %|    932528|    930000|       115|        13|    5.436s|
|      32 %|      32 %|    962607|    960000|        96|       111|    6.569s|
|      33 %|      33 %|    992670|    990000|       190|        80|     6.47s|
|      34 %|      34 %|   1022407|   1020000|         0|         9|    5.267s|
|      35 %|      35 %|   1052618|   1050000|        62|       156|    4.824s|
|      36 %|      36 %|   1082628|   1080000|       169|        59|    4.906s|
|      37 %|      37 %|   1112707|   1110000|       282|        25|    5.596s|
|      38 %|      38 %|   1142505|   1140000|        69|        37|    5.223s|
|      39 %|      39 %|   1172474|   1170000|        67|         7|    6.179s|
|      40 %|      40 %|   1202885|   1200000|       372|       113|    5.381s|
|      41 %|      41 %|   1232804|   1230000|       290|       114|    5.263s|
|      42 %|      42 %|   1262657|   1260000|       126|       131|    5.497s|
|      43 %|      43 %|   1292563|   1290000|       112|        51|    5.429s|
|      44 %|      44 %|   1322454|   1320000|        13|        41|     4.76s|
|      45 %|      45 %|   1352546|   1350000|         0|       150|    4.716s|
|      46 %|      46 %|   1382710|   1380000|       164|       146|    4.523s|
|      47 %|      47 %|   1412541|   1410000|       136|         5|    4.626s|
|      48 %|      48 %|   1442549|   1440000|        73|        76|    4.944s|
|      49 %|      49 %|   1472439|   1470000|         0|        42|    4.756s|
|      50 %|      50 %|   1502599|   1500000|        16|       183|    4.638s|
|      51 %|      51 %|   1532527|   1530000|        90|        37|     5.08s|
|      52 %|      52 %|   1562857|   1560000|       354|       103|    4.735s|
|      53 %|      53 %|   1592371|   1590000|         0|         0|    4.843s|
|      54 %|      54 %|   1622852|   1620000|       342|       110|    4.866s|
|      55 %|      55 %|   1653120|   1650000|       186|       534|    4.631s|
|      56 %|      56 %|   1682409|   1680000|         7|         2|    4.696s|
|      57 %|      57 %|   1712508|   1710000|         0|       117|    4.722s|
|      58 %|      58 %|   1742953|   1740000|       386|       167|    4.673s|
|      59 %|      59 %|   1772474|   1770000|        38|        36|    4.649s|
|      60 %|      60 %|   1802465|   1800000|        53|        12|    4.969s|
|      61 %|      61 %|   1833508|   1830000|      1074|        34|    4.942s|
|      62 %|      62 %|   1862628|   1860000|         0|       228|    4.528s|
|      63 %|      63 %|   1892917|   1890000|       505|        12|     4.94s|
|      64 %|      64 %|   1924305|   1920000|      1890|        15|    5.128s|
|      65 %|      65 %|   1952409|   1950000|         5|         4|    4.918s|
|      66 %|      66 %|   1982513|   1980000|        74|        39|    4.644s|
|      67 %|      67 %|   2012351|   2010000|         0|         0|    4.653s|
|      68 %|      68 %|   2042716|   2040000|       295|        21|    4.851s|
|      69 %|      69 %|   2072648|   2070000|        83|       165|    4.748s|
|      70 %|      70 %|   2102402|   2100000|         0|        22|     4.83s|
|      71 %|      71 %|   2132718|   2130000|       236|        82|    5.303s|
|      72 %|      72 %|   2162516|   2160000|         0|       119|    4.685s|
|      73 %|      73 %|   2192528|   2190000|        72|        56|    4.928s|
|      74 %|      74 %|   2222561|   2220000|        84|        77|     4.72s|
|      75 %|      75 %|   2253807|   2250000|      1278|       129|    4.781s|
|      76 %|      76 %|   2282648|   2280000|       211|        37|    4.913s|
|      77 %|      77 %|   2312844|   2310000|       354|        90|    5.015s|
|      78 %|      78 %|   2342622|   2340000|       195|        27|     5.43s|
|      79 %|      79 %|   2372912|   2370000|       420|        92|      5.1s|
|      80 %|      80 %|   2402753|   2400000|       286|        67|    5.043s|
|      81 %|      81 %|   2432886|   2430000|       362|       124|    5.117s|
|      82 %|      82 %|   2462945|   2460000|       418|       127|    5.218s|
|      83 %|      83 %|   2492465|   2490000|         0|        73|    4.825s|
|      84 %|      84 %|   2522411|   2520000|         0|        12|    5.175s|
|      85 %|      85 %|   2555284|   2550000|      2869|        15|    5.042s|
|      86 %|      86 %|   2582528|   2580000|        13|       115|    4.856s|
|      87 %|      87 %|   2612522|   2610000|       108|        14|    5.029s|
|      88 %|      88 %|   2642509|   2640000|       109|         0|    4.827s|
|      89 %|      89 %|   2672849|   2670000|       278|       171|    4.849s|
|      90 %|      90 %|   2702519|   2700000|       117|         2|    4.885s|
|      91 %|      91 %|   2732624|   2730000|       222|         2|    5.004s|
|      92 %|      92 %|   2762666|   2760000|       205|        61|    5.052s|
|      93 %|      93 %|   2794736|   2790000|      2124|       212|    4.792s|
|      94 %|      94 %|   2822648|   2820000|       193|        55|    4.956s|
|      95 %|      95 %|   2852454|   2850000|        53|         1|    4.792s|
|      96 %|      96 %|   2882616|   2880000|        89|       127|    4.906s|
|      97 %|      97 %|   2914116|   2910000|      1704|        12|    4.929s|
|      98 %|      98 %|   2942545|   2940000|       142|         3|    4.999s|
|      99 %|      99 %|   2972928|   2970000|       294|       234|     4.64s|
|     100 %|     100 %|   3000000|   3000000|         0|         0|    4.937s|
PASS
ok  	github.com/onheap/eval	490.856s

Reviewers

@onheap

@onheap onheap merged commit 2a97919 into main Sep 15, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant