`
ycocks
  • 浏览: 752 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Web客户端遇到的10个影响性能的突出问题

阅读更多
#1 调用数据库过多

     我们见到的最多的问题是,每次请求或事务,查询数据库的次数太多。这有3种特殊的现象来证实。

在当前事务的上下文中,请求的数据多于实际需要的数据。例如:请求所有用户信息而不是那些我们要显示到

当前屏幕的信息。
同样的数据被请求多次。这通常发生在不同的组件在同一个事务中彼此独立的调用,并且每次都请求同类数据

。因为不知道哪种类型的数据已经加载到当前的上下文中,最终导致多次相同的查询。
为了取得一特定的数据集执行多次查询操作。这通常是因为没有充分利用复杂 sql语句的优点或存储过程导致

的。
想了解更多,请查看: Blog on Linq2Sql Performance Issues on Database ,  Video on Performance

Anti-Patterns


    #2 同步死锁

    毫无疑问,同步在应用中保护共享数据是十分必要的。但有很多开发者犯了过度使用同步的错误。例如:

大量的代码序列被同步。低负载(开发者本地的机器上)时性能不会出现问题。在高负载或生产环境中,同步

过度使用会导致服务器性能和扩展性问题。

想了解更多哦,请查看:How to identify synchronization problems under load


      #3 与远程通道对话过多

    很多类库出现使得远程通信看起来小菜一碟。开发者调用本地和远程方法几乎没有什么不同。对远程调用

的缺乏了解,使得大家忘了随着每次远程调用产生的诸如延迟、序列化、网络传输和内存消耗等问题。简单的

使用这些技术导致这些远程边界穿插太多的调用,最终导致性能和扩展性问题。

想了解更多,请查看: Performance Considerations in Distributed Applications


     #4 错误的使用O/R-Mappers

      对象关系映射卸下了开发者肩膀上的重担-- 加载和在数据库中持久化对象。任何一种框架通常有很多配

置选项来优化应用用例的对象关系映射的使用。错误的配置和不正确的使用框架本身过多,导致使用这些框架

的不可预料的性能和扩展性问题。确保你自己熟悉所有的配置项并且了解你所依靠的类库的内部。

想了解更多,请查看: Understanding Hibernate Session Cache , Understanding the Query Cache ,

Understanding the Second Level Cache


     #5 内存泄漏

      运行时环境的管理,像Java和.NET都有垃圾回收器帮助进行内存管理。但是,垃圾回收器却不能阻止内

存泄漏。被遗忘的对象会驻留在内存中,最终导致内存泄漏出现OutOfMemoryException。及时的释放掉对不再

需要的对象的引用很重要。

想了解更多,请查看: Understanding and finding Memory Leaks


    #6 第三方代码或组件的问题

     没有人靠自己写一个新应用的所有功能。我们使用第三方的类库来加快我们的开发进度。我们在加快我们

输出的同时,也增加了由这些组件带来的性能风险。尽管多数的框架有很好的文档且经过十分彻底的测试,但

不能保证这些框架适用于所有情况。他们经常被不正确的使用,或不经过测试就使用。所有,在引入你的代码

之前,要对所有这些框架进行深入的检查。

想了解更多,请查看: Top SharePoint Performance Mistakes


    #7 稀少资源的浪费使用

     像内存、CPU、I/O或数据库这类资源都是稀少的。对这些资源的浪费使用导致其他人不能调用这些资源,

最终导致性能和扩张性问题。举个例子:数据库连接时间太长。连接应该只有在真正需要的期间段使用。例如

,查询时连接,然后把连接归还给连接池。我们经常看到在处理请求很早之前就请求连接,并且直到最后也没

有释放连接,这就导致瓶颈现象的出现。

想了解更多,请查看: Resource Leak detection in .NET Applications


    #8 臃肿的WEB前端

     由于网络的高速接入,用户有了更好的用户体验。不好的趋势是很多应用打包的东西太多,他们变得臃肿

,最终导致浏览器出现错误。那些还没有高速网络接入的用户会遇到这样的问题会最多。图片过大过多,错误

的使用浏览器的缓存,过度的使用JavaScript或Ajax,所有这些都会导致浏览器的性能问题。按照已有网站的

成功案例来优化能解决这些问题。

想了解更多,请查看: How Better Caching would help speed up Frankfurt Airport Web Site


   #9 错误的缓存策略导致垃圾回收过度

    把对象在内存中缓存,来避免持续的对数据库的反复调用是提升性能的一种方法。缓存太多的对象,或者

缓存的对象不是经常使用,会把缓存的优点变成缺点,因为消耗的内存过多并且增加了GC的活动。在实现一个

缓存策略之前,有应该知道那些对象应该缓存,哪些对象不应该缓存来避免这些性能和扩展性问题。

想了解更多,请查看:Java Memory Problems , Identify GC Bottlenecks in Distributed Applications


    #10 间歇性问题

    间歇性问题很难被发现。这些问题在输入特殊参数或一定负载时才会经常出现。测试覆盖要全面,功能测

试、负载测试和性能测试都要覆盖到。这样才能在成为最用用户遇到的问题之前发现这些问题。


想了解更多,请查看: Tracing Intermittent Errors by Lucy Monahan from Novell , How to find

invisible performance problems


   (附加问题)#11 昂贵的序列化

    使用远程通信,像Web Service,RMI 或 WCF。对象需要被调用者序列化来在网络中传输。网络另一端的被

调用者需要在使用这个对象前反序列化。传输时两端都这样做的话会导致一些资源消耗。知道两端需要什么类

型的序列化,哪种序列化和传输类型是最优的很重要。不同类型的序列化对性能、扩展性、内存使用和网络传

输会产生不同的影响。

想了解更多,请查看:Performance Considerations in Distributed Applications

本文摘自:http://blog.dynatrace.com/2010/06/15/top-10-performance-problems-taken-from-zappos-monster-and-co/



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/changjianghoulang168/archive/2010/08/12/5808052.aspx
分享到:
评论

相关推荐

    基于WEB的小型柔性系统FMS的远程控制.zip

    "基于WEB的小型柔性系统FMS的远程控制.pdf"这个文件很可能是这次主题的详细报告或论文,涵盖了系统的设计理念、技术实现、案例分析及可能遇到的问题与解决方案。 【相关知识点】 1. **小型柔性系统FMS**:FMS通常...

    Linux LNMP Web服务源码编译部署手册

    Nginx的并发处理能力在同类服务器中表现突出,因此在高流量网站中得到广泛的应用,包括百度、新浪、网易、腾讯等中国网站。Nginx官方网站提供了主线版本、稳定版本和老版本等多种选择,方便用户根据需要下载使用。 ...

    java-web 编程入门

    1. **强大的社区支持**:Java拥有庞大的开发者社区,这意味着在遇到问题时可以轻松找到解决方案或获得帮助。 2. **广泛的库和框架**:Java生态系统中有大量高质量的库和框架可供选择,这些工具可以帮助开发者快速...

    IIS访问首次启动加载慢的解决方案(不适用IIS7.5以下版本)

    在.NET开发环境中,将应用程序部署到IIS(Internet Information Services)服务器时,用户可能会遇到一个常见问题:首次访问时加载速度显著变慢。这通常是因为IIS需要进行一系列的初始化操作,例如编译ASP.NET代码、...

    ASP交友网站开发与实现(开题报告源代码+论文+答辩PPT).zip

    论文需详述技术实现、遇到的问题及解决方案;答辩PPT则要简洁明了地展示项目概览,突出重点和创新点。 10. **版本控制**:在整个开发过程中,使用Git进行版本控制是标准实践,它可以帮助团队协作,追踪代码变更,...

    ASP+ACCESS软件信息发布系统设计(源代码+论文+开题报告+任务书+答辩PPT).rar

    论文部分会深入讨论设计思路、技术实现、遇到的问题及解决方案,同时可能包含性能测试和评估。答辩PPT则是对整个项目的总结,突出关键点,便于口头阐述。 总的来说,这个ASP毕业设计项目旨在让学生掌握ASP编程和...

    C#网络应用编程.

    10. **异常处理**:网络编程中会遇到各种网络异常,如SocketException、IOException等,良好的异常处理机制能确保程序的健壮性。 总之,C#网络应用编程涵盖了广泛的领域,从基础的TCP/IP通信到复杂的Web服务交互,...

    PostgreSQL,mysql,MS SQL,Oracle性能对比.docx

    - **性能**:MySQL以快速的数据检索和高并发访问而闻名,但其在处理复杂查询时可能会遇到性能瓶颈。 3. **Microsoft SQL Server (MSSQL)** - **简介**:MSSQL是微软提供的全面数据库解决方案,集成了数据库服务器...

    LiveValidation 友好性验证表单效果

    LiveValidation 是一个JavaScript库,专为提升Web表单的用户体验而设计。它允许开发者实现实时、客户端的表单验证,使用户在填写表单时就能立即看到输入数据的正确与否,无需等待提交后再接收服务器反馈。这个库的...

    Python 访问http, https请求

    在IT行业中,Python是一种广泛应用的编程语言,尤其在处理网络请求方面表现突出。"Python 访问http, https请求"这个主题聚焦于Python如何通过HTTP和HTTPS协议与Web服务器进行通信。HTTP(超文本传输协议)和HTTPS...

    基于HTML5的互动游戏新闻网站的设计与实现 (源码 + 说明文档 + 演示视频)

    "说明文档"可能涵盖了项目的开发背景、设计目标、技术选型、架构设计、实现流程以及遇到的问题和解决方案。这对于理解项目的设计思路和学习技术细节至关重要。 "演示视频"则直观地展示了网站的运行效果,包括用户...

    ASP综合性网站设计与实现(毕设文档+源代码+开题报告+中期报告+答辩PPT).zip

    5. 测试与调试:如何进行功能测试、性能测试,以及遇到的问题和解决方案。 6. 结果展示:网站的主要功能和界面截图。 源代码是实际实现这些功能的程序,包含ASP页面、数据库连接脚本、可能还包括一些自定义的COM...

    ASP基于BBS系统开发与帐户安全保护的实现(源代码+论文).rar

    论文应阐述项目的目标、设计思路、技术选型、实现过程、遇到的问题和解决方案,以及对系统的测试和性能评估。论文应突出ASP技术在BBS系统中的应用,以及在安全方面的考虑和实践。 7. **课程设计价值**: 这样的...

    libhttpd.zip(x64)

    在x64架构下,libhttpd.dll的重要性尤为突出,因为它必须处理更大的地址空间和更复杂的指令集。x64平台提供了更大的内存寻址能力,这使得libhttpd可以处理更多的并发连接,提高服务器性能。同时,x64架构的优化也有...

    JScript Debugger JS调试工具

    随着Web技术的发展,JS的重要性日益凸显,因此,拥有一个强大的JS调试工具对于开发者来说至关重要。JScript Debugger WT-JS v2.7.0就是这样一款专业、高效的JS调试工具。 **JScript Debugger概述** JScript ...

    ASP.NET技术在网站开发设计中的研究与开发(论文+源代码+开题报告).rar

    ASP.NET是一种基于微软.NET Framework的Web应用程序开发平台,它为开发者提供了丰富的工具和框架,用于构建功能强大、安全且高性能的动态网站、Web应用程序和Web服务。本项目着重研究了ASP.NET技术在网站开发设计中...

    HFS完美汉化版,最好用的上传下载工具

    "简单,高效"则进一步突出了HFS的用户体验和性能,意味着它能够快速响应用户的操作,提供流畅的文件上传和下载服务。 关于标签,“HFS”是主要关键词,代表了这个软件的核心;“汉化版”则强调了语言本地化的特性,...

    EditPlus_3.20.317_sc.zip

    它可能涵盖了安装步骤、系统要求、许可协议以及可能遇到的问题和解决方案等内容。 在EditPlus中,代码高亮功能可以显著提高程序员的编码效率,因为它能自动识别并突出显示不同语言的关键字和结构,如HTML、CSS、...

    Python库 | http-parser-0.8.1.tar.gz

    4. **错误处理**:当遇到无效或不完整的HTTP报文时,http-parser库能够识别并报告错误,这有助于开发者调试和修复问题。 5. **事件驱动**:http-parser支持事件驱动的编程模式,当解析到特定的HTTP元素(如请求头...

    volume-rendering:WebGL客户端,用于3D天气场的体积渲染

    WebGL是基于OpenGL标准的一个Web版本,它为JavaScript提供了一个接口,可以与GPU进行直接交互,实现高性能的3D图形绘制。在浏览器环境中,WebGL允许开发者创建复杂的视觉效果,如3D模型、动画以及如本例中的体积渲染...

Global site tag (gtag.js) - Google Analytics