Ku双端框架——调用C++ 性能提高几十倍

链接

Cocos商城:Cocos Store
Git地址:Cocos Creator Ku双端框架: Cocos Creator Ku双端框架
原框架论坛:

技术背景

  • Ku框架后端语言使用的是Python,Python是脚本语言,对于高效开发和在线更新有很好支持,但是性能较差,对于需要高性能的算法实现不太适和用Python来写。
  • 为了高效开发的同时,能够兼顾性能,所以需要把一些耗时较长的算法放入C++中实现,然后Python直接调用C++获取计算结果。

实现

  • 使用C++实现相关算法,编译出dll(windows)和so(linux)文件,根据当前运行环境来测试导出文件的使用。
  • C++算法实现
//C++
int fibonacci(int n) {
    if (n <= 1)
        return n;
    return fibonacci(n - 1) + fibonacci(n - 2);
}
  • Python算法实现
#Python
def fibonacci(n):
	if n <= 1:
		return n
	return fibonacci(n - 1) + fibonacci(n - 2)
  • 耗时对比
n=35
Python 结果:9227465 耗时:2.8650002479553223
C++ 结果:9227465 耗时:0.039893150329589844

n=37
Python 结果:24157817 耗时:10.289392948150635
C++ 结果:24157817 耗时:0.3696324825286865

视频教程

技术文档

1赞

以前还写写python,一些转换脚本,打包工具等。
现在心态变了,能不用python就不用python。
能用typescript就全用typescript。
一来,任然无法适应代码缩进来定义代码这一语法特征。
二来,python能干的,typescript全都能,甚至python不能的typescript也能。
三来,虽然python在人工智能领域非常流行,但是我觉得以我的能力,也就用用人工智能了,要深入那真是没时间没精力没能力了,苦海果真太无涯。

go其实比python更适应,希望以后go在ai方面的使用越来越多;
其实用go写代码比ts舒服多了,ts比较繁琐结果还是翻译成js运行,没什么意思。。
除了前端没办法,服务端和工具之类的 我都尽量用go去实现了。

ts 主要是不用多学一门语言了,,

+1,ts做工具,ts做游戏,语法统一,游戏测试代码转换为工具只需要复制粘贴,方便快捷。npm脚手架下下来的库大家一起用,不用写两套逻辑

关于工具脚本,我倒是觉得用什么语言都可以。我一般都是先写好功能描述,然后给ai出脚本,一般都能1-2次就弄好。
工作的时候用python和node.js做工具比较多,但个人喜欢c#,性能比较好,vs容易调试,也容易出图形界面,ImageMagick.NET处理图片非常好用。实际工作流中几种语言都有用。

没毛病 c++第一快, nodejs第二快 , nodejs无所不能