完成端口程序一般都不是基于MFC的吧?对效率有什么影响了?如果基于MFC,效率有影响么?
一般都是基于win32 application吧

解决方案 »

  1.   

    MFC的实现很多时候不能满足高性能的需要,通常是用API自己封装,这样方便控制
      

  2.   

    主要是指界面采用MFC的,基于对话框的
    完成端口是用API实现的
    这样的界面框架对性能有影响么?
    谢谢!
      

  3.   

    MFC的实现当然是套接字实现。你的问题太泛,自己需要结合实际情况考虑
      

  4.   

    我是做一个网络服务器程序,需要用到完成端口,可以说是一个后台程序吧
    其中界面框架是基于MFC对话框的,只有停止启动按钮和输出一些日志信息到listbox
    完成端口是采用API实现的,如,#include <winsock2.h>
    也就是说除框架之外的代码是没有采用MFC的请问:MFC界面框架会影响性能么?
      

  5.   

    这儿有一例子:
    http://www.codeproject.com/internet/iocp_server_client.asp
    我打算参照做
      

  6.   

    可以确定的说如果你API和计算机基础非常扎实的话,那么MFC定比你用API做的慢,因为:
    MFC的安全性和稳定性是非常高的,所以它的代码中当然避免不了要有一些和主功能无关的代码。如:临时变量的声明,完整的测试机制,全面的功能处理。但它的代码在其它方面写的还是很有效率的,无论MFC它的系统设计上有什么缺陷,从代码的角度来看我们都应该承认它写的很优秀。所以,如果你应用不是要把性能榨到极限,为了方便,还是使用MFC吧。对你的应用,应该是:界面为MFC,网络用API
      

  7.   

    主要是指界面采用MFC的,基于对话框的
    完成端口是用API实现的
    这样的界面框架对性能有影响么?
    谢谢!
    --------------------------------------------------------
    对性能的影响主要取决于对界面更新速度的影响,假设你的完成端口服务线程的流量较大,数据传输都希望以最快速的更新到界面上,那么整个程序包括网络服务部分的效率是有些影响的,因为CPU也要处理界面的频繁快速更新。如果你的流量较大,但是不要求在任何情况下都及时快速频繁的显示在界面上,那么性能上就可以达到折中。显示界面的信息最好不要过于实时,只要能正确显示刷新,至于是否显示快速,不是程序的主要目的。另外呢,如果你的界面更新相当于监控网络的动态,那么留一个关闭信息滚动或者频繁更新的开关功能,当无人值守,关闭此功能网络程序可以达到更好的性能,充分利用系统CPU资源。在有人需要观察的时候,可以开此界面滚动,此时会有一些影响。但毕竟要可控的多。最后无论哪种方式,文件日志必不可少。