From 96d492aafbfd583febdb88b663bd524b7f56873d Mon Sep 17 00:00:00 2001 From: Pavel Savara Date: Tue, 24 Jan 2023 01:21:18 +0100 Subject: [PATCH] [browser] benchmark fix aggressive trimming (#81037) * fix trimming * revert https://github.com/dotnet/runtime/pull/81027 * Fix build Co-authored-by: Radek Doulik --- src/mono/sample/wasm/browser-bench/Browser.cs | 2 ++ src/mono/sample/wasm/browser-bench/Console/Console.cs | 1 + src/mono/sample/wasm/browser-bench/JSInterop.cs | 10 ++++++++-- src/mono/sample/wasm/browser-bench/main.js | 8 ++++---- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/mono/sample/wasm/browser-bench/Browser.cs b/src/mono/sample/wasm/browser-bench/Browser.cs index 3dcbe36a844b83..58ac1eafce4a7f 100644 --- a/src/mono/sample/wasm/browser-bench/Browser.cs +++ b/src/mono/sample/wasm/browser-bench/Browser.cs @@ -5,6 +5,8 @@ namespace Sample { public partial class Test { + internal const string AssemblyName = "Wasm.Browser.Bench.Sample"; + public static int Main(string[] args) { return 0; diff --git a/src/mono/sample/wasm/browser-bench/Console/Console.cs b/src/mono/sample/wasm/browser-bench/Console/Console.cs index 741c646354bee7..0dfef41ceac5fe 100644 --- a/src/mono/sample/wasm/browser-bench/Console/Console.cs +++ b/src/mono/sample/wasm/browser-bench/Console/Console.cs @@ -11,6 +11,7 @@ namespace Sample { public partial class Test { + internal const string AssemblyName = "Wasm.Console.Bench.Sample"; static string tasksArg; static List ProcessArguments(string[] args) diff --git a/src/mono/sample/wasm/browser-bench/JSInterop.cs b/src/mono/sample/wasm/browser-bench/JSInterop.cs index c578a23eb1eed1..2c1830f39987a8 100644 --- a/src/mono/sample/wasm/browser-bench/JSInterop.cs +++ b/src/mono/sample/wasm/browser-bench/JSInterop.cs @@ -10,6 +10,7 @@ using System.Text; using System.Threading; using System.Threading.Tasks; +using System.Diagnostics.CodeAnalysis; namespace Sample { @@ -24,9 +25,9 @@ class JSInteropTask : BenchTask public JSInteropTask() { measurements = new Measurement[] { - // new LegacyExportIntMeasurement(), + new LegacyExportIntMeasurement(), new JSExportIntMeasurement(), - // new LegacyExportStringMeasurement(), + new LegacyExportStringMeasurement(), new JSExportStringMeasurement(), new JSImportIntMeasurement(), new JSImportStringMeasurement(), @@ -41,6 +42,8 @@ public class LegacyExportIntMeasurement : BenchTask.Measurement { public override int InitialSamples => 3; public override string Name => "LegacyExportInt"; + // because of the aggressive trimming of methods reachable via JS legacy bind_static_method + [DynamicDependency(DynamicallyAccessedMemberTypes.PublicMethods, "Sample.ImportsExportsHelper", Test.AssemblyName)] public override void RunStep() { ImportsExportsHelper.RunLegacyExportInt(10000); @@ -61,6 +64,9 @@ public class LegacyExportStringMeasurement : BenchTask.Measurement { public override int InitialSamples => 3; public override string Name => "LegacyExportString"; + + // because of the aggressive trimming of methods reachable via JS legacy bind_static_method + [DynamicDependency(DynamicallyAccessedMemberTypes.PublicMethods, "Sample.ImportsExportsHelper", Test.AssemblyName)] public override void RunStep() { ImportsExportsHelper.RunLegacyExportString(10000); diff --git a/src/mono/sample/wasm/browser-bench/main.js b/src/mono/sample/wasm/browser-bench/main.js index 227f64df33a27b..403fd89b78eb55 100644 --- a/src/mono/sample/wasm/browser-bench/main.js +++ b/src/mono/sample/wasm/browser-bench/main.js @@ -70,10 +70,10 @@ class MainApp { setTasks = exports.Sample.Test.SetTasks; getFullJsonResults = exports.Sample.Test.GetFullJsonResults; - // legacyExportTargetInt = BINDING.bind_static_method("[Wasm.Browser.Bench.Sample]Sample.ImportsExportsHelper:LegacyExportTargetInt"); - // jsExportTargetInt = exports.Sample.ImportsExportsHelper.JSExportTargetInt; - // legacyExportTargetString = BINDING.bind_static_method("[Wasm.Browser.Bench.Sample]Sample.ImportsExportsHelper:LegacyExportTargetString"); - // jsExportTargetString = exports.Sample.ImportsExportsHelper.JSExportTargetString; + legacyExportTargetInt = BINDING.bind_static_method("[Wasm.Browser.Bench.Sample]Sample.ImportsExportsHelper:LegacyExportTargetInt"); + jsExportTargetInt = exports.Sample.ImportsExportsHelper.JSExportTargetInt; + legacyExportTargetString = BINDING.bind_static_method("[Wasm.Browser.Bench.Sample]Sample.ImportsExportsHelper:LegacyExportTargetString"); + jsExportTargetString = exports.Sample.ImportsExportsHelper.JSExportTargetString; setModuleImports("main.js", { Sample: {