全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java性能优化:字符串过滤首先描述一下需求,具体如下:给定一个String对象,过滤掉除数字(字符0- 9)以外的其它字符。要求时间开销尽可能小。过滤函数的原型如下:String filter(String str); 针对上述需求,我们用了4个不同的过滤函数。为了叙述方便,分别称为filter1到filter4。 其中filter1性能最差、filter4性能最好。好了不多说我们先来看一下代码:代码实现测试代码为了方便测试性能,先准备好一个测试代码,具体如下: 测试字符串为 “D186783E36B721651E8AF96AB1C4000B”。 版本1 先来揭晓性能 最差的filter1,代码如下: 为了和后续对比,先记下filter1的处理 时间,大约在4.8-4.9秒之间。版本2 再来看看filter2,代码如下: filter2的处理时间大约为1.7-1.8秒,提升了大约3倍。 版本3然后看看filter3,代码如下:Filter3和filter2差别也很小,唯一差别就在于调用了StringBuffer带参数的构造函数 。通过StringBuffer的构造函数设置初始的容量大小,可以有效避免append()追加字符时重新分配内存 ,从而提高性能。Filter3的处理时间大约在1.6-1.7秒。约提高6%版本4最后来看看终极版本,性能最好的filter4。你可能会想:filter4 和前几个版本的差别也挺大了吧!filter4既没有用String也没有用StringBuffer,而是拿字符数组进行中间处理。Filter4的处理时间,只用了0.2-0.3秒,相对于filter3提升了将近8倍。是不是因为直接操作字符数组,节省了append(char)的调用?通过查看append(char)的源代码,内部的实现很简单,应该不至于提升这么多。那是什么原因捏?虽然filter4有一个字符数组的 创建开销,但是相对于filter3来说,StringBuffer的构造函数内部也会有字符数组的创建开销。两相抵消。所以filter4比filter3还多节省了StringBuffer对象本省的创建开销。所以节约了性能。 对4个方法的总结上述4个方法,filter1和filter4的性能相差19倍。几个版本都是通过节省内存分配,降低了时间开销 一点补充说明,关于时间和空间的平衡另外,需要补充说明一下。Filter3和filter4使用了空间换时间的手法来提升性能。假如被过滤的字符串很大,并且数字字符的比例很低,这种方式就不太合算了。 举个例子:被处理的字符串中, 绝大部分都只含有不到10%的数字字符,只有少数字符串包含较多的数字字符。对于 filter3来说,可以把new StringBuffer(nLen);修改为new StringBuffer(nLen/10);来节约空间开销。 但是filter4就没法这么玩。 所以,具体该用filter3还是filter4,要看具体情况了。只有在你非常看重时间开销,且数字字符比例很高(至少大于50%)的情况下,用f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年河南省地质局所属事业单位招才引智高层次人才40人考试笔试参考题库附答案解析
- 2026中国储备粮管理集团有限公司黑龙江分公司省内粮食行业产教融合共同体院校招聘40人笔试考试备考题库及答案解析
- 2025弋阳县总医院人民医院院区招聘8名临床医师笔试考试备考试题及答案解析
- 2025河南师范大学2025年招聘员额制工作人员(硕士)4人考试笔试模拟试题及答案解析
- 2025上海静安区区管企业招聘中层管理人员17人笔试考试参考试题及答案解析
- 2025南昌县人民医院招聘1名超声医学科医生考试笔试参考题库附答案解析
- 南充市房地产管理局2025年公开遴选参照管理人员(2人)考试笔试备考题库及答案解析
- 2025年江西省赣湘发展投资集团有限公司招聘合同制工作人员3人笔试考试备考试题及答案解析
- 2026天津市卫生健康委员会所属天津市第三中心医院招聘60人笔试考试备考试题及答案解析
- 2025广东韶关乐昌市市场监督管理局编外人员招聘2人考试笔试参考题库附答案解析
- 乡村垃圾模拟政协提案模板
- 2025昆明市消防救援支队政府专职消防员招聘(188人)笔试考试参考试题及答案解析
- 2025广东东莞市樟木头镇招聘编外聘用人员14人笔试考试参考试题及答案解析
- 2025年大学《艺术鉴赏》各章节测试题与答案
- 2025至2030中国合成纤维行业项目调研及市场前景预测评估报告
- IMPA船舶物料指南(电子版)
- 【MOOC】以案说法-中南财经政法大学 中国大学慕课MOOC答案
- 上海市2023年基准地价更新成果
- GA 1026-2012机动车驾驶人考试内容和方法
- MBA市场营销课程考试范围(32题及答案)
- 宝钢作业长制详解课件
评论
0/150
提交评论