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

2021-08-22 17:14:15 字數 912 閱讀 2435

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

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

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

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

例子一 乙個 允許註冊使用者可以上傳一些 文件 影音檔案,把這些檔案做為大二進位制檔案儲存到資料庫中。功能並不是太複雜,軟體的功能測試沒有問題,開始進行效能測試。5個使用者的併發都沒有通過,功能出錯了,效能測試也就進行不下去了,分析原因,原來軟體設計的時候,為每乙個上傳的檔案設計了乙個 id 欄位做...

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

例子一 乙個 允許註冊使用者可以上傳一些 文件 影音檔案,把這些檔案做為大二進位制檔案儲存到資料庫中。功能並不是太複雜,軟體的功能測試沒有問題,開始進行效能測試。5個使用者的併發都沒有通過,功能出錯了,效能測試也就進行不下去了,分析原因,原來軟體設計的時候,為每乙個上傳的檔案設計了乙個 id 欄位做...

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

例子一 乙個 允許註冊使用者可以上傳一些 文件 影音檔案,把這些檔案做為大二進位制檔案儲存到資料庫中。功能並不是太複雜,軟體的功能測 試沒有問題,開始進行效能測試。5個使用者的併發都沒有通過,功能出錯了,效能測試也就進行不下去了,分析原因,原來軟體設計的時候,為每乙個上傳的檔案設 計了乙個 id 欄...