Winform 系統調優

2021-09-08 21:01:57 字數 1605 閱讀 6465

小白鼠條件:

以常見的樹形結構樹為例:

有兩張結構相同的表table1(1w資料),table2 (2w資料),需要對比資料差異。

表結構如下:

id , parent_id, col1, col2, col3

常規做法是:

常規思想:

迴圈table1,

一、充分利用快取效果;

作業系統的快取記憶體、磁碟快取等等,都是利用混存技術來提高系統響應速度。充分利用快取可以大幅提高系統的響應時間。口說無憑,還是找乙個小白鼠來看看:

現有系統中有很多地方有「重新整理」的選單,這個就是為了重新整理快取資料預留。

乙個現實的事例就是乙個報表系統優化後,採用資料快取後。用4-5小時不能出現的資料,現在用幾十分鐘就能出所有的資料了。

單獨使用dt.select(conditinos) 進行資料過濾時,並不能成為效能的瓶頸,但是如何頻繁呼叫 dt.select(condtions) 則需要注意對效能的影響了。

曾經遇到過這樣的資料, 由於其他原因,需要把當前符合條件的資料全部讀取出來(10w 左右的資料),由於資料結構中已經設定了 tree 的模型,所以需要把datatable 轉換成 tree ,這樣需要不斷的迴圈遞迴查詢所有子節點,類似如下:

demo:

foreach (datarow parent in dt.rows)

」, parent[「id」].tostring());

datarow rowschild = dt.select(conditions);

foreach(datarow child in rowschild)

} 你會發現,此處**將嚴重影響效能。

解決辦法,直接在外面用 快取,建立乙個 hashtable 於是內層的迴圈就可以直接在 hashtable 中找資料,這樣可以大大提高相應的速度。

二、進行預處理過程;

觀察後續處理過程,增加預處理過程,將頻繁處理的資料進行預處理。理論同上。

三、大資料量分「頁」處理

**於網頁製作過程中的思想。現在系統中有很多地方有它的影子,作業系統裡的頁,資料庫的事物處理過程,都是將大化小,小化了。

四、了解程式語言細節差異

五、良好的架構

對於系統中的設計,需要盡量避免ui層去了解資料結構方面的問題。比如:

設計一:良好的設計

public class item

public int id

set }

}設計二:

public class item

public int data

set }

}這裡推薦使用一,在二種,已經暴露了資料庫實現的細節問題了。在 ui 層操作使用的時候必須知道每個 data 裡面所對應的表結構,否則就會出現問題。而一中可以建立對應關係,乙個 column乙個屬性,這樣直接操作 item.id 就可以了。而且以後使用時也比較方便。

ps: 設計 二 也可以引起效能問題:

public int layer

} 雖然乙個簡單的 item.layer 也可能造成系統效能的瓶頸。呼叫次數少則可以,但是如何呼叫這個屬性進行判斷時候需要達到 100w 或則達到了 1000w 呢? 任何乙個小的效能改進就會被無限放大。

linux系統調優

cpu 資源的調優 調整nice值改變程序優先順序 1.nice 概述 在 linux 系統中,nice 值的範圍從 20 到 19 不同系統的值範圍是不一樣的 正值表示低優先順序,負值表示高優先順序,值為零則表示不會調整該程序的優先順序。具有最高優先順序的程式,其 nice 值最低,所以在 lin...

Linux系統調優

1 selinux 修改selinux配置檔案,vi etc selinux config selinux disabled 必須重啟後生效,但可使用setenforce臨時生效來關閉 setenforce 0 2 lnittab 配置檔案在 etc inittab,centos7後使用syetem...

系統效能調優

系統效能調優 效能測試分析人員經過對結果的分析以後,有可能提出系統存在效能瓶頸。這時相關開發人員 資料庫管理員 系統管理員 網路管理員等就需要根據效能測試分析人員提出的意見同效能分析人員共同分析確定更細節的內容,相關人員對系統進行調整以後,效能測試人員繼續進行第二輪 第三輪 的測試,與以前的測試結果...