`
lcf11824
  • 浏览: 87810 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

写For时请三思再三思

阅读更多

昨天写了这样一段处理xml的代码,处理系统返回的结果,最后居然导致系统死慢死慢的,我百思不得其解,到底是Document类处理的问题呢?还是数据过多?

 

 

	private void formatResults(Condition condition) {
		NodeList results = doc.getElementsByTagName("result");
		try {			
			for (int i = 0; i < results.getLength(); i++) {
                        expr = xpath.compile("child::binding[@name='"
					+ condition.patternPara + "']");
				Node node = results.item(i);
				Node e1 = (Node) expr.evaluate(node, XPathConstants.NODE);
				node.removeChild(e1);
			}
		} catch (XPathExpressionException e) {
			e.printStackTrace();
		}
	}

 

就这样一段简单的代码~

最后终于。。请教了同事,一眼看出了问题

 

 

expr = xpath.compile("child::binding[@name='"
					+ condition.patternPara + "']");

这一句是速度低的关键!!!!! 

原来是每进入循环一次,就执行一次xpath的编译,这样如何能不慢!!!

将其移除到循环外后,速度上去多了~

 

我想,在我的代码中很可能还存在着很多类似的问题,每天不停的写代码,马不停蹄的赶工。学生时代赶作业稀里糊涂完成功能的习惯没有改掉。敲代码的时候,更多的是一种习惯和经验,这个应该这样写,应该那样写。作为一个程序员,应该严谨一些,这种低级错误必须杜绝。以后写循环的时候,一定要三思,记得循环的次数是不可控的,你写一句它就有可能执行N次!

 

一定要养成良好的编程习惯,完成任务之余多斟酌一下自己的代码!

 

 

 

3
5
分享到:
评论
1 楼 仅此而已 2011-08-12  
我觉得这句results.getLength();  也应该拿出来放到变量里。  减少资源浪费!

相关推荐

    如何学python(李三思)

    如何学python(李三思)

    上海新三思PowerTest注册机

    上海新三思是一家可能专注于材料测试设备和软件开发的公司,"拉力机"是他们提供的硬件设备,"POWERTEST"是其配套的软件,"三思"可能是指公司的品牌或产品系列,而"试验机"则表明该软件是用于各种力学性能测试的。...

    Oracle入门教程.三思笔记.一步一步学Oracle

    2012.9.Oracle三思笔记合集,供大家下载学习。压缩包里共32个PDF或DOC文件,都是整理版的,非常好阅读,谁下谁知道。 [三思笔记]drbd入门与应用.pdf [三思笔记]Linux5版本安装Oracle11gR2.pdf [三思笔记]Linux平台...

    三思笔记之涂抹ORACLE PDF版 part01

    三思笔记之涂抹ORACLE PDF版 三思笔记之涂抹ORACLE PDF版 三思笔记之涂抹ORACLE PDF版 三思笔记之涂抹ORACLE PDF版 三思笔记之涂抹ORACLE PDF版

    三思oracle笔记包

    三思oracle笔记包 包含: Linux5版本安装Oracle11gR2 ORACLE 10gR2 RAC环境增加及删除节点 Oracle+RAC数据库配置DataGuard RMAN管理ORACLE_RAC数据库的备份与恢复 全面学习MySQL+Proxy特性 全面学习分区表及分区索引...

    三思笔记之oracle函数

    通过阅读“三思笔记”中的相关内容,DBA们可以系统地学习Oracle函数的用法,从而更好地应对日常的数据库挑战。无论是处理数据转换、分析大量数据还是解决特定问题,这些函数都能提供强大的工具支持。因此,深入理解...

    exe安装包制作软件|三思安装包制作工具 v2.0.zip

    exe文件封装软件是开发者常用的一款站长工具,推荐使用三思安装包制作工具 三思安装包制作工具是一款程序压制工具,可以将任何程序封装为EXE,有了它你就可以把自己的一些比较零散的安装程度打个包,这样不仅便于...

    一步一步学Rman 三思笔记

    在“一步一步学RMAN 三思笔记”这个资料中,你将深入了解到如何有效利用RMAN来保护你的Oracle数据库,确保数据的安全性和可用性。 一、RMAN的基础概念 1. RMAN备份类型:包括全备份、增量备份和差异备份。全备份会...

    深度学习:以学生为中心的“三思”课堂——以《登泰山记》为例展开“三思”课堂的实践.pdf

    在《登泰山记》这一课例中,深度学习体现在“三思”课堂的实践中,即“勤思”、“善思”和“多思”,旨在促进学生主动探索、批判性思考和创新。 【“三思”课堂实践】是指通过设计不同的教学环节,引导学生对文本...

    涂抹Oracle 三思笔记之一步一步学Oracle(第2部分)

    涂抹Oracle 三思笔记之一步一步学Oracle(第2部分)

    涂抹Oracle—三思笔记之一步一步学Oracle

    《涂抹Oracle—三思笔记之一步一步学Oracle》很好的学习oracle书籍,值得一看

    三思笔记Rman

    三思笔记Rman。三思笔记Rman。三思笔记Rman。三思笔记Rman。三思笔记Rman。三思笔记Rman。三思笔记Rman。三思笔记Rman。三思笔记Rman。三思笔记Rman。三思笔记Rman。三思笔记Rman。三思笔记Rman。三思笔记Rman。三思...

    【三思笔记】Oracle学习资料整合汇总

    三思笔记,itpub版主(著有涂抹oracle)整理的oracle学习笔记,图文并茂。 个人在itpub中将:Linux5版本安装Oracle11gR2、全面学习分区表及分区索引、一步一步学rman、全面学习oracle的flashback特性、手把手教你用...

    三思笔记之Oracle函数.rar

    3. **字符串函数**:如LENGTH()计算字符串长度,SUBSTR()截取子串,UPPER()和LOWER()转换大小写,CONCAT()连接字符串,REPLACE()替换子串。这些函数在处理文本数据时不可或缺。 4. **转换函数**:TO_CHAR()和TO_...

    涂抹Oracle--三思笔记之一步一步学Oracle

    资源名称:涂抹Oracle--三思笔记之一步一步学Oracle内容简介:本书作为一本创作之初就定位于技术应用的实践参考书,虽然前前后后串联了Oracle数据库中十余个常用特性或工具,但在章节的设计上完全遵循这一理念。...

    涂抹Oracle 三思笔记之一步一步学Oracle

    本书作为一本创作之初就定位于技术应用的实践参考书,虽然前前后后串联了Oracle数据库中十余个常用特性或工具,但在章节的设计上完全遵循这一理念。在涉及特性或工具应用的每一个章节,均有相关实例演示如何应用,...

    君三思-动态性能表(1-20).pdf

    标题和描述均提到了“君三思-动态性能表(1-20).pdf”,这表明文档内容聚焦于Oracle数据库的动态性能管理,具体来说,是通过v$sysstat视图来监控和分析实例级别的资源使用情况。标签“动态性能 君三思”进一步强调了...

Global site tag (gtag.js) - Google Analytics