1
1
use std:: { path:: PathBuf , sync:: Arc } ;
2
2
3
+ use parking_lot:: Mutex ;
4
+ use swc_common:: sync:: { Lazy , OnceCell } ;
5
+ use wasmer:: Store ;
3
6
use wasmer_wasix:: Runtime ;
4
7
8
+ /// A shared instance to plugin runtime engine.
9
+ /// ref: https://github.com/wasmerio/wasmer/issues/3793#issuecomment-1607117480
10
+ static ENGINE : Lazy < Mutex < wasmer:: Engine > > = Lazy :: new ( || {
11
+ // Use empty enumset to disable simd.
12
+ use enumset:: EnumSet ;
13
+ use wasmer:: { BaseTunables , CompilerConfig , EngineBuilder , Target , Triple } ;
14
+ let mut set = EnumSet :: new ( ) ;
15
+
16
+ // [TODO]: Should we use is_x86_feature_detected! macro instead?
17
+ #[ cfg( target_arch = "x86_64" ) ]
18
+ set. insert ( wasmer:: CpuFeature :: SSE2 ) ;
19
+ let target = Target :: new ( Triple :: host ( ) , set) ;
20
+
21
+ let config = wasmer_compiler_cranelift:: Cranelift :: default ( ) ;
22
+ let mut engine = EngineBuilder :: new ( Box :: new ( config) as Box < dyn CompilerConfig > )
23
+ . set_target ( Some ( target) )
24
+ . engine ( ) ;
25
+ let tunables = BaseTunables :: for_target ( engine. target ( ) ) ;
26
+ engine. set_tunables ( tunables) ;
27
+ parking_lot:: Mutex :: new ( wasmer:: Engine :: from ( engine) )
28
+ } ) ;
29
+
30
+ /// Dummy http client for wasix runtime to avoid instantiation failure for the
31
+ /// default pluggable runtime. We don't support network in the host runtime
32
+ /// anyway (we init vnet instead), and for the default runtime mostly it's for
33
+ /// the wapm registry which is redundant for the plugin.
5
34
#[ derive( Debug ) ]
6
35
struct StubHttpClient ;
7
36
@@ -38,11 +67,10 @@ pub fn build_wasi_runtime(
38
67
SharedCache :: default ( ) . with_fallback ( wasmer_wasix:: runtime:: module_cache:: in_memory ( ) ) ;
39
68
40
69
let dummy_loader = BuiltinPackageLoader :: new_with_client ( "." , Arc :: new ( StubHttpClient ) ) ;
41
-
42
70
let rt = PluggableRuntime {
43
71
rt : Arc :: new ( TokioTaskManager :: shared ( ) ) ,
44
72
networking : Arc :: new ( virtual_net:: UnsupportedVirtualNetworking :: default ( ) ) ,
45
- engine : Some ( wasmer :: Engine :: default ( ) ) ,
73
+ engine : Some ( ENGINE . lock ( ) . clone ( ) ) ,
46
74
tty : None ,
47
75
source : Arc :: new ( MultiSource :: new ( ) ) ,
48
76
module_cache : Arc :: new ( cache) ,
@@ -52,3 +80,17 @@ pub fn build_wasi_runtime(
52
80
53
81
Some ( Arc :: new ( rt) )
54
82
}
83
+
84
+ /// Creates an instnace of [Store] with custom engine instead of default one to
85
+ /// disable simd for certain platform targets
86
+ #[ cfg( not( target_arch = "wasm32" ) ) ]
87
+ #[ allow( unused_mut) ]
88
+ pub ( crate ) fn new_store ( ) -> Store {
89
+ let engine = ENGINE . lock ( ) . clone ( ) ;
90
+ Store :: new ( engine)
91
+ }
92
+
93
+ #[ cfg( target_arch = "wasm32" ) ]
94
+ pub ( crate ) fn new_store ( ) -> Store {
95
+ Store :: default ( )
96
+ }
1 commit comments
github-actions[bot] commentedon Jun 29, 2023
Benchmark
es/full/bugs-1
301484
ns/iter (± 7405
)300702
ns/iter (± 8072
)1.00
es/full/minify/libraries/antd
1542879047
ns/iter (± 26466497
)1530196337
ns/iter (± 39606913
)1.01
es/full/minify/libraries/d3
328910822
ns/iter (± 8290322
)318782444
ns/iter (± 2503228
)1.03
es/full/minify/libraries/echarts
1231035870
ns/iter (± 14997263
)1228113006
ns/iter (± 12381029
)1.00
es/full/minify/libraries/jquery
96276766
ns/iter (± 291053
)96786725
ns/iter (± 590829
)0.99
es/full/minify/libraries/lodash
113841302
ns/iter (± 1119351
)114518606
ns/iter (± 630420
)0.99
es/full/minify/libraries/moment
56230672
ns/iter (± 139983
)56657606
ns/iter (± 116633
)0.99
es/full/minify/libraries/react
20175550
ns/iter (± 152604
)20296876
ns/iter (± 55812
)0.99
es/full/minify/libraries/terser
249975120
ns/iter (± 1713091
)250535579
ns/iter (± 1795928
)1.00
es/full/minify/libraries/three
449198375
ns/iter (± 5351848
)449169366
ns/iter (± 6666408
)1.00
es/full/minify/libraries/typescript
3037955754
ns/iter (± 29120474
)3052065120
ns/iter (± 29510280
)1.00
es/full/minify/libraries/victory
661928578
ns/iter (± 19129491
)655212785
ns/iter (± 5814990
)1.01
es/full/minify/libraries/vue
139447943
ns/iter (± 750211
)140222410
ns/iter (± 628938
)0.99
es/full/codegen/es3
37078
ns/iter (± 464
)38057
ns/iter (± 148
)0.97
es/full/codegen/es5
36875
ns/iter (± 64
)38104
ns/iter (± 387
)0.97
es/full/codegen/es2015
36898
ns/iter (± 52
)38066
ns/iter (± 104
)0.97
es/full/codegen/es2016
36991
ns/iter (± 110
)38098
ns/iter (± 84
)0.97
es/full/codegen/es2017
36972
ns/iter (± 140
)38092
ns/iter (± 266
)0.97
es/full/codegen/es2018
36945
ns/iter (± 124
)38021
ns/iter (± 121
)0.97
es/full/codegen/es2019
37001
ns/iter (± 97
)38038
ns/iter (± 66
)0.97
es/full/codegen/es2020
36959
ns/iter (± 132
)38208
ns/iter (± 115
)0.97
es/full/all/es3
180930958
ns/iter (± 966183
)178271750
ns/iter (± 812864
)1.01
es/full/all/es5
172875839
ns/iter (± 458465
)169887196
ns/iter (± 628434
)1.02
es/full/all/es2015
128940037
ns/iter (± 637148
)126779085
ns/iter (± 902045
)1.02
es/full/all/es2016
126863279
ns/iter (± 1113460
)125819303
ns/iter (± 593737
)1.01
es/full/all/es2017
126453009
ns/iter (± 559656
)125055868
ns/iter (± 547228
)1.01
es/full/all/es2018
124288337
ns/iter (± 376281
)123010905
ns/iter (± 537055
)1.01
es/full/all/es2019
123742257
ns/iter (± 1034438
)122490780
ns/iter (± 878266
)1.01
es/full/all/es2020
118538461
ns/iter (± 551841
)117852307
ns/iter (± 343535
)1.01
es/full/parser
520110
ns/iter (± 7412
)510294
ns/iter (± 8552
)1.02
es/full/base/fixer
18744
ns/iter (± 64
)19659
ns/iter (± 73
)0.95
es/full/base/resolver_and_hygiene
96183
ns/iter (± 171
)94089
ns/iter (± 141
)1.02
serialization of serde
307
ns/iter (± 1
)309
ns/iter (± 5
)0.99
css/minify/libraries/bootstrap
31562306
ns/iter (± 1269567
)31020882
ns/iter (± 437350
)1.02
css/visitor/compare/clone
2145694
ns/iter (± 44876
)2007259
ns/iter (± 22672
)1.07
css/visitor/compare/visit_mut_span
2268749
ns/iter (± 13211
)2150211
ns/iter (± 23631
)1.06
css/visitor/compare/visit_mut_span_panic
2333195
ns/iter (± 33066
)2206453
ns/iter (± 35189
)1.06
css/visitor/compare/fold_span
3023631
ns/iter (± 39541
)2869947
ns/iter (± 18222
)1.05
css/visitor/compare/fold_span_panic
3285750
ns/iter (± 110749
)3116746
ns/iter (± 22477
)1.05
css/lexer/bootstrap_5_1_3
4738506
ns/iter (± 2319
)4777703
ns/iter (± 5218
)0.99
css/lexer/foundation_6_7_4
4001515
ns/iter (± 2780
)4030557
ns/iter (± 3285
)0.99
css/lexer/tailwind_3_1_1
762135
ns/iter (± 1260
)765872
ns/iter (± 374
)1.00
css/parser/bootstrap_5_1_3
20684033
ns/iter (± 109349
)20547287
ns/iter (± 111827
)1.01
css/parser/foundation_6_7_4
16658097
ns/iter (± 34723
)16563419
ns/iter (± 75426
)1.01
css/parser/tailwind_3_1_1
3205250
ns/iter (± 5357
)3192170
ns/iter (± 3567
)1.00
es/codegen/colors
742041
ns/iter (± 407056
)746003
ns/iter (± 405666
)0.99
es/codegen/large
2985776
ns/iter (± 1569819
)2983601
ns/iter (± 1560344
)1.00
es/codegen/with-parser/colors
48552
ns/iter (± 2629
)48211
ns/iter (± 212
)1.01
es/codegen/with-parser/large
513314
ns/iter (± 708
)514873
ns/iter (± 1469
)1.00
es/minify/libraries/antd
1330537297
ns/iter (± 8979238
)1325979134
ns/iter (± 16206970
)1.00
es/minify/libraries/d3
280563972
ns/iter (± 3170013
)281602137
ns/iter (± 3249203
)1.00
es/minify/libraries/echarts
1068253951
ns/iter (± 16584168
)1074196803
ns/iter (± 26813959
)0.99
es/minify/libraries/jquery
84391971
ns/iter (± 756244
)84191798
ns/iter (± 181218
)1.00
es/minify/libraries/lodash
102625997
ns/iter (± 888091
)103099452
ns/iter (± 226398
)1.00
es/minify/libraries/moment
49502704
ns/iter (± 148137
)49621633
ns/iter (± 159098
)1.00
es/minify/libraries/react
18044058
ns/iter (± 176720
)18034840
ns/iter (± 63836
)1.00
es/minify/libraries/terser
215597555
ns/iter (± 2742866
)219824527
ns/iter (± 4320027
)0.98
es/minify/libraries/three
375381578
ns/iter (± 7346464
)375602734
ns/iter (± 7853268
)1.00
es/minify/libraries/typescript
2624099741
ns/iter (± 24345204
)2613548883
ns/iter (± 17019010
)1.00
es/minify/libraries/victory
612719979
ns/iter (± 14653477
)581822503
ns/iter (± 16985063
)1.05
es/minify/libraries/vue
126415460
ns/iter (± 1742952
)124354603
ns/iter (± 556986
)1.02
es/visitor/compare/clone
2055310
ns/iter (± 4349
)2049493
ns/iter (± 5958
)1.00
es/visitor/compare/visit_mut_span
2378015
ns/iter (± 3723
)2356426
ns/iter (± 10853
)1.01
es/visitor/compare/visit_mut_span_panic
2431453
ns/iter (± 1797
)2434454
ns/iter (± 13063
)1.00
es/visitor/compare/fold_span
3466241
ns/iter (± 6172
)3468974
ns/iter (± 5913
)1.00
es/visitor/compare/fold_span_panic
3595154
ns/iter (± 12565
)3602051
ns/iter (± 4743
)1.00
es/lexer/colors
13235
ns/iter (± 872
)13226
ns/iter (± 16
)1.00
es/lexer/angular
6285468
ns/iter (± 7034
)6256129
ns/iter (± 25227
)1.00
es/lexer/backbone
827705
ns/iter (± 901
)818320
ns/iter (± 1412
)1.01
es/lexer/jquery
4651942
ns/iter (± 4688
)4625582
ns/iter (± 7431
)1.01
es/lexer/jquery mobile
7135336
ns/iter (± 8820
)7094991
ns/iter (± 7579
)1.01
es/lexer/mootools
3678682
ns/iter (± 1141
)3633958
ns/iter (± 4437
)1.01
es/lexer/underscore
690898
ns/iter (± 1567
)684868
ns/iter (± 1422
)1.01
es/lexer/three
21807370
ns/iter (± 22826
)21574940
ns/iter (± 10498
)1.01
es/lexer/yui
4151371
ns/iter (± 2369
)4086774
ns/iter (± 4970
)1.02
es/parser/colors
29011
ns/iter (± 44
)29359
ns/iter (± 68
)0.99
es/parser/angular
14436415
ns/iter (± 152085
)14995343
ns/iter (± 285657
)0.96
es/parser/backbone
2153766
ns/iter (± 10537
)2149494
ns/iter (± 11679
)1.00
es/parser/jquery
11848971
ns/iter (± 116605
)11730011
ns/iter (± 51692
)1.01
es/parser/jquery mobile
18035082
ns/iter (± 247690
)17937253
ns/iter (± 111199
)1.01
es/parser/mootools
8958602
ns/iter (± 26112
)8961230
ns/iter (± 18993
)1.00
es/parser/underscore
1856887
ns/iter (± 10111
)1859743
ns/iter (± 9034
)1.00
es/parser/three
51267405
ns/iter (± 1147378
)50950144
ns/iter (± 374973
)1.01
es/parser/yui
8993576
ns/iter (± 43846
)9019260
ns/iter (± 48751
)1.00
es/preset-env/usage/builtin_type
142751
ns/iter (± 33350
)142274
ns/iter (± 33045
)1.00
es/preset-env/usage/property
18361
ns/iter (± 73
)18402
ns/iter (± 70
)1.00
es/resolver/typescript
95932135
ns/iter (± 1765996
)95613837
ns/iter (± 1582665
)1.00
es/fixer/typescript
67412824
ns/iter (± 510174
)67506786
ns/iter (± 1353675
)1.00
es/hygiene/typescript
146767004
ns/iter (± 2642632
)147645506
ns/iter (± 2943625
)0.99
es/resolver_with_hygiene/typescript
307557023
ns/iter (± 2265796
)305987153
ns/iter (± 4182608
)1.01
es/visitor/base-perf/module_clone
61431
ns/iter (± 254
)61273
ns/iter (± 225
)1.00
es/visitor/base-perf/fold_empty
64412
ns/iter (± 309
)64901
ns/iter (± 302
)0.99
es/visitor/base-perf/fold_noop_impl_all
64578
ns/iter (± 310
)65309
ns/iter (± 284
)0.99
es/visitor/base-perf/fold_noop_impl_vec
64858
ns/iter (± 234
)65418
ns/iter (± 277
)0.99
es/visitor/base-perf/boxing_boxed_clone
56
ns/iter (± 0
)57
ns/iter (± 0
)0.98
es/visitor/base-perf/boxing_unboxed_clone
39
ns/iter (± 0
)40
ns/iter (± 0
)0.97
es/visitor/base-perf/boxing_boxed
113
ns/iter (± 0
)113
ns/iter (± 0
)1
es/visitor/base-perf/boxing_unboxed
79
ns/iter (± 0
)80
ns/iter (± 0
)0.99
es/visitor/base-perf/visit_empty
0
ns/iter (± 0
)0
ns/iter (± 0
)NaN
es/visitor/base-perf/visit_contains_this
2665
ns/iter (± 13
)2642
ns/iter (± 16
)1.01
es/base/parallel/resolver/typescript
4443630882
ns/iter (± 236312367
)4533905625
ns/iter (± 216622800
)0.98
es/base/parallel/hygiene/typescript
1597132238
ns/iter (± 12722732
)1605815548
ns/iter (± 21258358
)0.99
misc/visitors/time-complexity/time 5
110
ns/iter (± 0
)105
ns/iter (± 0
)1.05
misc/visitors/time-complexity/time 10
311
ns/iter (± 0
)311
ns/iter (± 0
)1
misc/visitors/time-complexity/time 15
617
ns/iter (± 6
)531
ns/iter (± 3
)1.16
misc/visitors/time-complexity/time 20
943
ns/iter (± 4
)1096
ns/iter (± 3
)0.86
misc/visitors/time-complexity/time 40
3725
ns/iter (± 12
)3727
ns/iter (± 9
)1.00
misc/visitors/time-complexity/time 60
7698
ns/iter (± 11
)7734
ns/iter (± 21
)1.00
es/full-target/es2016
239780
ns/iter (± 692
)238816
ns/iter (± 1108
)1.00
es/full-target/es2017
226949
ns/iter (± 344
)229267
ns/iter (± 1079
)0.99
es/full-target/es2018
215537
ns/iter (± 689
)215547
ns/iter (± 961
)1.00
es2020_nullish_coalescing
72777
ns/iter (± 631
)72725
ns/iter (± 314
)1.00
es2020_optional_chaining
84344
ns/iter (± 345
)84058
ns/iter (± 299
)1.00
es2022_class_properties
121081
ns/iter (± 485
)121082
ns/iter (± 332
)1.00
es2018_object_rest_spread
77405
ns/iter (± 224
)76662
ns/iter (± 223
)1.01
es2019_optional_catch_binding
66525
ns/iter (± 277
)66271
ns/iter (± 183
)1.00
es2017_async_to_generator
65005
ns/iter (± 452
)64746
ns/iter (± 189
)1.00
es2016_exponentiation
70956
ns/iter (± 181
)69971
ns/iter (± 216
)1.01
es2015_arrow
74582
ns/iter (± 250
)73335
ns/iter (± 320
)1.02
es2015_block_scoped_fn
70160
ns/iter (± 266
)69868
ns/iter (± 220
)1.00
es2015_block_scoping
135491
ns/iter (± 511
)132302
ns/iter (± 538
)1.02
This comment was automatically generated by workflow using github-action-benchmark.