美文网首页
循环展开

循环展开

作者: yunhen | 来源:发表于2023-11-15 16:00 被阅读0次

第二种方法用了循环展开,速度快了不少

fun cale0(n:Long) :Unit{
        var fxx = 1L
        val start = System.currentTimeMillis();
        System.out.println("cale0 开始 ----- ")
        for (i in 1..n ) {
            fxx *= i
        }
        val end = System.currentTimeMillis();
        val d = end - start;
        System.out.println("cale0 时长 ----- ${d}ms")
        System.out.println("cale0 结束 ------------ $fxx")
    }

    /**
     * n默认是4的倍数 
     */
    fun cale1(n:Long) :Unit{
        var f0 = 1L
        var f1 = 1L
        var f2 = 1L
        var f3 = 1L
        val start = System.currentTimeMillis();
        System.out.println("cale1 开始 -----")
        for (i in 1..n step 4) {
            f0 *= i
            f1 *= i + 1
            f2 *= i + 2
            f3 *= i + 3
        }
        val end = System.currentTimeMillis();
        val d = end - start;
        System.out.println("cale1 时长 ----- ${d}ms")
        val f = f0 * f1 * f2 * f3
        System.out.println("cale1 结束 ------------ $f")

    }

相关文章

  • 循环展开

    循环展开,英文中称(Loop unwinding或loop unrolling),是一种牺牲程序的尺寸来加快程序的...

  • Duff

    一种循环展开的策略:“小步合并成为大步”,在memcpy的实现中有用到。image.pngimage.png

  • C++ 优化:for循环展开

    我写了一段代码: 运行结果如下: 我们可以看到,在for循环展开可以提高代码的执行效率,主要的原因有以下两点1、提...

  • vue 使用 v-for 让 table 纵向展开分组

    需要展现这样一个表格 分析:需要循环展开每排表格,同时行上有分组,采用行模板模式 table的 tbody 带 ...

  • 简析duff device

    达夫设备是一个很棒的迂回循环展开法,是由Tom Duff在Lucasfilm时所设计的。它的传统的形态是用来复制多...

  • 第五章:优化程序性能

    本章主要介绍了妨碍编译器进行大量优化的因素,比如内存别名使用和过程调用,同时还介绍了循环展开技术,它可以利用现代处...

  • 深入理解编译优化之循环展开和粗化锁

    简介 之前在讲JIT的时候,有提到在编译过程中的两种优化循环展开和粗化锁,今天我们和小师妹一起从Assembly的...

  • 总经理的工作

    管理三要素和执行四步法。所谓总经理,就是不断地围绕这两个方面循环展开工作的过程,宏观上践行管理三要素,微观上践行执...

  • ElementUI tree 异步树(懒加载)循环展开指定子节点

    项目中根据子节点 id 展开异步树节点,需要后端返回 当前子节点的左右父级节点id集合

网友评论

      本文标题:循环展开

      本文链接:https://www.haomeiwen.com/subject/lswswdtx.html