9
9
)
10
10
11
11
func Benchmark_expr (b * testing.B ) {
12
- params := make (map [string ]interface {} )
12
+ params := make (map [string ]any )
13
13
params ["Origin" ] = "MOW"
14
14
params ["Country" ] = "RU"
15
15
params ["Adults" ] = 1
@@ -18,7 +18,7 @@ func Benchmark_expr(b *testing.B) {
18
18
program , err := expr .Compile (`(Origin == "MOW" || Country == "RU") && (Value >= 100 || Adults == 1)` , expr .Env (params ))
19
19
require .NoError (b , err )
20
20
21
- var out interface {}
21
+ var out any
22
22
23
23
b .ResetTimer ()
24
24
for n := 0 ; n < b .N ; n ++ {
@@ -31,7 +31,7 @@ func Benchmark_expr(b *testing.B) {
31
31
}
32
32
33
33
func Benchmark_expr_reuseVm (b * testing.B ) {
34
- params := make (map [string ]interface {} )
34
+ params := make (map [string ]any )
35
35
params ["Origin" ] = "MOW"
36
36
params ["Country" ] = "RU"
37
37
params ["Adults" ] = 1
@@ -40,7 +40,7 @@ func Benchmark_expr_reuseVm(b *testing.B) {
40
40
program , err := expr .Compile (`(Origin == "MOW" || Country == "RU") && (Value >= 100 || Adults == 1)` , expr .Env (params ))
41
41
require .NoError (b , err )
42
42
43
- var out interface {}
43
+ var out any
44
44
v := vm.VM {}
45
45
46
46
b .ResetTimer ()
@@ -54,14 +54,14 @@ func Benchmark_expr_reuseVm(b *testing.B) {
54
54
}
55
55
56
56
func Benchmark_len (b * testing.B ) {
57
- env := map [string ]interface {} {
57
+ env := map [string ]any {
58
58
"arr" : make ([]int , 100 ),
59
59
}
60
60
61
61
program , err := expr .Compile (`len(arr)` , expr .Env (env ))
62
62
require .NoError (b , err )
63
63
64
- var out interface {}
64
+ var out any
65
65
b .ResetTimer ()
66
66
for n := 0 ; n < b .N ; n ++ {
67
67
out , err = vm .Run (program , env )
@@ -86,15 +86,15 @@ func Benchmark_filter(b *testing.B) {
86
86
program , err := expr .Compile (`filter(Ints, # % 7 == 0)` , expr .Env (Env {}))
87
87
require .NoError (b , err )
88
88
89
- var out interface {}
89
+ var out any
90
90
b .ResetTimer ()
91
91
for n := 0 ; n < b .N ; n ++ {
92
92
out , err = vm .Run (program , env )
93
93
}
94
94
b .StopTimer ()
95
95
96
96
require .NoError (b , err )
97
- require .Len (b , out .([]interface {} ), 142 )
97
+ require .Len (b , out .([]any ), 142 )
98
98
}
99
99
100
100
func Benchmark_filterLen (b * testing.B ) {
@@ -111,7 +111,7 @@ func Benchmark_filterLen(b *testing.B) {
111
111
program , err := expr .Compile (`len(filter(Ints, # % 7 == 0))` , expr .Env (Env {}))
112
112
require .NoError (b , err )
113
113
114
- var out interface {}
114
+ var out any
115
115
b .ResetTimer ()
116
116
for n := 0 ; n < b .N ; n ++ {
117
117
out , err = vm .Run (program , env )
@@ -136,7 +136,7 @@ func Benchmark_filterFirst(b *testing.B) {
136
136
program , err := expr .Compile (`filter(Ints, # % 7 == 0)[0]` , expr .Env (Env {}))
137
137
require .NoError (b , err )
138
138
139
- var out interface {}
139
+ var out any
140
140
b .ResetTimer ()
141
141
for n := 0 ; n < b .N ; n ++ {
142
142
out , err = vm .Run (program , env )
@@ -161,7 +161,7 @@ func Benchmark_filterLast(b *testing.B) {
161
161
program , err := expr .Compile (`filter(Ints, # % 7 == 0)[-1]` , expr .Env (Env {}))
162
162
require .NoError (b , err )
163
163
164
- var out interface {}
164
+ var out any
165
165
b .ResetTimer ()
166
166
for n := 0 ; n < b .N ; n ++ {
167
167
out , err = vm .Run (program , env )
@@ -187,20 +187,20 @@ func Benchmark_filterMap(b *testing.B) {
187
187
program , err := expr .Compile (`map(filter(Ints, # % 7 == 0), # * 2)` , expr .Env (Env {}))
188
188
require .NoError (b , err )
189
189
190
- var out interface {}
190
+ var out any
191
191
b .ResetTimer ()
192
192
for n := 0 ; n < b .N ; n ++ {
193
193
out , err = vm .Run (program , env )
194
194
}
195
195
b .StopTimer ()
196
196
197
197
require .NoError (b , err )
198
- require .Len (b , out .([]interface {} ), 14 )
199
- require .Equal (b , 14 , out .([]interface {} )[0 ])
198
+ require .Len (b , out .([]any ), 14 )
199
+ require .Equal (b , 14 , out .([]any )[0 ])
200
200
}
201
201
202
202
func Benchmark_arrayIndex (b * testing.B ) {
203
- env := map [string ]interface {} {
203
+ env := map [string ]any {
204
204
"arr" : make ([]int , 100 ),
205
205
}
206
206
for i := 0 ; i < 100 ; i ++ {
@@ -210,7 +210,7 @@ func Benchmark_arrayIndex(b *testing.B) {
210
210
program , err := expr .Compile (`arr[50]` , expr .Env (env ))
211
211
require .NoError (b , err )
212
212
213
- var out interface {}
213
+ var out any
214
214
b .ResetTimer ()
215
215
for n := 0 ; n < b .N ; n ++ {
216
216
out , err = vm .Run (program , env )
@@ -234,7 +234,7 @@ func Benchmark_envStruct(b *testing.B) {
234
234
235
235
env := Env {Price : Price {Value : 1 }}
236
236
237
- var out interface {}
237
+ var out any
238
238
b .ResetTimer ()
239
239
for n := 0 ; n < b .N ; n ++ {
240
240
out , err = vm .Run (program , env )
@@ -249,14 +249,14 @@ func Benchmark_envMap(b *testing.B) {
249
249
type Price struct {
250
250
Value int
251
251
}
252
- env := map [string ]interface {} {
252
+ env := map [string ]any {
253
253
"price" : Price {Value : 1 },
254
254
}
255
255
256
256
program , err := expr .Compile (`price.Value > 0` , expr .Env (env ))
257
257
require .NoError (b , err )
258
258
259
- var out interface {}
259
+ var out any
260
260
b .ResetTimer ()
261
261
for n := 0 ; n < b .N ; n ++ {
262
262
out , err = vm .Run (program , env )
@@ -272,7 +272,7 @@ type CallEnv struct {
272
272
B int
273
273
C int
274
274
Fn func () bool
275
- FnFast func (... interface {}) interface {}
275
+ FnFast func (... any ) any
276
276
Foo CallFoo
277
277
}
278
278
@@ -296,7 +296,7 @@ func Benchmark_callFunc(b *testing.B) {
296
296
297
297
env := CallEnv {}
298
298
299
- var out interface {}
299
+ var out any
300
300
b .ResetTimer ()
301
301
for n := 0 ; n < b .N ; n ++ {
302
302
out , err = vm .Run (program , env )
@@ -313,7 +313,7 @@ func Benchmark_callMethod(b *testing.B) {
313
313
314
314
env := CallEnv {}
315
315
316
- var out interface {}
316
+ var out any
317
317
b .ResetTimer ()
318
318
for n := 0 ; n < b .N ; n ++ {
319
319
out , err = vm .Run (program , env )
@@ -334,7 +334,7 @@ func Benchmark_callField(b *testing.B) {
334
334
},
335
335
}
336
336
337
- var out interface {}
337
+ var out any
338
338
b .ResetTimer ()
339
339
for n := 0 ; n < b .N ; n ++ {
340
340
out , err = vm .Run (program , env )
@@ -352,12 +352,12 @@ func Benchmark_callFast(b *testing.B) {
352
352
}
353
353
354
354
env := CallEnv {
355
- FnFast : func (s ... interface {}) interface {} {
355
+ FnFast : func (s ... any ) any {
356
356
return "fn_fast"
357
357
},
358
358
}
359
359
360
- var out interface {}
360
+ var out any
361
361
b .ResetTimer ()
362
362
for n := 0 ; n < b .N ; n ++ {
363
363
out , err = vm .Run (program , env )
@@ -374,7 +374,7 @@ func Benchmark_callConstExpr(b *testing.B) {
374
374
375
375
env := CallEnv {}
376
376
377
- var out interface {}
377
+ var out any
378
378
b .ResetTimer ()
379
379
for n := 0 ; n < b .N ; n ++ {
380
380
out , err = vm .Run (program , env )
@@ -396,7 +396,7 @@ func Benchmark_largeStructAccess(b *testing.B) {
396
396
397
397
env := Env {Field : 21 }
398
398
399
- var out interface {}
399
+ var out any
400
400
b .ResetTimer ()
401
401
for n := 0 ; n < b .N ; n ++ {
402
402
out , err = vm .Run (program , & env )
@@ -421,7 +421,7 @@ func Benchmark_largeNestedStructAccess(b *testing.B) {
421
421
env := Env {}
422
422
env .Inner .Field = 21
423
423
424
- var out interface {}
424
+ var out any
425
425
b .ResetTimer ()
426
426
for n := 0 ; n < b .N ; n ++ {
427
427
out , err = vm .Run (program , & env )
@@ -443,7 +443,7 @@ func Benchmark_largeNestedArrayAccess(b *testing.B) {
443
443
env := Env {}
444
444
env .Data [0 ][0 ] = 1
445
445
446
- var out interface {}
446
+ var out any
447
447
b .ResetTimer ()
448
448
for n := 0 ; n < b .N ; n ++ {
449
449
out , err = vm .Run (program , & env )
@@ -455,14 +455,14 @@ func Benchmark_largeNestedArrayAccess(b *testing.B) {
455
455
}
456
456
457
457
func Benchmark_sort (b * testing.B ) {
458
- env := map [string ]interface {} {
458
+ env := map [string ]any {
459
459
"arr" : []any {55 , 58 , 42 , 61 , 75 , 52 , 64 , 62 , 16 , 79 , 40 , 14 , 50 , 76 , 23 , 2 , 5 , 80 , 89 , 51 , 21 , 96 , 91 , 13 , 71 , 82 , 65 , 63 , 11 , 17 , 94 , 81 , 74 , 4 , 97 , 1 , 39 , 3 , 28 , 8 , 84 , 90 , 47 , 85 , 7 , 56 , 49 , 93 , 33 , 12 , 19 , 60 , 86 , 100 , 44 , 45 , 36 , 72 , 95 , 77 , 34 , 92 , 24 , 73 , 18 , 38 , 43 , 26 , 41 , 69 , 67 , 57 , 9 , 27 , 66 , 87 , 46 , 35 , 59 , 70 , 10 , 20 , 53 , 15 , 32 , 98 , 68 , 31 , 54 , 25 , 83 , 88 , 22 , 48 , 29 , 37 , 6 , 78 , 99 , 30 },
460
460
}
461
461
462
462
program , err := expr .Compile (`sort(arr)` , expr .Env (env ))
463
463
require .NoError (b , err )
464
464
465
- var out interface {}
465
+ var out any
466
466
b .ResetTimer ()
467
467
for n := 0 ; n < b .N ; n ++ {
468
468
out , _ = vm .Run (program , env )
@@ -478,7 +478,7 @@ func Benchmark_sortBy(b *testing.B) {
478
478
Value int
479
479
}
480
480
arr := []any {55 , 58 , 42 , 61 , 75 , 52 , 64 , 62 , 16 , 79 , 40 , 14 , 50 , 76 , 23 , 2 , 5 , 80 , 89 , 51 , 21 , 96 , 91 , 13 , 71 , 82 , 65 , 63 , 11 , 17 , 94 , 81 , 74 , 4 , 97 , 1 , 39 , 3 , 28 , 8 , 84 , 90 , 47 , 85 , 7 , 56 , 49 , 93 , 33 , 12 , 19 , 60 , 86 , 100 , 44 , 45 , 36 , 72 , 95 , 77 , 34 , 92 , 24 , 73 , 18 , 38 , 43 , 26 , 41 , 69 , 67 , 57 , 9 , 27 , 66 , 87 , 46 , 35 , 59 , 70 , 10 , 20 , 53 , 15 , 32 , 98 , 68 , 31 , 54 , 25 , 83 , 88 , 22 , 48 , 29 , 37 , 6 , 78 , 99 , 30 }
481
- env := map [string ]interface {} {
481
+ env := map [string ]any {
482
482
"arr" : make ([]Foo , len (arr )),
483
483
}
484
484
for i , v := range arr {
@@ -488,7 +488,7 @@ func Benchmark_sortBy(b *testing.B) {
488
488
program , err := expr .Compile (`sortBy(arr, "Value")` , expr .Env (env ))
489
489
require .NoError (b , err )
490
490
491
- var out interface {}
491
+ var out any
492
492
b .ResetTimer ()
493
493
for n := 0 ; n < b .N ; n ++ {
494
494
out , _ = vm .Run (program , env )
@@ -503,7 +503,7 @@ func Benchmark_groupBy(b *testing.B) {
503
503
program , err := expr .Compile (`groupBy(1..100, # % 7)[6]` )
504
504
require .NoError (b , err )
505
505
506
- var out interface {}
506
+ var out any
507
507
b .ResetTimer ()
508
508
for n := 0 ; n < b .N ; n ++ {
509
509
out , _ = vm .Run (program , nil )
0 commit comments