Lua打印性能,Windows vs Linux

时间:2019-03-15 07:54:00

标签: c gcc lua mingw-w64 lua-5.3

使用C,具有

<a name="img1" />
<img src="some-image.jpg" />

并致电

typedef struct Entity {
    size_t id;
    char *luaFun;
} Entity;

到全局(entity-> luaFun =“ entity_update”)

void LuaEntityUpdate(Entity *entity, double dt) {
    lua_getglobal(L, entity->luaFun);
    lua_pushinteger(L, entity->id);
    lua_pushnumber(L, dt);
    lua_call(L, 2, 0);
}

循环(单个游戏框架)大约需要:

    使用Windows *的 128 个实体
  • 0.2秒 使用Linux **的 8096 实体
  • 0.2秒

使Windows的构建速度比Linux慢约64倍(同一台计算机,运行的应用程序减少到最少,并且都使用100%的单核)。

如此巨大的差异可能是什么原因?请查看下面的评论并进行编辑。

* Windows 10,Mingw-w64,来自:“ MingW-W64-builds”,使用Lua 5.3.5二进制发行版

** Mint 16,gcc,Lua 5.3.5来自官方消息来源

-编辑

根据评论中的建议,我试图在不打印任何消息和BINGO的情况下测量性能!没有任何打印性能几乎可以与Linux构建相匹敌。

现在,我尝试将打印内容替换为:

function entity_update(id, dt)
    print("Entity updated ", id, " ", dt)
end

-

local w = print
w(...)

-

io.write(...)

但是它们的表现都一样。

我还尝试过通过Windows命令运行该程序,该程序比CLion中捕获的控制台快30%。

是否有任何技巧可以使Windows上的速度更快?最好在lua部分中使用日志记录实用程序,但是即使是调试,对于实时应用程序来说也太慢了。

也:标题已更改

0 个答案:

没有答案