不比不知道,一比吓一跳!

原创 2003年07月10日 08:36:00

不要发了,我知道怎么回事了   

怎么没有办法删除自己法的文章呢?

我觉得应该可以的

  

 

  摘要:我一直以为VC6的执行效率很不错,无论如何这也是微软的产品,在Windows平台下,他的效率应该不会差到哪里去,你是不适也是这么认为的?我还一直以为在VC6下面,通过初始化列表会有一定的性能提高,理论上如此,实际上呢?

    源于《Efficient C++》上面的一个例子,当时,他给出了下面的这个例子程序(稍加改动):
   #include <iostream>
   #include <ctime>
   #include <string>
   using namespace std;

   class Timer
   {
   public:
 Timer():start(clock()) { }
 ~Timer()    { cout<<clock()-start<<"ms"<<endl;  }
   private:
 clock_t start;
   };

   class Person
   {
   public:
 Person(const char* s,const char* se) { name=s; sex=se; }
   private:
 string name,sex;
   };

   int main()
   {
 Timer* p=new Timer;
 for(int i=0; i<1000000; ++i)
  Person p("hustli","boy");
 delete p;

 return 0;
   }
   我们称这个版本为版本1,按照我们的常识,在Person构造函数中,没有使用初始化列表,那么,在构造Person对象的时候会2次初始化name和sex,效率自然会下降,而且应该下降很多!所以我们构造了版本2:
   Person(const char* s, const char* se):name(s), sex(se) {}
   首先,我们拿版本1在VC6,win2000下测试十次,取平均值,结果如下:13949.0ms
   然后,我们用版本2在VC6,win2000下测试十次,取平均值,结果如下:14174.3ms
  
这个结果,让我郁闷了半天,想不明白,实在是想不明白,怎么会用了初始化列表,效率反而低了?我想可能和string类的实现有关,所以我把这两个版本在dev-C++4.9.5.0下进行了同样的测试,结果如下:
    版本1:3186.5ms
    版本2:3102.4ms
    初看到这个结果,下了我一跳:怎么比VC6速度快了这么多?!
   
    结论:可能Dev-C++更符合我们的预期结果:初始化列表可以提高效率。string的默认构造函数消耗很小。
    疑惑:为什么VC6的结果会如此反常?为什么VC6的效率会如此低?期待高手的解答。

    附:打开最优化就正常了,版本1:2156ms 版本2: 2119ms

Apache与IIS的客观对比(不比不知道,一比吓一跳)

Apache与IIS的优劣对比 对于中小企业来说建立自己的网站,对外展示自己的页面是最平常不过的事情了。目前最流行的建立WWW服务工具就要属Apache与IIS了。那么他们之间都...
  • u014326381
  • u014326381
  • 2015年08月21日 15:36
  • 18375

apache转发实现iis和apache共享80端口

先把自动启动的iis服务器停下来,修改iis的端口为非80(比如8081) 再接着打开apache的httpd.conf文件开始配置 要让apache支持转发也就是做iis的代理那么就要先启用ap...
  • Witch_Soya
  • Witch_Soya
  • 2015年01月31日 10:55
  • 1996

吓一跳

上周四还是五,在微博上看到CSDN帐号被泄露的消息,当时也没当回事儿,以为是某些人的恶作剧,或者只是部分个人信息被公开,因为并不会涉及到像支付宝帐号那样与money相关,而且好像是在上厕所时看的,后来...
  • gaofeng2000
  • gaofeng2000
  • 2011年12月25日 21:37
  • 889

前面不足为奇,后面不看不知道,一看吓一跳:

吓一跳!工商银行 95588 建设银行 95533农业银行 95599中国银行 95566交通银行 95559浦发银行 95528民生银行 95568兴业银行 95561中信银行 95558深圳发展银...
  • zhou8622
  • zhou8622
  • 2015年03月02日 15:47
  • 700

不看不知道,一看吓一跳---jQuery官方网站

今天上去jQuery的时候,发现它的布局很有意思,让我想起了学习编程语言的顺序。 一、初步了解jQuery,并提供案例学习 二、掌握基础之后,就可以做一些小例子。很简单的 ...
  • jptiancai
  • jptiancai
  • 2013年10月11日 18:32
  • 1271

短信惊天内幕!!!!不看不知道,一看吓一跳!!!!

2005-12-11 19:25:37 去年,我已在星星发表了一个关于免费发短信的各类软件的黑幕所在。而事实上的SMS(即短信)的黑幕远不止于此,今天,我终于有空坐下来,把其中的一...
  • mybirdsky
  • mybirdsky
  • 2008年01月23日 14:23
  • 847

ResultSet的一些操作

什么是ResultSetJDBC通过ResultSet来对查询结果进行封装,ResultSet对象包含一个由查询语句返回的一个表, 这个表包含所有的查询结果。 说明我们一般只使用next()方法移动指...
  • leeezm
  • leeezm
  • 2017年08月15日 11:09
  • 93

hdoj Average 5353 (递推&&数学情况考虑) 好题

Average Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Tota...
  • yanghui07216
  • yanghui07216
  • 2015年11月01日 21:48
  • 167

[转]看完吓一跳,FireFox和IE漏洞对比报告

导读: FireFox一直标榜是安全浏览器,它不支持ActiveX,当然可以把来自针对IE的威胁统统挡在门外,不过这种安全可能只是一个假象,根据安全人员Jeff Jones的统计,FireFox可远...
  • deflag
  • deflag
  • 2007年12月01日 14:26
  • 519

http://bbs.dospy.com/thread-545779-1-1.html

手机证书详细讲解手机证书的引入:      在手机使用过程中,安装应用程序时,可发现与证书相关的若干错误,此处引出“手机证书”的概念,手机证书可理解为:软件的通行证       英文名称:Phone ...
  • daikyo
  • daikyo
  • 2010年11月07日 04:48
  • 2742
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:不比不知道,一比吓一跳!
举报原因:
原因补充:

(最多只允许输入30个字)