| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- using BenchmarkDotNet.Attributes;
- using Lua;
- using Lua.Runtime;
- using Lua.Standard;
- [Config(typeof(BenchmarkConfig))]
- public class InterpreterSteps
- {
- string sourceText = default!;
- LuaState state = default!;
- LuaClosure closure = default!;
- [GlobalSetup]
- public void GlobalSetup()
- {
- var filePath = FileHelper.GetAbsolutePath("n-body.lua");
- sourceText = File.ReadAllText(filePath);
- state = LuaState.Create();
- state.OpenStandardLibraries();
- closure = state.Load(sourceText, sourceText);
- }
- [IterationSetup]
- public void Setup()
- {
- state = default!;
- GC.Collect();
- state = LuaState.Create();
- state.OpenStandardLibraries();
- }
- [Benchmark]
- public void CreateState()
- {
- LuaState.Create();
- }
- [Benchmark]
- public LuaClosure Compile()
- {
- return state.Load(sourceText, sourceText);
- }
- [Benchmark]
- public async ValueTask RunAsync()
- {
- await state.MainThread.RunAsync(closure);
- state.MainThread.Stack.Clear();
- }
- }
|