天天看点

一次性能优化引发的思考

软件性能是软件产品的一个非功能特性,是软件产品考量的一个重要指标,软件性能指标关注的不是是否能够完成平台特定的功能,而是完成同样的功能时对用户而言显示数据、页面、功能操作的及时性。影响软件性能的核心要素分为几个层面,当前软件所部署的硬件环境、网络、CPU系统的吞吐量,而在性能调优的本质上是对于IO数量,数据库连接数、JVM性能、系统参数等几个层面的调整、优化、适配。

无论是软件性能调整或是了解、学习、掌握新知识的过程中都不要浮于表面,需要从原理、底层方面掌握、运用,同时在工作过程中面对问题需要及时反馈做到“凡事有交代、件件有着落、事事有回应”。

性能优化

软件平台除本身在代码逻辑处理上的优化外,如:缓存机制、减少数据库访问交互次数、逻辑公有化处理等。也可以通过支撑运行的Server端进行参数调整增加平台运行的性能比重。典型性能优化的几种方式:

调整JVM/IO:通常在对应Server中的启动文件中添加JVM参数,设置对应参数,如:

一次性能优化引发的思考

-server:一定要作为第一个参数,在多个CPU时性能佳

-Xms:初始大小,使用的最小内存,CPU性能高时此值应设的大一些

-Xmx:最大值,使用的最大内存

-XX:PermSize:设定内存的永久保存区域

-XX:MaxPermSize:设定最大内存的永久保存区域

调整数据库连接:通过设置数据库连接最大个数来匹配性能上的优化,如:

一次性能优化引发的思考

maxIdle:最大等待连接中的数量,设置为0没有限制

maxWait:最大建立连接等待时间,单位为 ms。如果超过此时间将接到异常。设为-1表示无限制。

maxActive:最大连接数据库连接数,设 0 为没有限制

maximumConnectionCount:最大连接数

minimumConnectionCount:最小连接数

扩大系统参数:增加所部署环境硬件服务器的性能参数,保证平台部署环境性能的稳定性。

集群模式扩展:通过平台内置或结合第三方的方式解决因单台服务器性能不能满足或因故障造成服务器停机情况所影响客户业务正常使用带来的不必要影响。

解决与推进

各行各业的工作过程中不可避免会涉及到超出当前工作能力范畴的工作事宜,在处理这类问题的过程中不能盲目开展,需要有条理、有思路、有计划稳步推进。同时在解决问题的过程中尝试从原理出发,不要“死记硬背、浮于表面”,解决一个问题的同时多想想、多问问扩散思维、打开格局从多方面、多维度、多层次上积累自身的知识收获,提升个人的技能。

1 原理掌握

无论是在学习、工作、解决问题的过程中,均需要从问题的本质出发,掌握问题的本质原理,解决问题的方式、方法,而不是仅仅了解问题是否解决。如:在性能优化的过程中需要掌握可以调整的性能优化的方式(JVM、数据库连接、系统参数等)而不是去死记硬背XX目录的XX文件添加XX配置信息。

通过问题解决的原理性掌握实现在类似问题解决过程中的延展性,实现举一反三,解决问题的过程中原理互通,在底层原理的基础上不断衍变出表象问题的解决方案,从而做到稳扎稳打,深入浅出,解决问题得心应手。

2 扩散思维

扩散思维与原理掌握是相辅相成的过程,在解决问题的过程中不能故步自封、自我封闭,这样很容易将问题局限化。工作中不能做“人活着、脑已死”、“不能用身体的忙碌去掩盖思想的懒惰”。更多时候能够把问题描述清楚,那么问题就已经解决一半,遇见问题不要停留在问题表面上,扩散思维从不同的角度思考问题,摆脱僵化的思维框架,将思维变通借助横向类比、跨域转化、触类旁通,沿着不同的方向扩散。

比如:调整未知产品性能优化的过程中不要等着其他人告诉自己一步就解决一步,想着按部就班的完成这个事情,而是要思考如何去解决、如何去完成,具体解决问题的思路和原理是什么,在以前类似性能优化的过程中可以通过哪些方式、方法,什么样的方式最有效、最高效,从而更好、更全面的找到解决问题的最优方案。

3 知识积累

发现问题、制定方案、解决问题整体过程中,能够了解、吸收、掌握、积累更多的知识点,由点至线,由线连接成面,不积跬步无以至千里,不积小流无以成江海,只有量的积累才能达成质的飞跃。通过解决问题进行积累知识是知识获取的一种驱动因素,在工作过程中自己专攻的领域主动获取相关的知识积累,常见获取知识的方法如下:

快速看相关查:结合所面临的问题快速查询、检索相关知识点,迅速了解解决问题过程中可能涉及的解决方式,同时不断深入延展,有一个知识点延展至一个知识面,形成自身的知识积累;

谋定后动计划先行:不要盲目的开始,工作开始之前要有计划有依据,需要协调资源的要提前申请/告知被协调人,切记为开始而开始,盲目开展反复修改,这样反而更浪费时间,消耗工作的热情;

PDCA原则:Plan(计划)Do(做)Check(检查)Action(调整),工作过程中有计划,遵循计划,检查工作,结合实际情况调整工作模式不断完善至解决问题,过程中总结知识积累形成自身的知识链。

4 技能提升

每个人在不同阶段接触超出能力范围内的事情或多或少都会有些无所适从,不了解如何着手解决。工作中遇到挫折的同时也是自身能力提升的机会,这时一定要放平心态,自身不要慌乱,努力去做寻找解决问题的方法,付出一定会有收获,同时可以请教他人,协调资源,学习他们的工作方式、解决问题的方法,对自身的能力提升会有很大的帮助,比如:

学习能力提升:工作过程中不断学习、理解、总结新的知识,开阔思维提升能力,如果一个人停滞不前终究会被社会所淘汰,学习、记录、积累、提升,积少成多、积水成河,每天进步一点日积月累便会成绩斐然。

知识技能提升:在学习知识的同时需要扩充自身的知识面,形成知识体系,理性了解自身的真实能力,了解自身的优缺点不断的改变、提升丰富自身的能力模型。

沟通能力提升:解决问题的过程中不断与同事、领导、伙伴进行沟通、确认,掌握面向不同角色人员所沟通需要的注意事项。

工作效率提升:对工作能够主动积极应对而不是被动接受,对于工作积极思考,明确解决方式、方法,提高自身的工作效率,从而形成良性循环。

汇报与反馈

工作过程中需要明确汇报本身就是工作的一部分,是信息共享的主要途径,面对可汇报可不汇报的工作一定要汇报,不能够仅仅闷头做事造成信息闭塞。当面对问题时不能因为担忧领导的批评而逃避汇报,积极的汇报能够保证工作不偏离方向,更多情况领导不会因为反馈问题而指责汇报人能力不行,而是会结合自身的经验更好、更快、更有效的协助解决问题。

1 直面问题

遇见问题,直面问题勇于担当,不要推诿,面对当前工作任务不逃避、不绕开,面对问题与问题“打交道”,剥离事物的表面现象通过本质解决问题,比如:与客户沟通的过程中,客户反馈平台使用繁琐,可能本质上是因为培训没有详细、到位,客户不理解平台内部操作逻辑;项目调研过程中客户关心整合落地,实际是想要了解结合企业目前的现状能做哪些事情,是否能够做到,其他类似企业是如何构建的。

工作过程中所遇到的问题(无论是业务范畴或是技术难点)不要选择逃避,逃避不能解决问题,需要直面问题,提升自身的信心,明确问题的关键点,抓住问题、剖析问题、解决问题、累积经验、丰富阅历、提升自我。

2 暴露问题

暴露问题是为了更好的解决问题,更多时候能够清晰明确的表达出问题,问题已经解决一半,在项目实施过程中无论是遇见技术坎坷或是暴露出的自身能力问题都不能选择“视而不见、回避问题”,把问题明确出来是为了采取更有效的应对措施。自己不能解决的问题,可以协调资源,不能让问题发酵,造成不必要的影响。

人性本身往往趋利避害,问题不暴露、不解决,问题本身不会消失,不要因为害怕批评而不暴露问题、掩盖问题。工作中所遇见的问题对于自身而言本质上是一次能力提升的机会,我们应该遇见问题、解决问题、领导认可、能力提升逐步走向正循环,而不是逃避、推诿、掩盖、忽视问题,这样无论是对个人还是企业得到的均是负面影响。

暴露问题、罗列问题、分析问题、解决问题,在遇见问题时首先正视问题,列出问题,分析产生问题的原因,解决问题的方式方法,跟进问题解决的进度,如:

工作计划没有按时完成,什么原因造成的没有按时完成?

系统协调时间过长;自身能力不足影响工作进度;工作计划划分不合理造成拖期。

面对问题如何解决,保证工作进度的推进?

寻找甲方工作人员共同推动,明确问题拖期的原因;协调其他资源,“笨鸟先飞”努力提升自身能力模型;合理划分工作计划,保证进度的推进。

提出解决方案后,持续跟进问题解决的效果。

持续跟进系统对接的情况;累积、总结、学习提升能力模型,保证问题最终被解决,获得认可。

3 积极汇报

领导每天的工作非常繁杂,作为员工应做到“凡事有交代件件有着落、事事有回应”尤其当前问题领导已经知晓且过问,积极汇报能够让领导实时掌握工作的进展,把握汇报的时机,注意汇报的方式,突出重点,表达观点,紧扣要点。

把握汇报时机:正确的时间做正确的事情,工作开展前优先与领导汇报沟通当前时间开展是否合适,预计投入的成本(时间、人力);工作过程中与领导汇报工作进展情况,是否有跑偏的情况;工作中出现问题需要及时暴露、反馈,制定问题的解决方案;需要做出决策时及工作完成后及时汇报,保证领导对工作的实时掌握。

突出汇报重点:在与领导进行工作汇报时需要言简意赅、条理清晰、直奔主题,重点汇报结果,领导关心的事情结果,减少过程的汇报。汇报过程中以1、2、3的模式进行汇报避免表达无序,语言组织混乱的情况影响汇报效果。

汇报态度端正:汇报的本质是信息对称解决问题,汇报过程中要客观表达需要汇报的内容,不要添加个人的感情色彩,明确需要汇报的内容,以解决问题的姿态去汇报,而不是相互推诿、互相诋毁。

反思与思考

工作过程中遇见问题对于个人而言本身是一次能力提升的机会,解决问题的过程中不要仅仅停留在问题的表面,需要进行深入思考,了解问题的本质,过程中记录总结、分析,便于后续工作人员借鉴参考,解决问题后需要对问题解决方式进行总结,总结自身的不足及过程中学习、掌握的能力,后续不断巩固,固化为自身的能力模型。

1 浮于表面

工作过程中不是装模作样、弄虚作假而是需要真实落地,注重落实,不要“浮”于表面。在一盘散沙上注定不能建设高楼大厦,根基不稳建筑越高越危险,装饰的再华丽也是“空中楼阁”。

有目标有计划:清晰的目标和可行的计划是提升工作效率、落实完成工作的重要保障。跟进工作过程中制定明确目标,落实工作计划,保证目标达成。

有方法固根本:做工作要讲求方式方法,而不是用“身体的忙碌换取头脑的懒惰”,采取有效的工作方式,合理的工作方法稳扎稳打,夯实自身的基本功,充实能力模型,可以达到事半功倍的效果。

2 深度思考

3 总结回顾

继续阅读