程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 使用Delphi設計強大的服務器程序(2)

使用Delphi設計強大的服務器程序(2)

編輯:Delphi

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

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

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

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

6 多使用WSASend,WSARecv等WinSocket 2函數,不要使用Send,Recv函數

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

7 合理使用線程池操作

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

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

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

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

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

10 優化你的SQL查詢語句

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

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved