關於優化需要永遠牢記的原則

2021-09-21 04:43:41 字數 2012 閱讀 9510

1.盡量不要去搞什麼效能優化,因為十有**你會失望的

首先,不要指望調節系統引數就能帶來效能的大幅提公升,這永遠都不可能,因為如果能大幅提公升,那組引數早就成預設引數或者寫進文件了,即使不一定這樣,起碼有對技術比較痴迷的傢伙會把類似的經驗分享出來,輪到你來做這件事的機率很低很低。正如你能想到電梯的創意,可那玩意兒都已經存在100年了。

其次,如果乙個引數的微調能引起效能數量級級別的變化,那就是核心的bug了,你需要的是提交修復補丁而不是引以為成果!

再次,僅僅通過優化的方式希望得到效能大幅提公升,那你是過分依賴軟體了,這種可能性正如你大幅度被加薪的可能性一樣大。雖然不乏通過跳槽使薪資翻倍的可能,但其中也不乏欺世盜名之徒,他們依賴的是面試技巧,學歷,資歷等,而不是「自身效能的翻倍」。調節薪水一次肯定不會調太多,你需要在乙個薪水檔次慢慢沉澱一下自己,明白了這一點,就不要急於做優化了,1.6g主頻的cpu在沒有換成2.4g主頻cpu之前,不要指望通過軟體的方式大幅提高效能,即使到了2.4g主頻的cpu,也不要指望效能能提高2.4/1.6倍,這個道理正如你一天能寫160行**,你的薪資為1.6k,然後半年後你一天能寫的**數量達到了240行,難道你的薪資就一定能自動到達2.4k嗎?我看難。

因此,效能優化和你自身的優化一樣,你需要穩紮穩打,而絕對不能指望一夜之間脫胎換骨,攪和起來n多的因素需要考慮,軟體只是一種將硬體組織起來的東西,如果你的硬體有「硬傷」,那還是先**硬傷為好。所以說,程式設計師們不要一味的整天「**,**,**,我用了效率最高的演算法,為何不能更快一些」,深入下去,從整體上考慮會更好一些

2.所謂的優化只是統計意義上的優化而已。

因此能不優化盡量不要優化

3.不要過分依賴負載均衡,有時候負載均衡並不適合你的場合

intel的千兆網絡卡支援多個佇列,可以將負載均衡到所有cpu上,每個cpu處理乙個佇列,然而測試後你會發現,大多數情況下,將綁在乙個cpu上效能或許會更好些。實際上學過基礎理論的都知道負載均衡是個好東西,然而對於intel的千兆卡,它大多數還是用於虛擬化的,而不是普通的主機環境。我們需要考慮的是cpu拓撲,中斷繫結,cpu快取拓撲等綜合因素的影響,而不是過分依賴乙個很時髦的名詞。

4.看**是看不出什麼東西的

現在很多的guo書,blog上都在大量剖析**,linux原始碼分析,apache原始碼分析,xx原始碼分析...可是看**究竟能提高自己嗎?能是肯定的,但是很難!

我覺得在軟體技術領域-當然不單單只軟體開發,有所謂7個層次:

a.數量使用和配置軟體

b.剖析優秀軟體**或者了解其實現原理

c.除錯優秀軟體

d.部署複雜軟體,使之成為乙個可用的複雜系統且能迅速故障定位

e.整體系統效能調優,能找到瓶頸,且能準確選型

f.對各種軟體技術觸類旁通

g.hacker

處於a級別的太多了,你我ta都是,處於b級別的也不少,科班出身的幾乎都有這愛好,並且有大批的人停留在此級別,c級別的呢,windows程式設計師比較多,他們喜歡搞反彙編之類的,而且還喜歡炫耀ringx的知識...處於d階段,你就很厲害了,畢竟軟體是來使用的,可能d級別的人根本就不懂c語言,也沒看過什麼**,然而我覺得它們一下子能搞定複雜系統的部署和定位故障,這本身就是一種超級**,e階段的人總的來講和d階段是並列的,只是方向不同,e階段的傢伙一般是忠於單點的,而d階段的傢伙一般忠於整體。f階段的就不必說了,這種人本身肯定對技術很痴迷,並且能勝任幾乎一切工作,g階段的傢伙們很隨意,他們是真正的自由人,他們想做的事情總是幹得很漂亮,他們不想幹的事情,...

以上分類並不是乙個順序的分類,可能a級別的人一輩子也不會到達b,然而卻可以到達g,這只是學習方向不同,也是自身品位不同。

5.優化自身的原則

為了提高邏輯思維能力和條理性,需要學習數學和邏輯學,我高中時有乙個物理老師,他講的所有內容中,我覺得有一點很有用,那就是「你必須要有大段大段整理數學式子的能力」;

作為一名軟體研發人員,3年前在長春的一家公司,那裡的乙個很牛的人說了一句話,我現在都記得,他說「你要有大量整理字串的能力」,整理字串的過程中體現的是你的組織能力和,折射出的是你的演算法思想。

如今,從業5年了,前不久又學了一句話,那是「只要是沒有人為因素的純技術問題,是一定一定有解決辦法的!」

站長們應該牢記的三點原則

優化對 的發展來說非常重要,乙個 的優化方向和方法如果正確的話,流量和知名度一般來說都能較快地提高上去。但如果採取的方式不對或者違規的話,最後肯定會以失敗告終。那麼,我們如何才能保證 優化的效果呢?一 遵守國家相關規定 z t3 i2 h g k w 有不少站長為了盡快將 做起來,有時候在 上發一些...

關於擴充套件方法,需要留意的原則和規則

我可不可以這樣理解,效能只是在編譯時有損失,編譯之後就和普通的靜態方法呼叫一樣了,沒有任何區別 之所以能得出這個結論是因為通過比較如下的兩種呼叫方式和對應的il using system using system.collections.generic using system.linq using...

關於MySql的索引原理以及優化原則

在面試或者實際的工作中,我們都會遇到會需要優化mysql的場景,那麼優化mysql的原理到底是什麼呢。根據當前的我們可以根據他的執行過程來進行對應的優化操作。1.避免使用select 或者盡量使用limit 1這種限量級的語句 原因 從上圖我們可以看到,mysql是的通訊協議是 半雙工 的,意思就是...