熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

如何使用Delphi設計強大的服務器程序[2]

2022-06-13   來源: Delphi編程 

  大家看一看上面的代碼思路很清楚就是將接收到的Buffer分別按個提到變量a中再使用DES解密算法解密成b再放回ResultBuffer中

  如果你熟練使用指針的話效率會極大的提高

var
  ab:Pbyte;
  i :integer;
  ResultBuffer :array [Max] of byte;
begin
  for i := to Sizeof(Buffer) div do
  begin
    a := @Buffer[(i)*+];
    b := @ResultBuffer[(i)*+]
    Des(a^b^true);  //這裡使用DES加解密處理
  end;
end

  再看一看上面的代碼是不是少了兩個Copy數據的過程這就是指針給你帶來的高效

   多使用WSASendWSARecv等WinSocket 函數不要使用SendRecv函數

  這個主要看你的服務器運行在什麼系統中了如果運行在WIN系統裡最好使用WSA系統的函數因為Microsoft畢竟將它們都優化了

   合理使用線程池操作

  高效的服務器一定要使用線程池技術使用多少線程合理需要線程處理什麼樣的數據我個人認為如果要使用線程池的技術一定要處理那些最費時的操作如數據庫的查詢操作

   如果服務器使用了的概念這就又出現了一個問題如何高效的分配池呢?

  我在程序中大量的使用池如線程池數據池等當數據到達的時候如何分配池呢?這裡就不告訴大家了以後再專門寫一篇關於池的文章詳細的介紹如何使用池大家也可以自己考慮一下

   使用高效的字符串操作函數

  因為服務器一定要進行大量的字符串運行如果使用Delphi自帶的函數來操作就比較費時所以這裡推薦大家使用QStringspas字符串操作函數集相信會對大家有幫助的

   優化你的SQL查詢語句

  你可以一方面優化SQL查詢語句來提高運行效率另一方面你還可以使用存儲過程來更大的提高運行效率(這些知識你需要看數據庫的內容這裡具體如何優化就不說了) 

  上面介紹是我的實踐經驗不一定全對希望大家能有幫助如果有更好的方法也可以討論

[]  []  


From:http://tw.wingwit.com/Article/program/Delphi/201311/11130.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.