一個子節(jié)序問題引發(fā)的思考


最近碰到一個這樣的問題,A節(jié)點向B節(jié)點發(fā)送消息残炮,A和B屬于不同的子節(jié)序畏铆。A在發(fā)送之前將消息轉換為另一種子節(jié)序,A收到B發(fā)送過來的消息時吉殃,也需要先轉換為自己的子節(jié)序辞居。在這樣的“約定”下,軟件工作的不錯蛋勺。

但是隨著時間的推移瓦灶,問題出現了。由于硬件更新的原因抱完,B節(jié)點更換了另外一種CPU贼陶,子節(jié)序也跟之前不一樣了。A和B之間原本工作正常的軟件不工作了巧娱。

為了應對這個問題碉怔,有人想到的辦法是,在A上進行判斷禁添,如果是以前的CPU就轉換子節(jié)序撮胧,如果是新的CPU,就不轉換子節(jié)序老翘。

問題看上去解決了芹啥,這是一個好的方法嗎?

試想铺峭,如果不同類型的節(jié)點數繼續(xù)增長墓怀,軟件中會出現越來越多的分支,用來判斷不同的節(jié)點類型卫键,以及相應的CPU類型傀履。而且消息發(fā)送方的處理依賴于接受方的子節(jié)序類型,形成了不必要的耦合莉炉。

這不是一個好的設計钓账。

實際上碴犬,現有的技術實現中已經有很好的解決方案。在TCP/IP網絡中官扣,所有的消息都以一種子節(jié)序傳輸,即網絡子節(jié)序羞福。不管是哪種子節(jié)序的主機惕蹄,收到網絡中的消息后都能正確處理,發(fā)送方和接收方都不關心對方的子節(jié)序治专。所以卖陵,對于上面提出的問題,也可以采用這個方法解決张峰。

如果到這里結束也算圓滿了泪蔫,可是當我們提出這個建議時,有人的回答卻是這樣的:為了不影響性能喘批,不能這樣干撩荣。也就是說轉換子節(jié)序會影響軟件的性能。我想這才是子節(jié)序問題背后更加深層次的問題饶深,即軟件的性能問題餐曹。

對于這個問題有以下幾點值得我們思考:

  • 什么會影響軟件的性能?
    在上面提到的這個案例中敌厘,收發(fā)消息的過程中台猴,多調用幾個子節(jié)序轉換的函數會影響性能嗎?
    順便插播一個幾年前的故事俱两。我們在交流代碼重構的過程中饱狂,在聽到建議將現有的大函數重構成小函數時,一個資深的工程師馬上反駁道宪彩,這樣會增加函數調用的堆椥莼洌空間,降低性能尿孔。
    還有很多我們認為會降低軟件性能的因素衍腥,在此不一一列舉。這些觀點的對與錯纳猫,先不下定論婆咸,但可以提出幾個問題供大家參考。

  • 首先芜辕,軟件的性能是否經過量化尚骄,是否有具體的profiling數據?

  • 其次侵续,是否基于具體的數據倔丈,分析性能的瓶頸在哪里憨闰?

  • 最后,是否針對性能的問題對癥下藥需五,有的放矢鹉动?

  • 軟件設計的合理性是否更有價值?
    隨著硬件的性能提升宏邮,有些軟件代碼對性能的影響越來越微乎其微泽示,軟件設計本身的簡單性對于項目的成功具有更加有意義。

一個設計良好蜜氨、能夠有效應對變化的軟件械筛,會成為項目遺留的正資產,為軟件的重用飒炎、擴展提供更多的可能埋哟。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市郎汪,隨后出現的幾起案子赤赊,更是在濱河造成了極大的恐慌,老刑警劉巖煞赢,帶你破解...
    沈念sama閱讀 222,464評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件砍鸠,死亡現場離奇詭異,居然都是意外死亡耕驰,警方通過查閱死者的電腦和手機爷辱,發(fā)現死者居然都...
    沈念sama閱讀 95,033評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來朦肘,“玉大人饭弓,你說我怎么就攤上這事∶娇伲” “怎么了弟断?”我有些...
    開封第一講書人閱讀 169,078評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長趴生。 經常有香客問我阀趴,道長,這世上最難降的妖魔是什么苍匆? 我笑而不...
    開封第一講書人閱讀 59,979評論 1 299
  • 正文 為了忘掉前任刘急,我火速辦了婚禮,結果婚禮上浸踩,老公的妹妹穿的比我還像新娘叔汁。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 69,001評論 6 398
  • 文/花漫 我一把揭開白布据块。 她就那樣靜靜地躺著码邻,像睡著了一般。 火紅的嫁衣襯著肌膚如雪另假。 梳的紋絲不亂的頭發(fā)上像屋,一...
    開封第一講書人閱讀 52,584評論 1 312
  • 那天,我揣著相機與錄音边篮,去河邊找鬼己莺。 笑死,一個胖子當著我的面吹牛苟耻,可吹牛的內容都是我干的篇恒。 我是一名探鬼主播扶檐,決...
    沈念sama閱讀 41,085評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼凶杖,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了款筑?” 一聲冷哼從身側響起智蝠,我...
    開封第一講書人閱讀 40,023評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎奈梳,沒想到半個月后杈湾,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 46,555評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡攘须,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,626評論 3 342
  • 正文 我和宋清朗相戀三年漆撞,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片于宙。...
    茶點故事閱讀 40,769評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡浮驳,死狀恐怖,靈堂內的尸體忽然破棺而出捞魁,到底是詐尸還是另有隱情至会,我是刑警寧澤,帶...
    沈念sama閱讀 36,439評論 5 351
  • 正文 年R本政府宣布谱俭,位于F島的核電站奉件,受9級特大地震影響,放射性物質發(fā)生泄漏昆著。R本人自食惡果不足惜县貌,卻給世界環(huán)境...
    茶點故事閱讀 42,115評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望凑懂。 院中可真熱鬧窃这,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至兆解,卻和暖如春馆铁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背锅睛。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評論 1 274
  • 我被黑心中介騙來泰國打工埠巨, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人现拒。 一個月前我還...
    沈念sama閱讀 49,191評論 3 378
  • 正文 我出身青樓辣垒,卻偏偏與公主長得像,于是被迫代替她去往敵國和親印蔬。 傳聞我的和親對象是個殘疾皇子勋桶,可洞房花燭夜當晚...
    茶點故事閱讀 45,781評論 2 361

推薦閱讀更多精彩內容