大家看一看上面的代码思路很清楚就是将接收到的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查询语句来提高运行效率另一方面你还可以使用存储过程来更大的提高运行效率(这些知识你需要看数据库的内容这里具体如何优化就不说了)
上面介绍是我的实践经验不一定全对希望大家能有帮助如果有更好的方法也可以讨论
[] []