天天看點

一次性能優化引發的思考

軟體性能是軟體産品的一個非功能特性,是軟體産品考量的一個重要名額,軟體性能名額關注的不是是否能夠完成平台特定的功能,而是完成同樣的功能時對使用者而言顯示資料、頁面、功能操作的及時性。影響軟體性能的核心要素分為幾個層面,目前軟體所部署的硬體環境、網絡、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 總結回顧

繼續閱讀