200 百分求发送算法和策略思路 !

arvid_gs 2007-04-13 09:55:48
现在有 IOCP 模式的服务器,服务器收到一条消息后要群发给 客户端 ,客户端有上千个到万,现在采取 遍历 发送给客户端,就是 for 循环,发现效率比较低,问问大家有什么好的注意可以提高效率,多谢!!
...全文
453 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
fairyprince 2007-04-16
  • 打赏
  • 举报
回复
不要让服务器主动发送为好,如果可以接受应该让客户端请求这可以让服务器不在一时处理那么大量的计算。
如不行,应该将工作分散,比如一次发送还200 条,这时让你的IOCP去做些别的事,然后在一定时间在发送 200 ………… ,在网络上相差几秒钟是可以容忍的,谁让你一次要发上万条了呢。这样就不会有CPU 一直占用较高情况,而且这样做可以同时处理其它事情!
fantiyu_sr 2007-04-16
  • 打赏
  • 举报
回复
IOCP?
开1个线程对所有client发送就可以, 基本能满足你的要求
Hylas 2007-04-16
  • 打赏
  • 举报
回复
我就觉得奇怪,你为什么一个for 要那么长时间, 问题肯定不在 send ,因为 send是马上返回的

我估计你涉及到多次 内存复制 造成的,或者是由于其它 代码降低 效率
fanday 2007-04-15
  • 打赏
  • 举报
回复
问一下移动或联通公司
Analyst 2007-04-15
  • 打赏
  • 举报
回复
盲目的优化没有意义,首先要搞清楚瓶颈在什么地方,是CPU资源不够还是带宽不够?另外性能再怎么提高都是有天花板的,要提升系统容量除了优化性能还可以提高伸缩性,改成分布式结构。
curelex 2007-04-15
  • 打赏
  • 举报
回复
是把文件放Http 服务器上面 然后给客户端个地址自己下载去
这样的话服务器负载就不用考虑了
systemthink 2007-04-15
  • 打赏
  • 举报
回复
不会!学习!
arvid_gs 2007-04-14
  • 打赏
  • 举报
回复
如果客户端是你自己做的,你可以把数据直接放到网络上,然后所有的客户端到哪去取,这样,所有的压力就在各自的客户端,而不在你的服务器上了????? ----客户端都取数据库的话还要服务器做什么啊? 直接插入数据库取读就可以了?
WingForce 2007-04-13
  • 打赏
  • 举报
回复
非要用线程也最好用线程池

如果不能用组播和广播,还有点其他的办法:
在客户端做文章,可以令客户端帮助转发,这样服务器只需要转发给有限数量的客户端即可
大选 2007-04-13
  • 打赏
  • 举报
回复
线程不是好办法,可以采用广播方式吗
qhlonline 2007-04-13
  • 打赏
  • 举报
回复
开辟成千上万的线程好像不太好。
CathySun118 2007-04-13
  • 打赏
  • 举报
回复
组播,中继发
tinyfog 2007-04-13
  • 打赏
  • 举报
回复
如果客户端是你自己做的,你可以把数据直接放到网络上,然后所有的客户端到哪去取,这样,所有的压力就在各自的客户端,而不在你的服务器上了
pyrophile 2007-04-13
  • 打赏
  • 举报
回复
群发?了解一下短信的群发功能应该和你的工程比较相似
arvid_gs 2007-04-13
  • 打赏
  • 举报
回复
有点类似组播 !
「已注销」 2007-04-13
  • 打赏
  • 举报
回复
线程池
ouyh12345 2007-04-13
  • 打赏
  • 举报
回复
组播?
setsailgo 2007-04-13
  • 打赏
  • 举报
回复
多线程
双杯献酒 2007-04-13
  • 打赏
  • 举报
回复
用组播(Multipoint/Multicast)比较好,
只不过组播属于UDP, 可能存在掉包和包乱序的问题.
laofang 2007-04-13
  • 打赏
  • 举报
回复
现在采取 遍历 发送给客户端,就是 for 循环,发现效率比较低
——为什么觉得效率低,都是重叠操作立即返回,效率不见得就低,几百万的连接也能很快处理
广播消息如果并不重要,可以单开线程用UDP发送,时效上的要求就更不高了

这里使用的是完成端口,根本就再用不着什么多线程、线程池
加载更多回复(2)

18,356

社区成员

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

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