我已将LuaInterface项目嵌入到使用.NET Framework 4.0以C#编写的应用程序中。在编译LuaInterface和Lua 5.1后,我在应用程序中引用了它们,并创建了一个Lua VM并公开了一些.NET类。当Lua VM不打很多电话时,性能完全不受影响;但是当它开始调用更多的.NET函数时,整个应用程序变得缓慢且无响应。在C#应用程序中嵌入LuaInterface的性能很慢?
作为回应,我做了一个额外的线程来运行Lua虚拟机。不过由于某些原因,GUI更新的线程在Lua执行函数调用时不会更新,导致GUI中出现口吃。当移动一个窗口时,您可以清楚地看到它不响应一会儿,然后移动,不响应等。
我该如何解决这个问题?我的印象是给Lua自己的线程,不应该影响另一个线程!这是否以某种方式纯粹与我自己的代码相关? LuaInterface有一些调用.NET函数的严重问题(性能方面)?我还能用什么?
我们能有你的代码的一些例子吗? – 2010-10-21 01:55:01
有几个'如果'。系统CPU负载,你有多少核心可用(只有一个?),程序是否等待Lua代码的结果,是与主应用程序的消息队列交互的Lua代码等.InterOp调用本身应该不阻止其他线程,顺便说一句。 (但是,进行InterOp调用需要某些GC对象“固定”(不能更改内存位置),因此根据其使用类型,GC性能可能会变差......但通常不会这么大 – gimpf 2011-02-22 14:44:13