非常有挑戰性的問題,提高時實重新整理速度

2022-04-15 03:30:22 字數 1278 閱讀 5132

非常有挑戰性的問題,提高時實重新整理速度 delphi / windows sdk/api

非常有挑戰性的問題,提高時實重新整理速度  

比如做一套類試影吧的系統,需要乙個時實監視客戶端的乙個收費軟體  

監視台用stringgrid   控制項實現,時實(每秒鐘一次)重新整理資料庫中的乙個由server後台寫好  

好的乙個臨時表,stringgrid判斷字段值改變時才重畫,  

這種方法,起初資料表這有幾十條,占用cpu   時間才8%左右,但資料庫加到  

2000多條時,cpu   時間馬上公升到   70%,  

我估計主要的時間是用在adoquery.open上了  

還有stringgrid是通過   for   迴圈給每行賦值的。  

請問,有沒有提供好的思路和方法!  

應該不至於吧,你幾十條都占用了cpu   8%,可能是寫法有問題吧。  

你幹嘛要不停地判斷呢?有時間做判斷不如直接寫上去好了。  

2000多條記錄,重新整理一次應該沒多長時間。

首先說明  

1、首先跟蹤一下,看看時間都花在那裡了  

2、如果你的sql語句不是特別奇怪,那麼最多的時間是花在重畫stringgrid上  

3、畫stringgrid的時候不要一下子都畫出來,把當前顯示的畫出來即可,然後當stringgrid滾動的時候繼續畫

2000條都讀取出來有意義嗎?還是做成翻頁的好。  

在修改表的時候在其它地方設定乙個狀態,所有的客戶僅檢查這個狀態。  

用stringgird?   為什麼不用dbgird,這樣效率更高呀!   不解!   還有為什麼不做分頁,就是說,設定乙個時間範圍,把記錄分為加急,就緒,一般,三個等級來排序。   這樣可以優先處理那些即將到時的資料。

感謝大家的回覆!  

說明,我做的一套影吧的收費管理系統。  

客戶端是機頂盒,所有的資料都是通過   server.exe   charge.dll   完成的,儲存在  

資料庫中,我要的就是時實顯示每個客戶端的狀態:  

我也知道dbgrid速度比較快,但存在幾個問題:  

1、重新整理的時候dbgrid總是很閃;  

2、必須繫結資料來源;  

3、介面操作的靈活性也沒有stringgrid好;

那我建議你用過socket來做吧!

內部用乙個執行緒來檢查是否有更新,如果資料有變化在重新整理介面.這樣介面重新整理的頻率就很小很多。也就不閃了。  

接受   winxkm(蹩腳的程式設計師)     的意見

極具挑戰性的工作 公升級模式庫從CQ2002到CQ7

問題 現在有兩套模式庫,我稱其為a,和 b a是用 cq2002 sqlserver2000開發的 b是用 cqv7 oracle10.2 開發的 現在我們的使用者這兩套系統都在使用 現在的問題是 用 cq7客戶端去使用 a,會報錯 我原來認為 cq7客戶端去執行a肯定是相容的 但是現在從ibm技術...

非常有趣的遞迴問題(最近面試問到的)

古典問題 第三個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?意味著生長期為2 這裡我採用兩種結題思路第一種不考慮遞迴,採用字面解釋進行基於類物件的做法 class rabbit public void setname string nam...

求簡單多邊形面積時非常有用的「鞋帶公式」

學習和介紹乙個有用的求任意簡單多邊形面積的經典公式。所謂 簡單多邊形 可以是凹 或凸多邊形,但原則上邊與邊之間不能有交叉 或者,拓撲一點,從多邊形捲繞數的角度,多邊形內的點捲繞數只能是 1 這個公式有悠久的歷史,而且計算中十分有用,可惜維基裡面只有英文版。這裡的shoelace,鞋帶 並不是人名,所...