社区
网络编程
帖子详情
请教开发聊天服务器使用MFC比Win32效率差多少
HappySheepherder
2008-09-22 10:22:57
我一直是使用MFC,现在做服务器要使用win32,感觉很不方便,虽然能使用STL(string, list)之类,但是还是没MFC(CSting、、CArray、界面调试之类)用的方便顺手,当然SOCKE还是要用完成端口,不是用MFC的CSocket,底层的东西不变,只是用MFC比较方便的操作类,所以想请教一下,使用MFC开发服务器到底比win32效率差多少,谢谢了
...全文
338
19
打赏
收藏
请教开发聊天服务器使用MFC比Win32效率差多少
我一直是使用MFC,现在做服务器要使用win32,感觉很不方便,虽然能使用STL(string, list)之类,但是还是没MFC(CSting、、CArray、界面调试之类)用的方便顺手,当然SOCKE还是要用完成端口,不是用MFC的CSocket,底层的东西不变,只是用MFC比较方便的操作类,所以想请教一下,使用MFC开发服务器到底比win32效率差多少,谢谢了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
HappySheepherder
2008-10-20
打赏
举报
回复
还是老实用char吧,或者stl的东西做服务器,MFC太耗时间,
ok1234567 老兄的例子很好,学会了这个方法,测试某个技术的复杂度的话,循环n次,然后GetTickCount(),比较消耗时间就是了:)
nsdcnsdc
2008-10-18
打赏
举报
回复
用控制台做服务器端也不错呀
nooning
2008-10-16
打赏
举报
回复
不从内存管理角度说,MFC是由类构成,访问类变量至少要多一是寻址,如果是使用了虚表那么访问函数至少也要多一次访问内存,而且每次调用类函数都会把类指针传给函数(根据不同的调用约定和实现方式可能有不同),虽然很微小,但频繁调会效率也会低些.
当然和JAVA .NET之类相比,这些多可以完全忽略,就像慧星碰地球一样。
楼上说的内存管理的效率要看如何实现了。
开发效率MFC 远高于SDK开发。
所以MFC那一点速度差别不会有太多人在乎,在核心算法上通常也只会用asm优化,相比之下SDK开发只是会浪费时间
ok1234567
2008-09-26
打赏
举报
回复
各位有兴趣的的话用你们的机器分别运行(注释)一下这个简单的函数,
看看CString 与char差多少,如果用到指针运算,差异会更大
void Test()
{
char sz[32];
time_t tm;
time(&tm);
for(int i=0;i<2000000;i++)
{
CString str;
str.Format("%d12345678900099"
"abcgffeeeeeeee"
"abcgffeeeeeeee"
"abcgffeeeeeeee"
"abcgffXYZEFGHI%d",
i,i+1);
str.Find("abcgffXYZEFGHI",0);
/*
char zz[256];
sprintf(zz,
"%d12345678900099"
"abcgffeeeeeeee"
"abcgffeeeeeeee"
"abcgffeeeeeeee"
"abcgffXYZEFGHI%d",
i,i+1);
strstr(zz,"abcgffXYZEFGHI");
*/
}
sprintf(sz,"%d",time(NULL)-tm);
AfxMessageBox(sz);
return ;
}
lhtang
2008-09-26
打赏
举报
回复
百万分之一的差别..
kevin0808
2008-09-26
打赏
举报
回复
差距应该很大
因为你惯用的mfc类都使用了大量的new和delete操作,这些对于网络服务器都是应该减少的操作,很消耗性能的
worlftki
2008-09-25
打赏
举报
回复
如果你有好的程序架构和算法,MFC的封装对你的代码性能是没有影响的。
如果做个类封装就会造成程序效率下降,大家一直用C开发好了,不是那回事。
stl 的 string 也是类封装,有谁证明比CString效率高,要说方便代码移植到是真的,你不可能把用MFC代码放Linux下编译。
你要确定代码不跨平台编译,MFC代码大胆用。
mars_man
2008-09-23
打赏
举报
回复
界面与核心分离吧,界面MFC,核心就别用了。
ok1234567
2008-09-23
打赏
举报
回复
个人认为:
能用基本数据类型处理的(包含结构),最好不要使用MFC类
比如CSting 与char *,效率差异在一倍以上
能直接调用API的,就不要调用 MFC 封装类
因为是服务器,资源总是特别有限,如果是客户端,就没有必要顾虑那么多了
JonathanS666
2008-09-23
打赏
举报
回复
不会差很多,主要是算法和架构。
danscort2000
2008-09-23
打赏
举报
回复
速度差不少
服务器类尽量少用类代码,那是效率低下的主要原因
特别是MFC库,在服务器开发中能不用就尽量不用
std库也一样的
sys0001
2008-09-22
打赏
举报
回复
效率应该相差不太大,只是静态编译时程序会大点,动态编译需要带MFC的DLL。
如果你非想用SDK开发,不妨可以使用WTL。
scq2099yt
2008-09-22
打赏
举报
回复
没有比较过
yayafu
2008-09-22
打赏
举报
回复
差万分之一吧
blackcat242
2008-09-22
打赏
举报
回复
这个主要取决你看的编程技术了,但是服务器很少有界面的
adriano119
2008-09-22
打赏
举报
回复
应该差吧很多吧
用WIN32开发聊天程序应该很麻烦吧
什么都得自己生成
wltg2001
2008-09-22
打赏
举报
回复
MFC比较大,但是并不是说它的效率就差啊
sxcong
2008-09-22
打赏
举报
回复
只要架构合理,完全没问题
wildfire还是用java写的呢,目前来讲是开源中最好的Jabber服务器,很多C写的都不如它。
greatws
2008-09-22
打赏
举报
回复
服务器还是用win32吧,没有界面一般不要用MFC
MFC
开发
简单
聊天
程序
微软基础类库,以C++类的形式封装了Windows API,并且包含一个应用程序框架,教大家用这个 框架
开发
网络
聊天
软件。
mfc
mysql 类_
MFC
连接MySQL
其实,以前弄过sql,mysql应该是顺理成章很简单的事情,但很无奈,傻傻地弄了很久,还
请教
了别人,别人告诉我的跟我在网上查到的都是一样的,但还是不行,归根接地就是“mysql-connector-odbc-5.2.4-
win32
”这个odbc...
mfc
如何连接mysql,
MFC
连接MySQL C API方法
MySQL安装地址:https://dev.mysql.com/downloads/mysql/5.0.html#
win32
注意:选择下面的32位进行安装。2.MySQL装完之后,随便建立一个库,名为mydb3.在Stdafc.h 中添加#include#include"mysql.h"/...
MFC
连接MySQL
其实,以前弄过sql,mysql应该是顺理成章很简单的事情,但很无奈,傻傻地弄了很久,还
请教
了别人,别人告诉我的跟我在网上查到的都是一样的,但还是不行,归根接地就是“mysql-connector-odbc-5.2.4-
win32
”这个odbc...
vs2008下
MFC
中采用ado连接MySQL(ODBC、非ODBC或C API方式)
其实,以前弄过sql,mysql应该是顺理成章很简单的事情,但很无奈,傻傻地弄了很久,还
请教
了别人,别人告诉我的跟我在网上查到的都是一样的,但还是不行,归根接地就是“mysql-connector-odbc-5.2.4-
win32
”这个odbc...
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章