軟體設計是決定軟體效能的關鍵

來源:互聯網
上載者:User
大家更多的是關注測試載入器,測試技巧,而少有人去從根本上來分析、測試軟體。一個優秀的軟體效能測試工程師要具有宏觀和微觀的軟體測試觀。他要分析軟體的架構,瞭解軟體的運行模式,瞭解通訊協議,更是一個軟體開發高手。就象一個醫生,他要通過多年的深造和摸索,要瞭解病理、藥理,他才能對症下藥,好了,不多說了,說一下軟體設計對軟體效能的影響。這是我遇到的一些實際的例子。

例子一:一個網站,允許註冊使用者可以上傳一些圖片、文檔、影音檔案,把這些檔案做為大二進位檔案儲存到資料庫中。功能並不是太複雜,軟體的功能測試沒有問題,開始進行效能測試。5個使用者的並發都沒有通過,功能出錯了,效能測試也就進行不下去了,分析原因,原來軟體設計的時候,為每一個上傳的檔案設計了一個“ID”欄位做為主鍵,該欄位是自增的,在ORACLE資料庫中沒有自增欄位,需要編寫觸發器來自增,但是軟體開發人員在應用程式中編寫了一個函數,在上傳檔案前從資料庫中獲得最大ID,然後加一,再填寫其他資訊,選擇檔案,上傳,這樣在多使用者使用的時候必然造成ID欄位值重複,系統必然出錯。這個錯誤修改後,進行效能測試,設計者把所有的上傳檔案都儲存到一個資料表中,他沒有考慮網站的流量和上傳檔案數量很多的情況,結果在進行資料庫壓力測試的時候,當資料庫中有10萬條記錄時,假設每個上傳檔案的大小是1M,該資料表的查詢、備份、恢複都非常困難,當多使用者瀏覽、上傳這些檔案時,效能嚴重下降。這就是一個軟體設計存缺陷。

例子二:一個圖形管理軟體,架構採用的是B/S模式,通過在IE中嵌入ACTIVX控制項,根據從資料庫中讀取出的測量點資料,在ACTIVX中繪製成各種曲線,該測量點資料是井的資料,每米取10個點,每點有16條資料,每口井的井深平均按5000米算,500口井的資料就非常龐大了。在效能測試的時候,我首先分析了軟體的運行機制,用戶端發出請求--WEB伺服器(分析)--讀取資料庫資料--產生HTML和資料流返回用戶端--用戶端控制項根據點資料繪製成曲線。從這些過程中看效能的瓶頸應該在WEB伺服器和資料庫間。(ACTIVX控制項有的效能測試工具不支援,但協議可以看成是HTTP,並可以看成是一次請求),因ACTIVX運行在用戶端,這部分的效能主要是受用戶端影響。在效能測試過程中發現,效能真的是受資料讀取速度的影響,更可怕的是,該資料庫竟然沒有設定索引,設定索引後,軟體開發人員竟然在索引欄位用了trim()函數來去掉空格,造成索引欄位沒有起到作用,汗一個!!!!。

從上面的例子可以看出,設計才是決定效能的關鍵。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.