找回密码
 注册
【阿里云】2核2G云服务器新老同享 99元/年,续费同价,云服务器3年机/5年机限时抢购,低至 2.5折华为云精选云产品特惠糖果主机Jtti,新加坡服务器,美国服务器,香港服务器,海外云服务器
查看: 1469|回复: 26

两段代码的执行速度测试~~

[复制链接]
发表于 2005 年 10 月 14 日 13:26:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
  今天偶然想到一个有趣的测试,使用while或者for等很容易构成循环体,而使用函数自身调用也可以构成循环体,哪种更快呢?

  1. <?php
  2. $timestamp = time();
  3. $mtime = explode(' ', microtime());
  4. $starttime = $mtime[1] + $mtime[0];
  5. while($a <100){
  6.   echo $a." ";
  7.   $a++;
  8. }
  9. $mtime = explode(' ', microtime());
  10. $totaltime = number_format(($mtime[1] + $mtime[0] - $starttime), 6);
  11. echo "<br>".$totaltime."<br>";
  12. ?>
复制代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
0.000286
  1. <?php
  2. $timestamp = time();
  3. $mtime = explode(' ', microtime());
  4. $starttime = $mtime[1] + $mtime[0];
  5. a();
  6. function a($a=''){
  7.    echo $a." ";
  8.    $a++;
  9.    $a<100 && a($a);
  10. }
  11. $mtime = explode(' ', microtime());
  12. $totaltime = number_format(($mtime[1] + $mtime[0] - $starttime), 6);
  13. echo "<br>".$totaltime."<br>";
  14. ?>
复制代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
0.000587
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
发表于 2005 年 10 月 14 日 13:52:36 | 显示全部楼层
【腾讯云】2核2G云服务器新老同享 99元/年,续费同价
递归需要堆栈,需要的内存更大

具体原理不懂,以上纯属猜测
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

 楼主| 发表于 2005 年 10 月 14 日 16:58:39 | 显示全部楼层
我后来又测试了下,在循环次数较小的时候反而函数递归执行效率更快,看来的确是由于函数递归形成未能自动释放内存的堆影响了多次循环的效率了~
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2005 年 10 月 14 日 18:17:07 | 显示全部楼层
不懂   帮顶
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2005 年 10 月 15 日 02:17:55 | 显示全部楼层
下面是引用oghuz于2005-10-14 18:17发表的:
不懂   帮顶
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2005 年 10 月 15 日 08:06:22 | 显示全部楼层
学习了
心雨动网的无限分类是如何实现的呢?
也是递归吗?
小白同学
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

 楼主| 发表于 2005 年 10 月 15 日 08:26:53 | 显示全部楼层
【腾讯云】2核2G云服务器新老同享 99元/年,续费同价
下面是引用姜运涛于2005-10-15 08:06发表的:
学习了
心雨动网的无限分类是如何实现的呢?
也是递归吗?
小白同学

定义了一个类,递归和循环都有使用的~所以想起测试下速度
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2005 年 10 月 15 日 08:45:53 | 显示全部楼层
涛涛在偷技术
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2005 年 10 月 15 日 10:01:21 | 显示全部楼层
下面是引用xchange于2005-10-15 08:45发表的:
涛涛在偷技术

你不說的話是不是小白就全告訴我了?
不BS你你就會不爽
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2005 年 10 月 15 日 10:14:25 | 显示全部楼层
居然打出繁体字来……诡异啊……
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|金光论坛

GMT+8, 2024 年 9 月 20 日 21:39 , Processed in 0.101392 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表