前言
    这两天在看《Java程序性能优化》这本书,将我学到的书上好的东西分享给大家。做过开发的人应该或多或少都碰到过性能问题,遇到性能问题你是怎么做的呢?你能看懂程序的性能吗?本篇给大家讲下如何看懂程序的性能及性能的参考指标。
正题

程序性能的表现方式:
1.执行速度:程序的反映是否迅速,响应时间是否足够短。
执行速度可以受到多方面的影响,比如逻辑写的有问题,查询数据量大,网络问题等等。
2.内存分配:内存分配是否合理,是否过多地消耗内存或者存在泄漏。
要根据程序的运行情况及服务器内存大小合理分配内存,分配过小,容易造成内存溢出,分配过大,容易浪费并且导致机器运行变慢。
3.启动时间:程序从运行到可以正常处理业务需要花费多长时间。
不要把所有的东西都进行预加载,适当的使用懒加载机制,不然用户还没看到你的程序页面就已经走了。
4. 负载承受能力:当系统压力上升时,系统的执行速度、响应时间的上升曲线是否平缓。
在此可使用相关检测工具来检查负载承受能力。
性能的参考指标:
1.执行时间:一段代码从开始运行到运行结束,所使用的时间。
2.CPU时间:函数或者线程占用CPU的时间。
3.内存分配:程序在运行时占用的内存空间。
4.磁盘吞吐量:描述I/O的使用情况。
5.网络吞吐量:描述网络的使用情况。
6.相应时间:系统对某用户行为或者事件做出响应的时间。响应时间越短,性能越好。
系统瓶颈
由于每个应用特点不同,故系统瓶颈不同,但是常见的系统瓶颈的计算资源有:
1.磁盘I/O:由于磁盘I/O读写速度比内存慢很多,所以如果程序中要等待磁盘I/O完成再做其他事情,那么磁盘I/O会成为系统的瓶颈。
2.网络操作:由于网络环境的不确定性,如果要对网络数据进行读写,则可能比磁盘I/O更慢。
3.CPU:如果程序长时间、不间断地大量占用CPU资源,那么对CPU的争夺将导致性能问题,此时则需要改写程序来改善这种情况。
4.异常:对Java应用来说,异常的捕获和处理是非常消耗资源的。如果高频率地进行异常处理,则性能会有明显的下降。
5.数据库:一般程序都离不开数据库,但是如果海量数据的读写操作则会很耗时。
小结:
  在了解了性能的基本概念之后,随后会继续分享我们平时性能调优的层次。

Java程序性能优化-概述相关推荐

  1. Java 程序性能优化《第一章》Java性能调优概述 1.4小结

    Java 程序性能优化<第一章>1.4小结 通过本章的学习,读者应该了解性能的基本概念及其常用的参考指标.此外,本章还较为详细的介绍了与性能调优相关的两个重要理论--木桶原理以及Amdah ...

  2. Java程序性能优化——设计优化

    原文出自:http://blog.csdn.net/anxpp/article/details/51914119,转载请注明出处,谢谢! 1.前言 OK,之前写了一篇文章:"23种设计模式介 ...

  3. java程序性能优化(实例)

    java程序性能优化(实例) 一.避免在循环条件中使用复杂表达式 在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快. 例子: i ...

  4. Java程序性能优化——性能调优层次

    为了提升系统性能,开发人员可以从系统的各个角度和层次对系统进行优化.除了最常见的代码优化外,在软件架构上.JVM虚拟机层.数据库以及操作系统层都可以通过各种手段进行调优,从而在整体上提升系统的性能. ...

  5. Java程序性能优化 读书笔记(十)并行设计模式:Future模式

    转载:Java多线程编程中Future模式的详解<转> 参考:葛一鸣,Java程序性能优化.清华大学出版社. 随着多核时代的到来,CPU的并行能力有了很大的提升.在这种背景下,传统的串行程 ...

  6. 开源即巅峰,《Java程序性能优化实战》GitHub三小时标星已超34k

    蓦然回首自己做开发已经十年了,这十年中我获得了很多,技术能力.培训.出国.大公司的经历,还有很多很好的朋友.但再仔细一想,这十年中我至少浪费了五年时间,这五年可以足够让自己成长为一个优秀的程序员,可惜 ...

  7. 滴滴架构师被迫离职后,只留下这份731页Java程序性能优化手册

    滴滴资深架构师深度分享Java程序性能优化的宝贵经验,从软件设计.编码和JVM等维度阐述性能优化的方法和技巧. 总览: 篇幅限制,这里就不全部展示出来了.需要获取完整版Java程序性能优化手册的小伙伴 ...

  8. java程序性能优化(一)

    根据<java程序性能优化>整理 字符串的分割和查找,在日常编码中很常见,平时使用最多的split()函数,但是也有一些更优的选择,下面就让我来一一对比: 上面的这个就是常用的split( ...

  9. 《Java程序性能优化》之设计优化

    豆瓣读书:http://book.douban.com/subject/19969386/ 第一章 Java性能调优概述 1.性能的参考指标 执行时间: CPU时间: 内存分配: 磁盘吞吐量: 网络吞 ...

最新文章

  1. @OneToMany
  2. ​西湖大学EMBLab诚聘环境工程学、生物信息学、分子生态学科研助理
  3. 问题 “No mapping found for HTTP request with URI [/fileupload/upload.do]” 的解决
  4. python3网络爬虫(4):python3安装Scrapy
  5. php辅助框架,【PHP开发框架】Laravel框架中辅助函数:optional ()函数的介绍
  6. 百度seo排名规则_百度关键词seo优化排名如何上首页
  7. 软件测试基础课程学习笔记4--测试用例设计方法技巧
  8. Spring Cloud服务提供者与服务消费者怎么运作的?
  9. 用人话解释比特币原理
  10. m_map投影_M_Map说明书中文版.pdf
  11. 数据库开发工具——安装教程
  12. 模拟CMOS集成电路设计中的gm/id设计方法及用Cadence Virtuoso IC617仿真有关参数曲线
  13. iPhone提示“软件更新失败”下载时出错怎么办?教你解决!
  14. 缓冲流(BufferedInputStream,BufferedOutputStream\BufferedReader,BufferedWriter)
  15. 程序员的真实工资是多少?
  16. 彩色照片转化为黑白照片
  17. 大学生充实自己生活的方法
  18. 利用Python进行数据分析之超市零售分析
  19. 如何将高效设计应用于 DAO?
  20. python行业中性_【量化课堂】因子研究系列之四 -- 市值与行业的中性化

热门文章

  1. java md5库_Java常用类库API之MD5简单使用
  2. c语言 11 getchar实现大小写字母转换
  3. onsubmit和submit()详解
  4. RAP2开发环境部署
  5. deepin系统中Qt5.12无法输入中文(无法切换中文输入法)解决办法
  6. 环信群聊头像和发送gif图片
  7. pfx文件解析私钥和公钥
  8. zkteco iface702 中控考勤机java开发步骤二---获取考勤机 的考勤数据
  9. 日系插画学习笔记(九):人物线稿
  10. 上传GPS数据到ONENET云平台