Java编程性能优化-影响性能的因素你都知道吗?

1.总是听说系统性能咋样,那我们为啥要性能调优?有啥意思?

1.1肺腑之言,唠叨几句感慨

以前写代码,一般都是跟着感觉走,业务实现出来就行了,至少客户端可以使用就可以。不管他三七二十一,总之我搞完了.......,三年了,慢慢的接触到系统中有些要求严格的客户,终于知道,系统仅仅做出来还是不够的,还需要去把他优化一下。早期理解的优化,就是代码的注释啊,减少不必要的变量和参数,减少代码量尽量简洁。没想到,系统性能调优还有很多方面可以去做,然而,三年的开发时间了,才明白这个重要性。茫茫大海,知识总是一点一滴积累的,每个人都为时不晚,那只是先知和后知的区别罢了......

1.2.为啥要性能调优?

(1)不经过性能调优和测试,不知道自己做的系统承受能力有多大,指不定哪天突然服务器就挂了。
(2)写的代码有死循环,或者有大量高并发的时候,代码中有复杂低效率的算法,这样cpu占用太高了,服务器可能吼不住,直到奔溃。
(3)性能不好,客户端或者用户页面等待时间很长,体验非常差。
(4)如果性能调优,使用两台服务器就可以轻松跑起来。结果因为性能差,给了四台服务器才能部署轻松跑起来。这个也是一种浪费资源啊。

1.3难不成写代码时候就要提心吊胆?什么时候去优化自己的代码?

(1)其实在开发初期,真的没法整体把握性能,只能在我们编码的过程中,使用一些高效率算法,降低锁的竞争,还需要尽量减少IO操作。只要注意这些地方,就可以了。
(2)一般项目完成了,进入测试阶段。这时候就是真正开始看性能的时候了。需要我们取进行各种测试和分析。

2.项目完成后,体现性能因素有哪些?

(1)CPU:有复杂的计算,或者有死循环,都会占用特别高的CPU,导致其他资源没办法争夺到cpu,就会特别慢。平时我们电脑也会卡,与这个也有关系。
(2)内存:Java通过jvm对内存进行分配管理。jvm通过堆内存存储java创建的对象。内存一般读取很快不会出现啥大问题。但是存储量有限。如果垃圾回收不及时,创建太多的对象,就会内存溢出泄露。
(3)磁盘IO:磁盘存储大,但是读取没有内存快。过多的操作IO,肯定会慢。
(4)网络:网络带宽,决定了数据相应时间。这个大家都知道。
(5)异常:异常抛出后居然会构建异常栈,这个过程非常消耗系统性。
(6)数据库:首先数据库数据量大的时候,读取涉及到磁盘IO读取。这时候也会有瓶颈。
(7)锁竞争:并发的时候,数据保持一致,比如一个线程在写库的时候,肯定是不允许其他线程修改这个数据。这时候就是用到了锁。也会增加系统的开销。

3.衡量性能的指标有哪几个?

(1)响应时间,肯定是响应时间越短越好,对吧?
主要是数据库时间,服务端时间,网络时间,客户端时间。每个环节都可能耗费时间。
(2)吞吐量:也就是单位时间内,你的系统能处理多少个事务。所以吞吐量越大越好,对吧?
吞吐量主要是磁盘IO吞吐量(每秒读写次数)和网络吞吐量(传输数据大小)。
(3)计算机资源分配使用率:比如cpu,内存,IO等,分配一定要合理。
(4)负载承受能力:并发量很大的时候,看看系统最大能承受多少。这个如果处理不好,可能导致奔溃。

4.总结一下上面说的

我们日常开发项目,前期编码过程中,就要注意算法,逻辑的高效,避免不必要的循环。避免少操作IO。等到系统编码完毕进入测试,就要去关注以上影响和衡量系统因素指标。看看那一块儿的问题。进行相应的优化。每次都要和上一次优化结果作比较。每次优化一定是有进步的。这些个人的整理,都是我简单的了解,可能有更深层次的东西我们还没有接触到,不要紧,慢慢去掌握,慢慢学。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,463评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,868评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,213评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,666评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,759评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,725评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,716评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,484评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,928评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,233评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,393评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,073评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,718评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,308评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,538评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,338评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,260评论 2 352

推荐阅读更多精彩内容

  • 编写和优化Go代码 本文档概述了编写高性能Go代码的最佳实践。 虽然有些讨论会提高单个服务的速度(通过缓存等),但...
    freelang阅读 2,226评论 0 4
  • 特别说明: 1、本文只是面对数据库应用开发的程序员,不适合专业DBA,DBA在数据库性能优化方面需要了解更多的知识...
    安易学车阅读 1,807评论 0 40
  • 我们每个人每天都会经历各种情绪,有些情绪来得快去得也快,比如每当我收到快递的时候,就会高兴一会,然后就没有然后了;...
    把大象装进冰箱阅读 177评论 0 1
  • 只看着目标 不犹豫太久 管她行不行的 先问了再说
    陈志惠阅读 169评论 0 2
  • 昨天晚上即将睡觉的我接到好久没见的一个哥们儿阳的电话。 “喂,刚才在忙啥,跟哪个妹子聊天呢,我打电话都不接!” “...
    春无忧阅读 303评论 0 0