HookedBenchmark.cs 921 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using BenchmarkDotNet.Attributes;
  2. using Lua;
  3. using Lua.Standard;
  4. [Config(typeof(BenchmarkConfig))]
  5. public class HookedBenchmark
  6. {
  7. BenchmarkCore core = default!;
  8. LuaValue[] buffer = new LuaValue[1];
  9. [IterationSetup]
  10. public void Setup()
  11. {
  12. core = new();
  13. core.Setup("hooked.lua");
  14. core.LuaCSharpState.OpenStandardLibraries();
  15. }
  16. [IterationCleanup]
  17. public void Cleanup()
  18. {
  19. core.Dispose();
  20. core = default!;
  21. GC.Collect();
  22. }
  23. [Benchmark(Description = "NLua (DoString)", Baseline = true)]
  24. public object[] Benchmark_NLua_String()
  25. {
  26. return core.NLuaState.DoString(core.SourceText);
  27. }
  28. [Benchmark(Description = "Lua-CSharp (DoString)")]
  29. public async Task<LuaValue> Benchmark_LuaCSharp_String()
  30. {
  31. await core.LuaCSharpState.DoStringAsync(core.SourceText, buffer);
  32. return buffer[0];
  33. }
  34. }