`
csstome
  • 浏览: 1476876 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

性能优化及用户体验

 
阅读更多

这个话题跟我的另一篇博客“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优化、大型网站性能监控体系、大型网站容量评估、高性能系统架构模式、大促保障体系、数据分析...

    阿里巴巴Java性能调优实战(2021-2022华山版)+Java架构核心宝典+性能优化手册100技巧.rar

    众所周知性能调优可以使系统稳定,用户体验更佳,甚至在比较大的系统中,还能帮公司节约资源。 但是在项目的开始阶段,没有必要过早地介入性能优化,只需在编码的时候保证其优秀、高效,以及良好的程序设计。 在...

    推荐系统如何利用LLM优化性能和用户体验

    推荐系统如何利用LLM优化性能和用户体验

    Java项目如何进行性能优化

    应用性能是产品用户体验的基石,性能优化的终极目标是优化用户体验。当我们谈及性能,最直观能想到的一个词是“快”,哪到底怎么才是快呢?如何又为慢! 02-什么样的体验叫快呢? 3S定理:Strangeloop在对众多的网站...

    论文研究-JavaServlet模式的WebGIS性能优化研究.pdf

    由于服务器端性能的优劣直接影响到客户端用户的使用和体验效果,因此对WebGIS服务器端性能问题进行了深入研究,提出了JVM(Java虚拟机)性能调优、建立并改进缓存服务器、使用tmpfs(一种基于内存的文件系统)存储...

    微信海外网络性能优化

    微信海外网络性能优化,微信的用户数量巨增,走向国际化。为提升海外用户的体验。

    web技术深入交流:网站用户体验探索——之网站性能优化

    web技术深入交流:网站用户体验探索——之网站性能优化

    华为5G性能优化指导手册-SA.docx

    目前全省各地市已完成SA商用测试,除了从日常测试与投诉中发现网络存在“点、线”的问题,还需要从性能上发现面上的问题,从而使得NSA网络正常运行,保障5G网络的用户体验感知。 与传统LTE网络一样,需要从“接入性...

    开发-性能优化方法论(蚂蚁集团高级java工程师)

    很多人都想学好性能优化,希望能够在自己的工作中灵活运用,提升自己的技术水平,为用户提供 良好的使用体验。 然而,很多人在工作中设计技术方案或者编码时缺乏系统的、方法论级别的理论指导,导致需要考 虑性能...

    web前端性能优化-人人都能做优化

    如何进行web网站的前端优化,使网站运行和用户体验更好

    前端性能优化知识图谱指导

    JS性能优化是指在JavaScript代码的编写和执行过程中,通过一系列的优化策略和技术手段,提高代码的执行效率和性能,从而提升网页或应用程序的响应速度和用户体验。 优化JS性能的方法包括但不限于以下几个方面: 代码...

    搜狗输入法性能优化实践

    普通应用开发,很多在普通应用开发看来不是问题的,在输入法...本主题详细介绍搜狗输入法关键性能指标的优化实践,如何将新的技术点与实际项目相结合,不断优化用户体验,从中总结性能优化的一些基本方法和注意事项。

    Android性能优化

    出色的用户体验有三个特征:速度快、响应及时以及无缝。下面的信息帮助你的应用如何能够在Android上实现这些特征。

    性能优化分享

    网站性能优化,vue组件优化,图片优化等,让页面加载更流畅,拥有更屌的用户体验

    应用篇 1:优化首屏体验——Lazy-Load 初探(2).md

    大家谨记,我们任何一个用户端的产品,都需要把这 5 个过程滴水不漏地考虑到自己的性能优化方案内、反复权衡,从而打磨出用户满意的速度。 ## 从原理到实践:各个击破 我们接下来要做的事情,就是针对这五个过程...

    论文研究-高性能计算环境中间件的优化设计与实现.pdf

    步入大数据时代之后,致力于解决大规模科学计算问题的高...优化后的信息同步模式在处理2 000条作业状态更新时,延迟时间缩短90%、系统负载降低98%、网络连接数减少90%,为系统维护人员、环境用户带来更好的用户体验。

    高性能iOS开发

    全书共5个部分,主要从性能的衡量标准、对应用至关重要的核心优化点、iOS应用开发特有的性能优化技术以及性能的非代码方面,讲解了应用性能的优化问题。本书的主要目的是展示如何从工程学的角度编写最优代码。本书...

    网站性能优化 Web开发 JSP java

    2.缓存技术(当数据更新比较快,几秒钟更新一次,或者需要实时反映数据变化,或者页面...DIV+CSS可提高用户体验 建议不使用table 权限模块: 1权限定义 权限组(角色) 权限拦截模块 A粗粒度(Filter)B细粒度(AOP)

    一款追求全新用户体验的干货集中营 iOS 客户端

    最后,为了保障用户的使用体验,新的iOS客户端将注重性能优化和稳定性,确保用户在使用过程中不会遇到卡顿和闪退等问题。同时,客户端还将定期更新,引入新功能和修复bug,持续改进用户体验。提升用户体验,通过简洁...

    在线学习平台的前端设计优化与实现

    Web前端、模块化、组件开发、性能优化 随着互联网技术的发展,人们越来越习惯通过网络获取信息,在线学习平台 也因此应运而生。同时,人们对于网站的易用性和交互体验的要求也越来越高, 设计良好、性能优良的网站...

Global site tag (gtag.js) - Google Analytics