这个话题跟我的另一篇博客“SQL性能优化”应该是类似的,只不过是关注方面不同。为什么会有意写这样一篇文章呢?这是因为遇到一个项目需要将大量(1-10万)的手机号码存储到txt文件中(每行一个)然后读取到ListBox控件中显示。起初的时候没有多想就用了最直接的方式,读取一万的时候还可以,但是到了五万、十万条感觉就很慢了几乎假死。怎么办呢?不得不思考。
字符串操作的优化
在这之前我想先看看怎么样用代码创建一个10万条的txt文件。
第一种方式:
共花费时间87.1809591秒
第二种方式:
共花费时间:0.0480612秒
上面的实验我测试了多次,基本上在我的计算机上都是差不多的,究竟两种方法相差多少倍我想至少对我来说没有太大的意义,因为相差太大了。以前就听说StringBuilder速度要快的多,但是没有自己测试,经过测试才知道对需要大量字符串运算的情况下真的快太多了!
注意:上面读写文件用的类是我自己封装的。
下面我们来看看在读取方面我们如何优化。
先看看我最初的代码(为了简单起见就不再对不合法号码做验证了,如果验证就会更慢):
花费时间:5.8284471秒
如果再加上验证和其他处理之类的时间会更长,我先即便什么都不在加,就是上面读取就要10秒的时间用户体验也会是很差的,他会认为死机了。如何改善呢???
我通过在上面的程序进行了分别计时得出读文件用了大概不到0.0005秒,进行拆分和替换不到0.1秒,循环写到ListBox用了大概6秒。
我想如果要想提高性能只能通过最后一部分,因为基本上所有的时间都被它占据了,怎么改变呢?总共就一个循环加一句话,先改循环吧,除了for用foreach和while都试过效果不明显。那么循环中的语句有办法优化吗?实在看不出有什么好办法(如果有人知道更好的办法欢迎交流)。那么怎么办啊,花费五六秒的时间让用户等等确实不太好啊,如果有大客户有二三十万条怎么办呢?换句话说如果我们遇到做好的算法也不能优化必须等待很长时间的情况怎么办?例如你安装大程序的时候(像SQL Server 2008)需要半个小时,算法已经最好了,不能再优化了,我们怎么办呢?这时我们为了增加用户体验就可以给出进度,像上面的程序我们还需要使用异步处理不影响其他操作。
用户体验
我在界面上又添加了进度条pbProgress和显示加载信息的lbLoadedNum,另外用到了Lambda表达式(这里可以看出Lambda表达式的作用,如果每个设置信息都声明委托再写相应的方法就十分麻烦了),具体代码:
注意:上面我们为了增加用户体验在循环中做了很多额外工作,其消耗时间会增长很多(因为每次循环都会多执行那些增加用户体验的代码,而循环此说又相当多),所以我们实际中还是要根据情况而定,对于我上面提到的功能我觉得是可以这样做的,因为是异步的,等待的同时并不影响性能,比起在那干等要好些。好了,今天的话题就到这里吧,关于性能优化牵扯到方方面面,这里仅仅就这一点而谈。
为了方便大家阅读,后部分源程序提供下载:UserExprience
分享到:
相关推荐
具体内容包括:基于用户体验的性能优化要素、前端性能优化实战、网站性能分析、服务端性能优化、TCP优化、DNS优化、CDN优化、大型网站性能监控体系、大型网站容量评估、高性能系统架构模式、大促保障体系、数据分析...
#### 一、基于用户体验的性能优化要素 在现代互联网应用中,用户体验是衡量一个网站成功与否的重要标准之一。良好的用户体验不仅仅体现在美观的设计上,更关键的是网站的响应速度和流畅性。因此,对网站的性能优化...
众所周知性能调优可以使系统稳定,用户体验更佳,甚至在比较大的系统中,还能帮公司节约资源。 但是在项目的开始阶段,没有必要过早地介入性能优化,只需在编码的时候保证其优秀、高效,以及良好的程序设计。 在...
前端页面加载性能优化是一种非常重要的技术,直接影响着用户体验和网站排名。美团买菜iOS工程师王梓童分享了前端性能优化的实践经验,包括性能优化思路、措施和未来规划。 一、前端页面加载性能优化思路 前端页面...
在前端开发领域,性能优化是提升用户体验的关键环节。"前端性能优化与实践.zip"这个压缩包包含了一系列关于前端性能优化的深度文章和教程,涵盖了浏览器缓存机制、首屏加载优化、服务端渲染、事件处理策略、图片优化...
Windows优化大师,作为一款广受用户喜爱的系统维护工具,其V7.99 Build 9.1215版本针对系统性能优化及用户体验进行了多项改进。这款软件主要功能集中在对Windows系统的全面诊断、清理、优化以及安全防护上,旨在提升...
【Android性能优化】是...综上,Android性能优化是一个系统性工程,需要综合考虑用户体验、系统资源利用、应用稳定性和效率等多个方面,通过对各个细节的深入理解和优化,才能打造出高效、稳定且用户友好的应用。
然而,在如今这个追求极致体验的时代,我们不仅要实现业务需求,更需要考虑如何优化用户体验,提升页面性能。本文将从JavaScript、React、Vue、Node.js等方面对前端性能优化进行探讨,并且结合实际案例进行分析。 ...
在构建和运行大型Java网站的过程中,性能优化是至关重要的,它直接影响着用户体验、服务器资源的利用率以及业务的可扩展性。本实战指南将探讨从前端网络到后端大促的全链路性能优化策略,旨在提升网站的整体效率。 ...
首先,性能优化可以提高应用程序的响应速度,减少用户的等待时间,提高用户体验和满意度。其次,性能优化可以减少应用程序的内存占用和CPU占用,延长设备的电池寿命和降低设备的温度。最后,性能优化可以提高应用...
性能优化是指通过一系列技术和方法提升系统或应用程序在处理任务时的速度、效率及稳定性等指标的过程。它旨在充分发挥硬件资源的优势,同时减少不必要的资源消耗,从而提高用户体验和系统的整体表现。 ##### 1.1 ...
良好的性能优化不仅能提升用户体验,还能有效降低成本、提高资源利用率,从而为企业带来更大的价值。 #### 三、性能优化的核心概念 根据文档内容,性能优化主要关注以下几个核心概念: 1. **什么是性能优化?** ...
前端性能优化是指在前端开发过程中,对Web应用程序的性能进行优化,以提高用户体验和页面加载速度。本文将介绍前端性能优化的经验沉淀,包括机票双程性能优化和开发工具的使用。 一、前端性能优化 1. 机票双程性能...
"推荐系统如何利用LLM优化性能和用户体验" LLM(Large Language Models)在知识储备和自然语言理解方面的优势,已经被广泛应用于推荐系统中,以提高推荐系统的性能和用户体验。本文将介绍如何利用LLM来优化推荐系统...
网站性能优化是提升用户体验、降低服务器负担的关键环节,尤其在当今互联网环境中,用户对网页加载速度有着极高的期待。本文将深入探讨网站性能优化的方案和原理,主要围绕"高性能网站建设指南(上1).pdf"这份资料...
Web前端性能优化是提升网页用户体验和确保网站成功的关键因素之一。性能优化涉及多个方面,包括但不限于代码优化、资源加载策略、服务器配置等。本篇内容将深入探讨Web前端性能优化的思路与学习方法,结合WebQQ、QQ...
快手 APM 平台建设与性能优化 APM(Application Performance Management)是指对应用程序性能的监控和优化,以提高用户体验和满意度。在快手平台中,APM 的重要性不言而喻。本文将从快手 APM 平台建设的角度,探讨...
在前端开发领域,性能优化是提升用户体验和网站可访问性的重要环节。这本"前端性能优化原理与实践"小册子深入探讨了如何通过一系列技术手段优化前端页面,旨在帮助开发者构建更快、更流畅的Web应用。以下是该压缩包...