![]() |
1
16
看一看 Lua 在游戏中经常使用,所以性能一定很好。 |
![]() |
2
12
嗯,你期待什么?除非脚本必须等待磁盘或用户I/O,否则CPU 应该 100%点钟跑步。 你的问题是它会持续很长时间吗? 或者您的应用程序没有响应? 在这种情况下,问题在于脚本阻塞了所有UI交互运行的线程。一般的解决方案是阻止所有的UI输入(除了“取消脚本”按钮:),并将实际处理移动到一个单独的线程。
[编辑]
如果你正在处理一些事情,100%的CPU是好的和健康的。 CPU总是很忙,当前线程总是消耗它正在运行的核心的100%。”0%的CPU活动“实际上意味着所有的周期都花费在一个系统空闲线程中(它属于您在任务管理器中看到的“系统空闲进程”)。 作为一个简单的例子:如果您有一个应用程序线程处于活动状态,并且CPU使用率为40%,并且您的任务管理器更新间隔为1秒,则应用程序的CPU时间为400毫秒,空闲线程的CPU时间为600毫秒。 |
![]() |
3
3
LUA很好,因为它使用一个堆栈来在解释器和C++之间进行通信。这很好,因为它不涉及任何你可见的参考计数,这简化了事情。 以下是一个有趣的对比,作为某些人工语言的背景: iolanguage . |
![]() |
4
2
我听说了一些好消息 TinyScheme . 尽管如此,我们在这里使用Lua(在游戏开发工作室中,针对嵌入式和手持系统)。 不过,需要注意的是——特别是Lua,但我认为这些语言适用于以下许多语言:
|
![]() |
5
2
我个人建议Lua在我们的嵌入式平台中广泛使用它。如果您在Windows上运行,您可能可以使用类似luajit的工具使您的lua更快。 不过,既然没人提到,你也可以看看松鼠。( http://squirrel-lang.org/ )我没有这方面的经验,但我认为这看起来很有希望。 对于您当前的问题,如果没有任何代码可以阻止它,那么任何代码都将占用CPU的100%。 类似(伪代码): 对于(i=11000000000) n=n+i 结束 将占用CPU的100%,直到它以(几乎)任何语言完成,因为没有什么可以阻止它执行。 |
![]() |
6
1
Lua 是你的 language of choice . 有一些 bindings for Qt . |
![]() |
7
1
这实际上取决于几个因素:
我也建议Lua,但是,您应该记住以下几点:Lua是在纯ANSI C中实现的。这使得Uber可移植,但是如果您在C++环境中开发,它将导致大量的“打包”类。尤其是当您想公开qt功能(包括
|
![]() |
8
0
您还可以使用 spidermonkey 我认为JavaScript比Lua更广泛。 |
![]() |
9
0
目前为止,我所知道的qtscript没有任何问题(只是从4.6开始使用它,所以它仍然是新的,但到目前为止还是很喜欢它)。取决于您如何使用它,就像Lua或Python一样。如果你保持你的应用程序的核心功能(从C/C++中编译),并且只向脚本引擎公开一个最小的API,那么,一般来说,你可以让事情保持快照。 使用qt script,以合理的线程安全方式(qt的slots和signals对象模型)公开对象及其方法相对容易,并且可以轻松地将脚本创建的对象传递给本机函数…但是您最终可能会与Qt环境紧密集成(有时这可能正是您想要的)。 如果您想将本机C++对象任意地暴露到其他嵌入式脚本环境中,请参见 SWIG . swig类似于tolua工具,但适用于许多可嵌入的语言,如 Lua,C,TCL,Java 和 蟒蛇 举几个例子。根据经验,Tolua使绑定对象和方法到脚本的过程不那么痛苦,而且我也没有听到关于Swig的很多坏消息。 |
![]() |
md.jamal · 如何确保telnet命令是否成功 6 年前 |
![]() |
user3742796 · 如何在键之间均匀分布总值数 7 年前 |
![]() |
VaTo · 用于检查是否可以访问多个服务器的脚本 7 年前 |
![]() |
as7951 · Awk脚本根据条件提供另一列中某些列的总和 7 年前 |
![]() |
JBaba · 如何在Unix中读取嵌套循环中的两个文件 7 年前 |
![]() |
Ajeetkumar · ksh-检查字符串是否有模式 7 年前 |