`
远去的渡口
  • 浏览: 473583 次
  • 性别: Icon_minigender_2
  • 来自: 上海转北京
社区版块
存档分类
最新评论

for循环优化

阅读更多

 到金蝶去面试了一下,结果在笔试就差不多挂了,因为自己都感觉做的不怎么样,涉及的东西太多了,其中java基础倒还可以,对于EJB,UML,软件工程方面的,象什么无状态会话bean什么的,瀑布式开发啥的,搞得我头晕,这些基本上没怎么用的,都搞不倒。把几个比较基础点的东西总结一下好了。

  其中有一个程序优化题目,

 

private void testFor(){
		for(int i=0;i<1000;i++){
			for(int j=0;j<100;j++){
				for(int k=0;k<10;k++){
					action(i,j,k);
				}
			}
		}
	}

 假如action只做最简单的事,

private void action(int i,int j,int k){
		System.out.println("s");
	}

 

 

优化前,发现执行循环一共用了41422毫秒。

 

优化如下:

private void testFor1(){
		for(int i=9;i>=0;i--){
			for(int j=99;j>=0;j--){
				for(int k=999;k>=0;k--){
					action(i,j,k);
				}
			}
		}
	}

 

 

 

然后再测试,执行循环用了40469毫秒。

当然,当时原题是最外层循环是10000次,测试时间都花太长,循环的次数越多,这个差别就越大了。

这么优化,将循环次数多的写在内部,次数小的写在外部,减少了外层判断的次数,从而提高性能。

1
1
分享到:
评论
4 楼 远去的渡口 2010-03-20  
黑暗浪子 写道
EJB,瀑布式开发?寒~~
这是那一年的技术面试题目啊?

上面写的是08年的
3 楼 黑暗浪子 2010-03-20  
EJB,瀑布式开发?寒~~
这是那一年的技术面试题目啊?
2 楼 远去的渡口 2010-03-19  
JohnnyJian 写道
这有什么好优化的?99.9%的时间都花在了IO上面……

金蝶的原题就是:
程序优化:
for(int i=0;i<1000;i++){  
            for(int j=0;j<100;j++){  
                for(int k=0;k<10;k++){  
                    methodA(i,j,k);  
                }  
            }  
        }  

我这里只不过是个测试,当然目的在于让你优化循环了。
1 楼 JohnnyJian 2010-03-19  
这有什么好优化的?99.9%的时间都花在了IO上面……

相关推荐

    多重For循环 优化

    ### 多重For循环优化分析 #### 原始代码分析 原始代码示例如下: ```java for(int i = 0; i ; i++) { for(int j = 0; j ; j++) { for(int k = 0; k ; k++) { log(i * j * k); } } } ``` 此段代码中的嵌套循环...

    C++ For循环优化版

    C++循环冒泡法优化 在看到for循环冒泡排序(c++) 后 再次优化了一下,它的程序不能运行,我运行优化的成功了,对初学者理解有很大帮助(还有注释)

    python for循环优化

    本文以一个实际案例出发,探讨如何优化Python的for循环以提高程序效率。 一、问题背景 在项目初期,由于用户数量较少,使用了两层嵌套的for循环来完成计算任务,耗时1-2小时。然而,随着用户基数的增长,项目运行...

    js,java提高编程效率之【for循环优化】.pdf

    本文主要讨论了如何优化JavaScript和Java中的for循环,以提高编程效率。 首先,我们来回顾一下传统的for循环语法: ```javascript for(var i = 0; i ; i++) { // 对arrays[i]进行处理 } ``` 这段代码适用于遍...

    性能测试_性能测试_c#循环优化_

    例如,一个简单的for循环优化前后的对比可能是这样的: ```csharp // 未优化的for循环 for (int i = 0; i ; i++) { // 执行某个操作 } // 优化后的并行for循环 Parallel.For(0, 1000000, i =&gt; { // 执行相同的...

    Java for循环性能优化实现解析

    1. 嵌套循环优化 在Java中,嵌套循环是一种常见的循环结构。但是,如果我们不合理地使用嵌套循环,可能会给程序的性能带来很大的影响。解决方法是遵循“外小内大”的原则,即将小循环放在大循环的内部。这可以显著...

    Codesys V3510 For循环案例分享

    同时,还可以了解如何调试和优化For循环,以提高程序效率。 总的来说,对于工业自动化的新手来说,熟练掌握Codesys V3 3510中的For循环是提升编程能力的关键一步。通过深入学习和实践这些案例,不仅可以提高编程...

    Java for循环Map集合优化实现解析

    "Java for循环Map集合优化实现解析" Java for循环Map集合优化实现解析是Java编程语言中的一种高效的集合优化技术。该技术通过使用Map集合来优化for循环的性能,减少循环次数,从而提高程序的执行效率。 Java for...

    深入探究JavaScript中for循环的效率问题及相关优化

    然而,传统的for循环在处理复杂逻辑或大数据集合时可能会影响脚本的执行效率,优化循环的效率对于提高代码性能至关重要。 首先,传统的for循环的效率问题主要体现在两个方面:一是循环体内部代码的执行时间;二是...

    Vivado HLS 视频课程总结

    18 for循环优化-嵌套的for循环优化 54 18.1 循环嵌套类型 54 18.2 Perfect loop nest示例 55 18.3 Imperfect loop nest示例 56 19 for循环优化-其他优化方法 59 19.1 for循环的并行性 59 19.2 for循环pipeline时的...

    快速学习C语言中for循环语句的基本使用方法

    在C语言中,for循环语句是编程中最常用的循环结构之一,它提供了简洁且灵活的方式来重复执行一段代码。本文将详细介绍C语言中for循环的基本使用方法,并通过一个温度转换程序的例子来阐述其工作原理。 首先,for...

    Javascript-For-Loop-Optimization:Javascript FOR循环优化

    JavaScript循环优化 为什么需要代码优化? 代码优化是用于提高代码质量和效率的一组代码修改方法。 可以对程序进行优化,使其尺寸更小,消耗更少的内存,更快地执行或执行更少的输入/输出操作(来自Google)。 因此...

    编译原理课设for循环

    课设中还提供了"编译课设for循环简单优先三地址.doc"文档,这很可能是详细的项目说明或者报告,包含了算法描述、设计思路、实现细节和可能的优化措施。而"input.txt"则可能包含了一些示例的for循环源代码,用于测试...

    Java代码循环的优化

    下面将详细介绍标题及描述中提到的几个循环优化技巧: 1. **数字比较尽量和0比较** 在Java中,当进行数值比较时,如果可能的话,应尽可能地将其中一个值设置为0来进行比较。这是因为大多数处理器在处理与0的比较...

    FOR循环语句的翻译程序设计(LL(1)法、输出四元式)

    在编程语言的编译原理中,FOR循环语句的翻译是构建编译器的一个关键环节。FOR循环是一种常见的控制流程结构,广泛应用于各种编程语言,用于执行一系列重复操作。本主题将深入探讨如何使用LL(1)分析法来设计翻译程序...

    matlab开发-循环优化方法

    在MATLAB开发中,循环优化是一项关键技能,它旨在提高代码执行效率,减少计算时间,尤其是在处理大数据集或复杂计算时。本主题将深入探讨如何通过优化循环来提升MATLAB程序的性能。以下是对给定文件中可能涉及的几个...

    for循环简单操作 数字的遍历

    `for`循环的优化与注意事项 - 在循环体内避免进行复杂的计算,以免影响性能。 - 如果需要在循环外部使用循环变量,记得在循环外声明。 - 避免在循环体中修改循环变量,可能导致意料之外的结果。 - 使用`break`或`...

    特殊的for循环加法运算

    在探讨“特殊的for循环加法运算”这一主题时,我们首先需要理解其核心概念与应用场景。根据提供的代码片段,我们可以观察到一个典型的Java程序结构,其中包含了一个利用for循环进行特殊加法运算的过程。这段代码旨在...

    循环优化,要充分利用CPU的指令缓存,就要充分分解小的循环。特别是当循环体本身很小的时候,分解循环可以提高性能。

    例如,将for循环中的do_stuff(i)连续调用多次,可以减少比较指令的次数,提升执行速度。但是,如果循环内有中间变量修改,编译器可能不会自动展开,此时需要手动进行。此外,循环展开可能导致代码体积增大,对于有...

    javaEE-嵌套For循环性能优化案例借鉴.pdf

    本文通过一个具体的案例,探讨了如何对嵌套for循环进行性能优化。 案例中的原始代码如下: ```java for (int i = 0; i ; i++) for (int j = 0; j ; j++) for (int k = 0; k ; k++) testFunction(i, j, k); ``` ...

Global site tag (gtag.js) - Google Analytics