我看到其他网友说使用完成端口建立的程序在数据通讯时CPU的占用率比较少的我的CPU是p42.0的
写的完成端口的服务器,客户端是使用vb建立的程序
目的是vb的客户端发送的数据将通过服务器转发到另一个client(也是vb写的,其实就是和前面说的是
一个程序);这是在本地测试的,就是两个client和服务器在一台机子上,
我使用vb发送一条8k的数据,CPU占用率为10%,当连续发送时cpu占用率大幅度上升,可这仅仅是两个socket和服务器相连,当处理多个socket时,cpu能承受吗?
我的程序有问题吗?我是在完成端口的工作线程中来处理客户端发送过来的数据,并将数据解析(每一条数据中都包含了
这条数据发送方的IP,)这样在这个工作线程中将这个数据在发送到目的地,即另一个client
我的这里处理数据,以及处理数据后发送数据这些操作都是在完成端口的工作线程中进行的,
为了效率还要在这个工作线程中开辟新的线程吗?
写的完成端口的服务器,客户端是使用vb建立的程序
目的是vb的客户端发送的数据将通过服务器转发到另一个client(也是vb写的,其实就是和前面说的是
一个程序);这是在本地测试的,就是两个client和服务器在一台机子上,
我使用vb发送一条8k的数据,CPU占用率为10%,当连续发送时cpu占用率大幅度上升,可这仅仅是两个socket和服务器相连,当处理多个socket时,cpu能承受吗?
我的程序有问题吗?我是在完成端口的工作线程中来处理客户端发送过来的数据,并将数据解析(每一条数据中都包含了
这条数据发送方的IP,)这样在这个工作线程中将这个数据在发送到目的地,即另一个client
我的这里处理数据,以及处理数据后发送数据这些操作都是在完成端口的工作线程中进行的,
为了效率还要在这个工作线程中开辟新的线程吗?
解决方案 »
- VC错误??fatal error C1010
- #include "stdafx.h"问题
- EVC透明按钮
- 昨天晚上k 暗黑 6 boss 豪爽阿
- 为什么一直报访问冲突,写入0x....位置异常?
- 子对话框中的控件的消息处理函数在哪编写代码
- 【总结】在使用一些常用控件中常遇到的问题
- 如何在VC用程序中设置Windows的环境变量? 如系统path的值等.为何用SetEnvironmentVariable()函数不能长期保存,只能在本程序启动时有作
- 关于文件数值输出问题 ---- 急 --- 简单,可问题出在哪呢?
- 请教关于指针问题。
- 用完成端口写的服务器程序出了奇怪的问题,急待指教!``
- 像msn中的对话框窗体的水平分割条怎么编写?有现成的代码吗?
一包数据最好不要超过1.4K
为了节约CPU,你可以:
1.放大Server端的发送缓冲和Client端的接收缓冲;
2.将接收和发送放在单独的线程中处理;
3.减少每一个接收、发送循环的数据处理量,尽快交出CPU的使用权
谢谢你
请问Server端的发送缓冲是指的什么?
是完成端口
函数
GetQueuedCompletionStatus()中的LPOVERLAPPED的开辟的数据空间吗?我现在开辟的是1M的空间;当每次处理的数据大于1.4k的时候要进行循环处理吗?
你说的接受和发送方在单独的线程中,是将接受方在一个线程中,发送发在另一线程中吗?
还是她们两者方在一个线程中?
谢谢你
LPOVERLAPPED
服务端程序和客户端模拟连接程序都在本机运行.服务端和客户端都用"完成端口"的通信模块,运行的时候,整个系统的cpu占用率是50%左右.由于测试程序写的不是很完善,没有用到100%的cpu.但是,至少说明一点,你的程序写的有点问题.
一般来说,单个连接发送8K的数据包,进程的cpu占用率应该几乎为0.
说是一个包建议不超过1.4k
上楼说不超过8k
请问这个依据是什么
有什么书吗?
请不要在同一台机子上既开客户端又开服务器端,尽管这样可以测试逻辑,但本机测试是没有经过网卡传输的,与实际情况可能很不相符;另外,你的CPU占用率,也可能是由于处于同台机子上的客户端造成的,所以建议测试时,还是把客户端和服务器端分开来测。