Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using BenchmarkDotNet.Attributes;
- using BenchmarkDotNet.Running;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Reflection;
- using Microsoft.CodeAnalysis.CSharp.Scripting;
- using Microsoft.CodeAnalysis.Scripting;
- using System.Threading.Tasks;
- namespace Benchmark
- {
- public class Program
- {
- private ScriptOptions options = ScriptOptions.Default.WithOptimizationLevel(Microsoft.CodeAnalysis.OptimizationLevel.Release);
- private ScriptState state;
- private string code = "";
- private Script script;
- [GlobalSetup]
- public void Setup()
- {
- state = CSharpScript.RunAsync("int y = 0;", options).Result;
- script = CSharpScript.Create("1+1", options);
- script.Compile();
- }
- [Benchmark]
- public async Task FirstRun()
- {
- await CSharpScript.RunAsync("int x = 1 + 1;", options);
- }
- [Benchmark]
- public async Task StateContinue()
- {
- state = await state.ContinueWithAsync("y += 1;", options);
- }
- [Benchmark]
- public async Task Precompiled()
- {
- await script.RunAsync();
- }
- static void Main(string[] args)
- {
- var summary = BenchmarkRunner.Run<Program>();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement