相关文章  
  • 下一代开源技术的结晶――FedoraCore6
  • qmail+vpopmail+sqwebmail的安装步骤(上)
  • Linux操作系统下双启动环境的陷阱问题(下)
  • 在Linux环境中如何配置WU-FTP服务器(1)
  • 在Linux环境中如何配置WU-FTP服务器(2)
  • Linux操作系统内核对RTC的编程详解(1)
  • Linux操作系统内核对RTC的编程详解(2)
  • 双赢协议:微软为何将不会攻击Linux
  • Linux系统PDA软件开发环境的构建(1)
  • 超线程加快Linux操作系统的速度(下)(4)
  •   推荐  
      科普之友首页   专利     科普      动物      植物        天文   考古   前沿科技
     您现在的位置在:  首页 >>文献 >>培训

    Linux系统编程之C++游戏程序优化(5)3

    DE>

    对Function()的调用包括了对给定const char*参数的构造函数的调用。在普遍的实现中,这个构造函数执行了一个malloc(),一个strlen(),以及一个memcpy(),而析构函数立刻上来做了一些无意义的事情。(由于该例子中的string没有被更多的应用)然后又跟了一个free()。这里的内存分配完全是浪费,因为字符串“hello”早就在程序的数据段中了。我们早就有它在内存中的副本了。如果Function定义了一个const char*的参数,那么完全没有了上面所说的那些额外的调用。这就是为了使用方便的string而付出的高昂代价。

    模板是效率的对立面的一个例子,根据语言标准,编译器在模板实例化为一个具体的类型时产生代码。理论上,看上去是声明了一个模板,但却实际产生了大量的相似的代码。如果你有了class1的指针的vector,也有class2的指针的vector,你就在你的可执行文件中做了两份的vector的拷贝。

    事实上,大多数的编译器做得更好,首先,只有实际被使用到的模板成员函数被产生代

    页码:[1] [2] [3] [4] [5] [6]3页、共6页

         

          设为首页       |       加入收藏       |       广告服务       |       友情链接       |       版权申明      

    Copyriht 2007 - 2008 ©  科普之友 All right reserved