9千万次循环 从2分3秒 优化到 7.3秒的过程 GO语言

 

这就是GO~  对于想极致的性能挖掘 GO语言基本没有太多空间。 

 下面是测试的代码,纯粹测试解释指令的效果,欢迎各语言残份 帮忙测一些数据对比一下。。

    int uu=0;
        //99999999
        for (int i=0;i<99999999;i++){
            uu++;
        
        }

 

说下优化 过程 

1、干了所有的MAP,必须要用MAP的话 key 请搞成int....  但是 在pprof的过程发现一个rumtime.mapxxaccessfast64xx的底层方法 也比较耗时,果断全换成切片了

2、能不用方法返回属性的 就不能通过方法返回属性,在外部 直接引用属性

3、所有的对象默认在栈上分配。。 后续的全靠GO了。。

4、切片能初始化容量\size的就初始化,方便快速索引,append 效率也比较低的

5、减少方法调方法的 这样会产生多次拷贝。。

后续的优化思路

1、所有需要对象,系统启动就每个 先new 100 个出来 池化起来,能不new就不new 同时能不栈上分配就不栈上分配

2、对于栈帧,也考虑提前new 因为会频发的使用到

 对于GO的 愚见

整体表现OK,从配套的调试工具,到舒适度,已经很不错了。

posted @ 2021-08-13 03:21  方东信  阅读(450)  评论(0编辑  收藏  举报