gpt4 book ai didi

c# - 在 C# 应用程序中嵌入 LuaInterface 性能很慢?

转载 作者:行者123 更新时间:2023-11-30 18:43:47 28 4
gpt4 key购买 nike

我已将 LuaInterface 项目嵌入到使用 .NET Framework 4.0 以 C# 编写的应用程序中。编译 LuaInterface 和 Lua 5.1 后,我在我的应用程序中引用了它们并创建了一个 Lua VM 并公开了一些 .NET 类。当 Lua VM 调用不多时,性能完全不受影响;但是当它开始调用大量 .NET 函数时,整个应用程序变得缓慢且无响应。

作为对此的回应,我创建了一个额外的线程来运行 Lua 虚拟机。但是由于某些原因,在 Lua 执行函数调用时更新 GUI 的线程不会更新,导致 GUI 卡顿。左右移动一个窗口时,你可以清楚地看到它一会儿没有反应,然后移动,没有反应等等。

我该如何解决这个问题?我的印象是给 Lua 自己的线程,不同的线程不应该受到影响!这在某种程度上纯粹与我自己的代码有关吗? LuaInterface 在调用 .NET 函数时是否存在一些严重问题(性能方面)?我还能用什么?

最佳答案

我没有尝试针对 .NET 4 编译 LuaInterface。到目前为止,我只使用了预编译的 dll。我知道您可以通过将 设置为零来加速 .NET 4 中的混合图像程序集。根据 MS: .NET Framework 4,简化的互操作编码架构为从托管代码到非托管代码的转换提供了显着的性能改进。

http://msdn.microsoft.com/en-us/library/ff361650.aspx

让我们了解最新情况,以防您找到适合自己的技巧。在 Visual Studio 2010 中,您实际上可以针对 .NET 2 进行构建,所以如果我是您,我会尝试创建一个虚拟应用程序并针对多个目标进行编译。它可能会帮助您量化使用 .NET 4 时的速度下降。

如果您给我们一些代码,也许我可以试一试并找出问题所在。我对 LuaInterface 非常感兴趣,并且渴望找出问题所在。

由于我没有代码示例,所以我只是对此进行推测;但问题可能与您的 UI 不是线程安全的有关。锁定问题很常见,例如 Windows 窗体控件。

如何:对 Windows 窗体控件进行线程安全调用 http://msdn.microsoft.com/en-us/library/ms171728(v=vs.80).aspx

关于c# - 在 C# 应用程序中嵌入 LuaInterface 性能很慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3921424/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com