軟體效能的設計(三)資料型別對軟體效能的影響 (轉)
的設計(三)資料型別對軟體效能的影響
劉彥清·yesky
BadRegExpMatcher要求Bot將輸入文字由字元陣列轉換為一個String,從而導致了不必要的物件建立。然而,滑稽的是為了更方便地使用輸入文字,BadRegExpMatcher會立即將String物件轉換為一個字元陣列,這樣不但會生成另一個物件,還意味著你在費了九牛二虎之力得到的結果,跟最初提供的資料沒有什麼二樣,MailBot和BadRegExpMatcher都不要求使用String物件,String物件似乎僅僅是為也在之間文字資料而存在的。
在上面的BadRegExpMatcher例子中,String僅僅是一種供交換用的型別,無論是呼叫程式還是被呼叫程式都不需要使用供交換用的資料型別來表示資料,但它們可以很方便地把它與其他的資料型別進行轉換。儘管在定義介面時採用供交換用的資料型別可以在保持靈活性的前提下降低複雜性,但有時會帶來效能上的損失。
供交換用資料型別的一個最常見的例子是JC ResultSet介面,沒有一種的介面會用 ResultSet表示返回的結果,但JDBC程式可以很方便地把資料庫返回的結果轉換為JDBC ResultSet型資料。同樣,也沒有一種客戶端軟體用DBC ResultSet型資料表示資料記錄,但你也可以不費什麼勁兒就將ResultSet型資料轉換為所需要的資料型別。在JDBC中我們可以接受這種"多此一舉",因為它具有標準性和跨資料庫的可移植性等好處。無論如何,由供交換用資料型別所帶來的效能損失都是一個值得注意的問題。
在RegExpMatcher中,在定義介面時使用String物件對減少複雜性或增加可移植性的幫助並不大,對效能卻有著相當大的影響,這麼做是得不償失的。在設計介面時使用可互換型別往往很有吸引力,因為這樣能夠使介面看起來更"乾淨"一些,但你應該確信你為此所作的折衷是明智的。有時━━就象RegExpMatcher那樣,呼叫程式可以使用多種輸入、輸出格式,應該考慮如何能夠更方便地滿足它們的需求。
值得指出的是,對使用可互換型別對效能的影響進行量化不是一件容易的事兒。如果對呼叫BadRegExpMatcher的程式碼進行分析,它將指派執行時間庫建立輸入用的String物件,這個String物件是為滿足BadRegExpMatcher的需求而生成的。如果要衡量一個元件對效能的真正影響,不僅需要評估程式碼的資源利用情況,還需要評估建立呼叫的程式碼以及呼叫返回的程式碼的資源利用情況,要使用標準的分析工具完成這些分析工作是非常困難的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-989500/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 軟體的效能設計(一)介面設計對軟體效能的影響 (轉)
- 軟體的效能設計(二) 臨時物件對軟體效能的影響 (轉)物件
- 軟體測試對軟體質量的影響有那些?
- 【太陽軟體】動態換ip軟體:反爬蟲對抗對資料分析的影響爬蟲
- JavaScript 事件對記憶體和效能的影響JavaScript事件記憶體
- 硬體環境對系統效能的影響
- 影響MySQL效能的硬體因素MySql
- 影響MySQL效能的硬體因MySql
- 軟體測試對軟體質量有哪些影響?
- 軟體教練說:效能優化與效能設計,“相親相愛”的一對優化
- 磁碟排序對Oracle資料庫效能的影響排序Oracle資料庫
- 謂詞條件的資料型別隨意書寫對SQL效能影響巨大資料型別SQL
- 人工智慧對軟體測試的影響人工智慧
- 磁碟排序對Oracle資料庫效能的影響PT排序Oracle資料庫
- 容器化對資料庫的效能有影響嗎?資料庫
- 新會計準則實施對財務軟體的影響
- 伺服器核心硬體的效能如何影響伺服器的整體效能?伺服器
- 軟體中的效能指標指標
- 軟體效能測試包含哪些測試型別?權威第三方軟體測評中心分享型別
- 軟體架構, 軟體框架,設計模式的區別架構框架設計模式
- 軟考資料-軟體設計師
- Arraysize的設定以及對查詢效能的影響
- 軟體效能測試
- 勒索軟體攻擊影響
- 軟體效能測試的優勢
- 低程式碼開發對軟體開發流程的影響
- 利用Windows效能計數器分析軟體產品的效能瓶頸Windows
- 雲對基礎設施和軟體的影響和改變是深遠的資料技術AIAI
- 軟體效能測試有哪些效能指標?可做效能測試的軟體檢測機構安利指標
- APM效能監控軟體的監控型別服務及監控流程型別
- oracle對BLOB型別資料的操作與效能問題(轉載)Oracle型別
- JAVA 異常對於效能的影響Java
- 三維視覺化設計軟體,可以實現資料視覺化的軟體有哪些視覺化
- ORM框架和資料庫對系統效能影響的比較ORM框架資料庫
- Oracle Lob型別相關引數以及效能影響Oracle型別
- 軟體設計雜談(二)--軟體設計與設計人員的個人素質 (轉)
- Mysql BLOB、BLOB與TEXT區別及效能影響、將BLOB型別轉換成VARCHAR型別MySql型別
- DB2 HADR對效能的影響DB2