【发布时间】:2014-12-03 16:49:28
【问题描述】:
在 C++ 中,我必须对大表的每个单元格进行一些用户定义的操作。 由于表格的大小,我不想使用解释指令,而是在运行时编译一个我将在每个单元格上调用的函数。
用户定义的动作非常简单:
if ((state1 && state2) || state3) then change_a_value_in_memory
这就是我不需要使用 LLVM 或其他 JIT 库的原因。
我犹豫是否只使用 mmap 并直接以十六进制添加代码。
我想知道是否存在更好的解决方案,或者如果没有,我在哪里可以找到C++函数代码的基本格式,直接将其写入内存。
谢谢,对不起我的英语:/
【问题讨论】:
-
C++通常既不解释也不及时编译。如果你是,你可能想添加你正在使用的环境。
-
也许你可以连接一些像 Lua 这样的脚本语言
-
如果条件真的这么简单,你确定是瓶颈吗?我希望这种操作受 I/O 限制。
-
我所需要的只是纯粹的速度(表格可以变得非常大),这就是为什么我更喜欢使用函数调用而不是 lua 编译器/处理程序的所有复杂性。代码将像条件 => 结果一样简单。我正在创建一个元胞自动机,该函数将描述自动机的规则,并将在网格的每个单元格上调用。
-
为什么不为你的“语言”写一个解析器?