原来的是基于控制台的程序,压力测试时表现非常好。双核的CPU 2.8G,256M内存,连接了几百个连接(测试资源有限),收发数据。CPU占用50%,网卡利用99%(100M的)。最近为了在BCB或delphi中方便调用,就写成了ActiveX,发布5个事件。6个属性,还有几个接口函数.OnConnect
OnDisConnect
OnError
OnRead
OnWriteBCB测试程序仅在OnRead里添加了一行事件响应代码。m_Server.Send(ConnectID, pBuf, DataLen);
可是CPU占用冲到了99%,网卡利用25%,后来用VC写了测试程序,CPU99%,网卡52%。为啥变成ocx后,会这样呢?(debug的和release的ocx我都试了。差不多)
OnDisConnect
OnError
OnRead
OnWriteBCB测试程序仅在OnRead里添加了一行事件响应代码。m_Server.Send(ConnectID, pBuf, DataLen);
可是CPU占用冲到了99%,网卡利用25%,后来用VC写了测试程序,CPU99%,网卡52%。为啥变成ocx后,会这样呢?(debug的和release的ocx我都试了。差不多)
解决方案 »
- MFC中子类的消息处理函数为什么调用父类的处理函数
- 串口编程,怎么得到设备中存储的值如 AT+CMGL(读取短信)?WriteFile/ReadFile
- 类对象的定义
- 如何发送子窗口里的EN_VSCROLL消息呢?
- 串口通讯截获问题,请求帮助!!急请高手指点!!!!
- 有没有把 Flash格式的文件转化成其他视频格式的软件?比如把.swf转化成.avi 或者.mpeg
- 如何判断一个UDP端口被绑定了?
- 要想在vc环境下批量的移动代码(左/右移**格)用什么插件?——工具求助帖
- 有用过——国产——嵌入实时操作系统——DeltaOS——的,进来谈谈感受。进者有分。:)
- Client/Server的问题
- 我在ChildFrame中切分窗口(CSplitterWnd)放了连个视图,如何在一个视图中,获得另一个视图的指针
- 我写了一个多线程的网络程序,谁能告诉我为什么不对?
if (pSock->Receive(pSocket))
{
pSock->FireOnRead((long)pSocket, pOverlappedPlus->wsabuf.buf, dwIoSize);
}
pSock->FreeOverlappedMemory(pOverlappedPlus, pSocket);
break;FireOnRead是内部名,映射外部的OnRead
这个贴我真不知道该放在COM里还是放在网络编程里。挪了几次了。