DIOCP V5高速分流

本文来自:分享客 Blog[http://blog.wuhao13.xin/737.html]

DIOCP分流下载包,每两天从GitHub拉取更新一次,分流地址见文末。



更新日期:2019年7月2日16:44:36

高速下载地址:点击下载

PS:下载会占用大量服务器带宽,如果您觉得下载速度不错,请点击打赏,谢谢。
FAQ文档:
http://note.youdao.com/noteshare?id=2b40e5d99f39a57512d739f0a5a8a3ee

设置Delphi环境变量
DIOCP5_HOME=E:\workspace\diocp-v5

 

搜索路径
$(DIOCP5_HOME)\Source
FAQ Q:同时启动两个Diocp服务, 为什么一个处理逻辑慢, 会影响到另外一个服务也变慢 A: Diocp底层默认共享同一个IocpEngine, 多个Diocp服务都是由同一个Iocp引擎驱动。可以用下面的办法进行优化
1>. 每个DiocpTcpServer可以单独设置IocpEngine.
代码:FTcpServer.BindDiocpEngine(TIocpEngine.Create, true);
2>. 加大默认IocpEngine工作线程, IocpEngine默认的工作线程数量:cpu核数* 2-1
3>. 如果逻辑代码比较复杂,可以吧逻辑处理投递到另外的线程中执行。
4>. Http服务逻辑处理是由diocpTask进行逻辑处理的,diocpTask默认的工作线程数量: cpu * 2 -1,
可以引用diocp_task.pas, 在初始化app时进行设定 iocpTaskManager.setWorkerCount(50);
可以在APP编译条件中指定QDAC_QWorker, 切换使用qworkers线程池
注意的一些事情 HTTP协议 关于ResponseStream, ResponesAFile 如果使用这两个过程响应Http, Diocp会分块发送数据,直达发送所有的数据发送完成,然后进行判断是否需要关闭连接。所以您不需要进行其他的响应(SendResponse), 也不需要执行ResponseEnd,也不能提前把Stream进行释放,Diocp的Http会接管处理他。 目录说明: samples 下面是各种DEMO
source目录下面是源代码

 

 

可以先从下面的DEMO中了解diocp的工作原理
samples\ECHO
samples\simple
samples\StringDEMO20

 

文件下载

打赏 赞(4)
支付宝二维码图片

支付宝扫描二维码打赏

3

微信扫一扫,分享到朋友圈

DIOCP V5高速分流
返回顶部
DIOCP V5高速分流

显示

忘记密码?

显示

显示

获取验证码

Close