YANG Huan
YANG Huan
#31 有人提到过,里面有详细的描述。 这种处理方式就算会实现,优先级也很低,可能会加入额外的编译参数来支持。 目前而言短期我应该不会处理。 它牺牲了大量的代码可读性,获得的性能收益可能也就20%-50%,我觉得不一定值得
嗯,看起来确实可行 做的激进的话,最终会像js最小化代码一样,几乎不可读和调试,还需要map文件来对应调试信息,js是另一套工具单独处理,做到完善的话,代码量肯定工也不少 TypeScript 也没有做任何影响可读性的优化,CSharp.lua 初衷也是这样的,在不影响可读性的前提下,尽量的优化一些。在处理metadata时,我尝试过将__metadata__里面引用到的类型信息,都放到一张表里面导出到manifest.lua中,最终也是通过数组下标索引这些类型信息,发展确实对可读性影响较大,所以还是放弃了。 我也测试过查表和数组下标访问的效率差异,发现在jit和非jit的情况下,大致都可节约50%左右的时间,一方面确实有较大改善的空间,但是也看的出来lua查表确实也很快,并没有数量级的差异。 很多类似调用方式、函数内敛的优化可能是虚拟机层面更应该考虑的,luajit做的就很不错,如果可能的话就尽量使用luajit。
是的,确实是客观的提升 我预估可能需要全工时至少2周的时间,做完善并解决相关的bug。优化我一直放在次要的位置,相对可读性、功能完善等。我项目使用的luajit, 做的也是2d 卡牌,目前而言性能足够了,所以短期内不会实现。
你说过目前使用的是lua 5.3, 可以考虑在嵌入个luajit运行主逻辑,跑跑看看,这个优化就算做了,也不确定能起到很大的帮助,而且确实需要一大箩筐的代码,目前精力也有限,欢迎提交PR。
``` namespace Test { public class A { public A(int a, string b = null) { } } public class Program { private static void Main(string[] args) { Activator.CreateInstance(typeof(A), 100);...
greate work!, i add it in this list https://github.com/yanghuan/CSharp.lua/wiki/Related-Projects
I only use it to share code on the server side and the client
Transformice is a flash game, how can you use CSharp.lua with it ?
Thanks for your report, I will add them later.
you can use cjson in lua, i will use cjson to simple support System.Text.Json in future