Project1
标题:
某搞笑而高效的优化方法..Ruby翻·译
[打印本页]
作者:
SixRC
时间:
2018-2-19 22:44
标题:
某搞笑而高效的优化方法..Ruby翻·译
简单说 就是把 ruby 代码翻译成 c 然后编译...乍看很诡异对吧
这个思路其实很早很早就有了,不过比较懒,一直拖着没什么实际行动 当然现在也不算有什么实质的行动..
操作起来还是蛮简单的
ruby 是拿 c 写的,ruby 原生的类/模块以及 RGSS 都是拿 c 写的然后编译的。游戏的本体代码也完全可以这样。(取关键部分翻译)
只需要反汇编取得关键函数的地址就能在此基础上进行翻译
翻译好再一番编译变 dll 然后进脚本去调用初始化一下就成了
搞笑就在于 直接写 c 作为拓展库也就算了 从 ruby 写回 c ?你在搞笑吗
高效在于省去了解释的过程 直接运行编译好的机器码 速度飞快
测试了一下效率起码是几倍 乃至十几倍 真的..
我就测试了一些 一个用 c 写 一个用 ruby 写 然后重复调用比较
方法越是复杂效率提升就越多
其余的没测试 因为 翻译还是 比较烦
高效一是在于编译好了
二是在于可以省略一些 ruby 的操作方式反之用 c 的方式取代
三是在于真·多线程
毕竟翻译不可能是一模一样来的
缺点一是烦
二是这种做法没啥必要 本来也够快了
单纯为了好玩吧
一直在用XP,XP的 ruby 版本是 1.8.1
下面一份是 RGSS103J 的大部分翻译所需的函数地址
一份是我翻译的这版本 ruby 源码的 README.EXT
翻译了绝大部分,其余对翻译没啥帮助 假如觉得我翻译的很怪请参考原文本
里面有基础知识啊操作全局实例变量常量啊定义函数类模块啊 c 和 ruby 之间的数据交流转换啊等等翻译所需要的东西
另外随时可以翻翻源码
函数地址
README.EXT.zh
假如有人成功把整个游戏的代码全翻译成 c 然后编译成 dll 了
脚本主体就只有两句
Win32API.new('s','Init','v','v').call
main
不知所以的人看到肯定是崩溃的
知道的人肯定更崩溃 什么人这么无聊...
作者:
M.Winderic.
时间:
2018-2-20 00:29
还是 Rubinius 实在点 (x
https://github.com/rubinius/rubinius
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1