发现: IOCP服务器主动发送数据时十分缓慢!!!大家来讨论是什么原因。。

周江涛 2005-09-19 10:30:55
看了网上下载的IOCP原码。基本都是收到客户端的数据,再原本发回去。这样的确是响应和传输都非常快。

我自己写了一个。由客户端查询一个表的数据,6000行。逐行发送给服务器。服务器原样发回。时间小于1秒。客户端同步(Blocking)时,不丢失数据。速度快,客户端异步(NonBlocking)时,丢失一些数据。

现在我使用同步的客户端,向服务器发送一个命令”select * from Products“由服务器查询表,逐行返回记录。发现速度奇慢!一秒钟只能发几条记录。查看CPU,内存,网络占用都十分低。

大家讨论一下,这是什么原因?做过IOCP的不妨也去试试。确实慢。有什么办法改进呢?
...全文
366 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangjundeng 2005-09-21
  • 打赏
  • 举报
回复
使用多缓冲可解决。
xxrl 2005-09-20
  • 打赏
  • 举报
回复
楼主的问题和我当初问题一样 同步不知道为什么就是慢 后来我将查询到的数据压缩到XML文件里面 通过传统XML文件来完成传输,client就解析一下xml 汗一把 呵呵
lifengice0706 2005-09-19
  • 打赏
  • 举报
回复
起多个线程去接收完成事件,再说如果你认为慢的话,为什么不对数据打包呢?
周江涛 2005-09-19
  • 打赏
  • 举报
回复
只有一个Client。问题不在查询上。
就是服务端反复使用WSASend("ABC"。。。。)这样发几千次也很慢。。看来楼上的,没有做过。
rageliu 2005-09-19
  • 打赏
  • 举报
回复
应该是你通信方面的代码有问题吧?
是不是发了不只一个“select * from Products”??

几个client发了“select * from Products”??
返回记录给几个client?
rageliu 2005-09-19
  • 打赏
  • 举报
回复
现在我使用同步的客户端,向服务器发送一个命令”select * from Products“由服务器查询表,逐行返回记录

这和在服务器端直接执行查询语句“select * from Products”有什么区别???

难道服务器执行“select * from Products”很慢??
1、本课程是一个干货课程,主要讲解如何封装服务器底层,使用Tcp/ip长连接,IDE使用vs2019 c++开发以及使用c++11的一些标准,跨平台windows和linux,服务器性能高效,单服务器压力测试上万无压力,服务器框架是经历过上线产品的验证,框架简单明了,不熟悉底层封装的人,半个小就能完全掌握服务器框架上手写业务逻辑。2、本课程是一个底层服务器框架教程,主要是教会学员在windows或linux下如何封装一个高效的,避免踩坑的商业级框架,服务器底层使用初始化即开辟内存的技术,使用内存池,服务器运行期间内存不会溢出,非常稳定,同服务器使用自定义哈希hashContainer,在处理新的连接,新的数据,新的封包,以及解包,发包,粘包的过程,哈希容器性能非常高效,增、删、查、改永远不会随着连接人数的上升而降低性能,增、删、查、改的复杂度永远都是恒定的O(1)。3、服务器底层封装没有使用任何第三方网络库以及任何第三方插件,自由度非常的高,出了任何BUG,你都有办法去修改,查找问题也非常方便,在windows下使用iocp,linux下使用epoll.4、讲解c++纯客户端,主要用于服务器之间通信,也就是说你想搭建多层结构的服务器服务器服务器之间使用socket通信。还可以使用c++客户端做压力测试,开辟多线程连接服务器,教程提供了压力测试,学员可以自己做压力测试服务器性能。5、赠送ue4和unity3d通信底层框架以及多人交互demo,登录,注册,玩家离开,同步主要是教会学员服务器与客户端如何交互。6、赠送c++连接mysql数据库框架demo,登录,注册,玩家离开数据持久化.7、服务器教程使用自定义通信协议,同也支持protobuf,选择权在开发者自己手里,想用什么协议都可以,自由度高。8、服务器教程使用手动敲代码逐句讲解的方式开展教学课程。非喜勿喷,谢谢大家。9、服务器教程提供源码,大家可以在平台提供的地址下载或者联系我,服务器使用c++11部分标准,std::thread,条件变量,线程锁,智能指针等,需要学员具备一定c++知识,购买前请慎重考虑。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧