性能优化之for嵌套循环

性能优化其实有时候就在工作中的点滴积累.

在工作中,时常 会碰到同事感叹速度太慢,特别是对大数据做处理时.但只要注意可能很小很easy的改变,就可以让速度大为改观.

比如一个功能需要比较A仓库有但B仓库也有的物料,可能很多同事直接是以下代码:

 ArrayList AMatList = new ArrayList();
        ArrayList BMatList = new ArrayList();
        ArrayList sameMatList = new ArrayList();
        for (int i = 0; i < AMatList.Count; i++)
        {
            for (int j = 0; j < BMatList.Count; j++)
            {
                if (AMatList[i] == BMatList[j])
                {
                    sameMatList.Add(AMatList[i]);
                }
            }
        }

这样的数量级是n^2级;

其实换个简单的思路,数量级马上变成n:

   ArrayList AMatList = new ArrayList();
        ArrayList BMatList = new ArrayList();
        ArrayList sameMatList = new ArrayList();
        for (int i = 0; i < AMatList.Count; i++)
        {
            if (BMatList.Contains(AMatList[i]))
            {
                sameMatList.Add(AMatList[i]);
            }
        }

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-23 06:11:05

性能优化之for嵌套循环的相关文章

WEB网站性能优化

最近做了个WEB网站,刚开始还好,可是后来越来越慢,特别是调试模式下,本地运行不调试模式下也挺慢的,这肯定是我们的代码有问题,但是即使业务不是很复杂的也很慢,我们就想当然的认为我们的代码没问题,可最后证明还是我们的代码有问题.我也挺佩服我怎么忍受的了的,这个也是我们不能如期完成的主要原因,大家都因为慢,很降低我们的积极性,往往写几句代码调试要话好长时间,所以大家都愿意干点其他的. 先列几点我知道的可以从哪方面入手优化的东西. 从前台入手 1.减少HTTP请求 可以减少JS和CSS文件的个数,把几

T- SQL性能优化详解

故事开篇:你和你的团队经过不懈努力,终于使网站成功上线,刚开始时,注册用户较少,网站性能表现不错,但随着注册用户的增多,访问速度开始变慢,一些用户开始发来邮件表示抗议,事情变得越来越糟,为了留住用户,你开始着手调查访问变慢的原因. 经过紧张的调查,你发现问题出在数据库上,当应用程序尝试访问/更新数据时,数据库执行得相当慢,再次深入调查数据库后,你发现数据库表增长得很大,有些表甚至有上千万行数据,测试团队开始在生产数据库上测试,发现订单提交过程需要花5分钟时间,但在网站上线前的测试中,提交一次订单

mysql笔记03 查询性能优化

查询性能优化 1. 为什么查询速度会慢? 1). 如果把查询看作是一个任务,那么它由一系列子任务组成,每个子任务都会消耗一定的时间.如果要优化查询,实际上要优化其子任务,要么消除其中一些子任务,要么减少子任务的执行次数,要么让子任务运行的更快. 2). 通常来说,查询的生命周期大致可以按照顺序来看:从客户端,到服务器端,然后在服务器上进行解析,生成执行计划,执行,并返回结果给客户端.其中"执行"可以认为是整个生命周期中最重要的阶段,这其中包括 大量为了检索数据到存储引擎的调用以及调用后

MIS性能优化常见问题与方案(辅助项目组性能优化的总结贴)

最近帮忙公司的几个项目组进行了不同方面的性能优化,发现几个项目都出现了一些共性的问题.这里写一篇文章,总结一下这几类问题,以及其对应的解决方案.方便其它项目组参考.   常见问题一:打开页面非常慢,有的项目打开一个页面竟然要 20 多秒. 优化步骤: 降低每一个页面的请求数:使用浏览器跟踪打开页面后所有的请求,并逐一排查,把没有必要向服务端发起的请求优化掉,减少 Round Trip 次数. 针对每一个请求进行优化:对请求逐一排查,看看分别是哪些请求占用了较多的时间. 如果该请求是 JS 文件,

C++研究之在开发中你可能没有考虑到的两个性能优化

 1:多余的存储引用导致性能降低: 2:利用局部性提高程序性能: 先来说说引用是怎么降低程序性能,个人认为降低程序性能主要有两个原因,一是数据结构选择不合理,二是多层嵌套循环导致部分代码被多余重复执行.在第二种情况下我们一般都是优化循环最里层的代码,能提出来的尽量往外层提,实在不行的就优化它的运行速度. 1:多余的存储引用导致性能降低.先来看一个关于引用导致性能降低的问题.下面两个方法哪个更快. static void Test2(ref int sum) { for (int i = 1;

SQL语句性能优化--LECCO SQL Expert

SQL语句的优化是将性能低下的SQL语句转换成目的相同的性能优异的SQL语句. 人工智能自动SQL优化就是使用人工智能技术,自动对SQL语句进行重写,从而找到性能最好的等效SQL语句. 数据库性能的优化   一个数据库系统的生命周期可以分成:设计.开发和成品三个阶段.在设计阶段进行数据库性能优化的成本最低,收益最大.在成品阶段进行数据库性能优化的成本最高,收益最小. 数据库的优化通常可以通过对网络.硬件.操作系统.数据库参数和应用程序的优化来进行.最常见的优化手段就是对硬件的升级.根据统计,对网

菜鸟要做架构师(二)——java性能优化之for循环

完成同样的功能,用不同的代码来实现,性能上可能会有比较大的差别,所以对于一些性能敏感的模块来说,对代码进行一定的优化还是很有必要的.今天就来说一下java代码优化的事情,今天主要聊一下对于for(while等同理)循环的优化. 作为三大结构之一的循环,在我们编写代码的时候会经常用到.循环结构让我们操作数组.集合和其他一些有规律的事物变得更加的方便,但是如果我们在实际开发当中运用不合理,可能会给程序的性能带来很大的影响.所以我们还是需要掌握一些技巧来优化我们的代码的. 嵌套循环 stratTime

从技巧、案例和工具入手,详解性能优化怎么做

颜圣杰,.NET平台软件工程师,对DDD领域驱动设计感兴趣,目前在研究ABP框架,热爱写作与分享. 最近一段时间系统新版本要发布,在beta客户测试期间,暴露了很多问题,除了一些业务和异常问题外,其它都集中在性能上.有幸接触到这些性能调优的机会,这里跟大家归纳交流一下. 性能优化是一个老生常谈的问题了,典型的性能问题如页面响应慢.接口超时,服务器负载高.并发数低,数据库频繁死锁等.而造成性能问题又有很多种,比如磁盘I/O.内存.网络.算法.大数据量等.我们可以大致把性能问题分为四个层次:代码层次

Python性能优化(转)

分成两部分:代码优化和工具优化 原文:http://my.oschina.net/xianggao/blog/102600 阅读 Zen of Python,在Python解析器中输入 import this. 一个犀利的Python新手可能会注意到"解析"一词, 认为Python不过是另一门脚本语言. "它肯定很慢!" 毫无疑问:Python程序没有编译型语言高效快速. 甚至Python拥护者们会告诉你Python不适合这些领域. 然而,YouTube已用Pyth