mybios

Results 13 comments of mybios

+1 typescript source map support

准备编译成lua的C#源码: > // 矩形的中心与矩形外一点的连线与矩形的交点 public static Vector3 GetIntersectPointWithScreenRect(Vector2 localRectPos, Vector2 border) { Vector2 ret = localRectPos; Vector2 center = Vector2.zero; Vector2 dir = localRectPos; float clampBorderWidth = Screen.width * 0.5f...

> 优化前的编译后lua代码 GetIntersectPointWithScreenRect = function (localRectPos, border) local ret = localRectPos:__clone__() local center = UnityEngine.Vector2.getzero() local dir = localRectPos:__clone__() local clampBorderWidth = UnityEngine.Screen.getwidth() * 0.5 - border:getx() local clampBorderHeight =...

优化后(保留函数名注释): GetIntersectPointWithScreenRect = function (localRectPos, border) local ret = localRectPos:__clone__() local center = __[5342]--[[UnityEngine.Vector2.getzero]]() local dir = localRectPos:__clone__() local clampBorderWidth = __[1017]--[[UnityEngine.Screen.getwidth]]() * 0.5 - __[5303]--[[UnityEngine.Vector2.getx]](border) local clampBorderHeight = __[1018]--[[UnityEngine.Screen.getheight]]()...

> 优化后(去掉注释) GetIntersectPointWithScreenRect = function (localRectPos, border) local ret = localRectPos:__clone__() local center = __[5342]() local dir = localRectPos:__clone__() local clampBorderWidth = __[1017]() * 0.5 - __[5303](border) local clampBorderHeight =...

js的混淆,是为了混淆而混淆,lua里这里优化是为了性能而优化。 函数声明部分不需要修改,只需在函数体生成调用的地方统一收集起来,改成全局调用的方式即可。 lua查表的速度,取决于key的字符串大小,取决于表里重复hash的数量 至于jit / luajit,是另一层面的优化了。

另外,50%的性能提升,是非常可观的了。值得为此去写一大箩筐代码。

我这边做的是FPS游戏,lua里有很多运算密集型的逻辑,已经不得不把大量逻辑改回在C#运行。但性能问题仍然很严峻,一帧耗时动不动就超过30ms

嗯嗯,这会也在考虑用luajit来进一步优化。等版本档期不那么紧的时候,深入学下下CSharp.lua的源码。

https://github.com/node-pinus/pinus 直接用typescript版本的pomelo