写代码不要总以完成任务为目标,在保证基本功能实现的同时是否可以从代码性能、健壮性、可扩展性、可维护性、可移植性等多个维度来审视自己的代码。
之前在做某一个模块的功能优化时,看到一段历史代码,功能很简单:解析xml从中获取数据,xml结构也不是很复杂,当时开发这段代码的前辈用的是个循环并在里面添加分支判断进行获取,看的并没什么问题。可当我接到问题单并最终将问题原因定位到这段代码的时候,我当时惊呆了。因为当时解析的是一个30多M的xml文件,其中包含了多个任务的构建信息,结果执行那段代码的时候由于多个任务多个分支,导致这个文件竟然被重复解析了十几次,当时的CPU基本一直维持在登顶状态,最终那段代码在执行了近半小时才完成数据的展示。 当时在优化这段代码的时候,我把jdom、dom4j、w3c的dom解析方式试了个遍,最终采用dom4j+xpath的解析方式才让问题稍微好转点,至少加载时间减少了很多,CPU也飑的不是那么猛了。也就是从这个任务开始,我开始关注代码性能方面的问题,对自己写的代码开始从性能、可维护性上进行考虑,可能当时那位前辈也只是少了30M文件这个测试环境所以才把这个锻炼的机会留给了我 呵呵
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!