欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
[研究] 程序執行速度(頁(yè) 1) - Php - ChinaUnix.net - powe...


為了測試各種編程語(yǔ)言程序的執行效率,小弟編寫(xiě)了一個(gè)排序程序sort_array.c,
這個(gè)程序最先用C語(yǔ)言編寫(xiě),以C語(yǔ)言版本為基礎改寫(xiě)成java,php,perl等語(yǔ)言版本.
另外還編寫(xiě)了一個(gè)runtest.php的程序,這個(gè)程序用于測試各種語(yǔ)言版本的排序程序
的執行時(shí)間及計算比較他們的執行效率。由于小弟的機器只有windows所以只能在
windows下做測試。請大家試試,看看結果怎樣。

以下是在本人機器上的測試結果:

C:\work\test_speed>;php runtest.php
==================================================
<各種語(yǔ)言程序的執行速度測試比較,測試項目:排序算法>;
測試環(huán)境:Windows 2000 Professional
gcc version 3.4.2 (mingw-special)
java version 1.4.2
PHP 5.0.4 (cli) (built: Mar 31 2005 02:45:48)
perl, v5.8.7 built for MSWin32-x86-multi-thread
==================================================
開(kāi)始執行c程序...
重復執行4000000次排序操作
排序前: 19,41,25,15,121,8,432,2,3,9
排序后: 2,3,8,9,15,19,25,41,121,432
c程序執行完畢,花費時(shí)間1.9295秒
--------------------------------------------------
開(kāi)始執行java程序...
重復執行4000000次排序操作
排序前: 19,41,25,15,121,8,432,2,3,9
排序后: 2,3,8,9,15,19,25,41,121,432
java程序執行完畢,花費時(shí)間2.96秒
--------------------------------------------------
開(kāi)始執行perl程序...
重復執行20000次排序操作
排序前: 19,41,25,15,121,8,432,2,3,9
排序后: 2,3,8,9,15,19,25,41,121,432
perl程序執行完畢,花費時(shí)間2.0541秒
--------------------------------------------------
開(kāi)始執行php程序...
重復執行20000次排序操作
排序前: 19,41,25,15,121,8,432,2,3,9
排序后: 2,3,8,9,15,19,25,41,121,432
php程序執行完畢,花費時(shí)間2.9211秒
--------------------------------------------------
各種語(yǔ)言程序運行速度比較:
c : java : perl : php = 302.78 : 197.37 : 1.42 : 1

C:\work\test_speed>;

測試結果顯示:C語(yǔ)言運行速度最快,Java程序比C慢1/3.
perl和php就比較糟糕,C速度是php的300倍.

created by jasonli 2005-10-17

源代碼列表:(文件名為sort_array.*)

sort_array.c
-----------------------------------
#include <stdlib.h>;
void sort(int *p,int n)
{
  int i,j,k,l;
  for (i=0;i<n-1;i++)
  {
    k=i;
    for (j=i+1;j<n;j++)
    {
      if(p[j] < p[k]) k=j;
    }
    if(i!=k)
    {
      l=p[k];
      p[k]=p[i];
      p[i]=l;
    }
  }  
}
main(int argc,char **argv)
{
  int i,j;
  int n=10;
  int a[]={19,41,25,15,121,8,432,2,3,9};
  int b[10];
  int count=1000000;
  if(argc<2) { printf("請指定排序執行次數!\n命令格式:\n%s 次數",argv[0]); exit(1); }
  count = atoi(argv[1]);
  for(j=0;j<n;j++) b[j]=a[j];
  printf("重復執行%d次排序操作\n",count);
  printf("排序前: ");
  for(i=0;i<n;i++)
  {  
     if(i>;0) printf(",%d",a[i]);
       else printf("%d",a[i]);
  }
  for(i=0;i<count;i++)
  {
    for(j=0;j<n;j++) a[j]=b[j];
    sort(a,n);
  }
  printf("\n排序后: ");
  for(i=0;i<n;i++)
  {  
     if(i>;0) printf(",%d",a[i]);
       else printf("%d",a[i]);
  }
  printf("\n");
  exit(0);
}


sort_array.java
-----------------------------------
import java.lang.*;
public class sort_array
{
  public static void sort(int[] p,int n)
  {
    int i,j,k,l;
    for (i=0;i<n-1;i++)
    {
      k=i;
      for (j=i+1;j<n;j++)
      {
        if(p[j] < p[k]) k=j;
      }
      if(i!=k)
      {
        l=p[k];
        p[k]=p[i];
        p[i]=l;
      }
    }  
  }
  public static void main(String[] args)
  {
    int i,j;
    int n=10;
    int[] a={19,41,25,15,121,8,432,2,3,9};
    int[] b=new int[n];
    int count=1000000;
    int argc;
    argc = args.length;
    if(argc<1) { System.out.print("請提供參數指定排序執行次數!"+count+"\n"); return ; }
    count = Integer.parseInt(args[0]);
    System.out.print("重復執行"+count+"次排序操作\n");
    System.out.print("排序前: ");
    for(i=0;i<n;i++)
    {  
       if(i>;0) System.out.print(","+a[i]);
         else System.out.print(a[i]);
    }
    for(i=0;i<count;i++)
    {
      for(j=0;j<n;j++) b[j]=a[j];
      sort_array.sort(a,n);
    }
    System.out.print("\n排序后: ");
    for(i=0;i<n;i++)
    {  
       if(i>;0) System.out.print(","+a[i]);
         else System.out.print(a[i]);
    }
    System.out.print("\n");
  }
}



sort_array.pl
-----------------------------------

sub c_sort
{
  #int $i,$j,$k,$l;
  local($i,$j,$k,$l);
  for ($i=0;$i<$n-1;$i++)
  {
    $k=$i;
    for ($j=$i+1;$j<$n;$j++)
    {
      if(@a[$j] < @a[$k]) { $k=$j ; }
    }
    if($i!=$k)
    {
      $l=@a[$k];
      @a[$k]=@a[$i];
      @a[$i]=$l;
    }
  }  
}
sub main
{
  local($i,$j);
  local($n);
  local($argc);
  local(@argv);
  $argc = $_[0];
  @argv = $_[1];
  @a=(19,41,25,15,121,8,432,2,3,9);
  @b=@a;
  $n=@a;
  if($argc<1) { printf("請指定排序執行次數!\n命令格式:cmd>;%s 次數",$0); exit(1); }
  $count = @argv[0];
  printf("重復執行%d次排序操作\n",$count);
  printf("排序前: ");
  for($i=0;$i<$n;$i++)
  {  
     if($i>;0) { printf(",%d",@a[$i]); }
       else { printf("%d",@a[$i]); }
  }
  for($i=0;$i<$count;$i++)
  {
    @a=@b;
    c_sort(); # c_sort(@a,$n);
  }
  printf("\n排序后: ");
  for($i=0;$i<$n;$i++)
  {  
     if($i>;0) {printf(",%d",@a[$i]);}
       else {printf("%d",@a[$i]);}
  }
  printf("\n");
  exit(0);
}
$argc=@ARGV;
main($argc,@ARGV);


sort_array.php
-----------------------------------

<?php
function c_sort(&$p,$n)
{
  //int $i,$j,$k,$l;
  for ($i=0;$i<$n-1;$i++)
  {
    $k=$i;
    for ($j=$i+1;$j<$n;$j++)
    {
      if($p[$j] < $p[$k]) $k=$j;
    }
    if($i!=$k)
    {
      $l=$p[$k];
      $p[$k]=$p[$i];
      $p[$i]=$l;
    }
  }  
}
function main($argc,$argv)
{
  //int i,j;
  //int n=10;
  //int a[]={19,41,25,15,121,8,432,2,3,9};
  $a=array(19,41,25,15,121,8,432,2,3,9);
  $n=count($a);
  //int b[10];
  //int count=0;
  if($argc<2) { printf("請指定排序執行次數!\n命令格式:cmd>;%s 次數",$argv[0]); exit(1); }
  $count = (int)($argv[1]);
  printf("重復執行%d次排序操作\n",$count);
  printf("排序前: ");
  for($j=0;$j<$n;$j++) $b[$j]=$a[$j];
  for($i=0;$i<$n;$i++)
  {  
     if($i>;0) printf(",%d",$a[$i]);
       else printf("%d",$a[$i]);
  }
  for($i=0;$i<$count;$i++)
  {
    for($j=0;$j<$n;$j++) $a[$j]=$b[$j];
    c_sort($a,$n);
  }
  printf("\n排序后: ");
  for($i=0;$i<$n;$i++)
  {  
     if($i>;0) printf(",%d",$a[$i]);
       else printf("%d",$a[$i]);
  }
  printf("\n");
  exit(0);
}
main($argc,$argv);
?>;


runtest.php
---------------------------------------------

<?php
function getmicrotime()
{
  list($usec, $sec) = explode(" ",microtime());
  return ((float)$usec + (float)$sec);
}
echo "==================================================\n";
echo "<各種語(yǔ)言程序的執行速度測試比較,測試項目:排序算法>;\n";
echo "測試環(huán)境:Windows 2000 Professional\n";
echo "gcc version 3.4.2 (mingw-special)\n";
echo "java version 1.4.2\n";
echo "PHP 5.0.4 (cli) (built: Mar 31 2005 02:45:48)\n";
echo "perl, v5.8.7 built for MSWin32-x86-multi-thread\n";
echo "==================================================\n";
$lang=array("c","java","perl","php");
$t=array(4000000,4000000,20000,20000);
$cmd=array("sort_array.exe $t[0]","java sort_array $t[1]","perl sort_array.pl $t[2]","php sort_array.php $t[3]");
for($i=0;$i<count($lang);$i++)
{
  printf("開(kāi)始執行%s程序...\n",$lang[$i]);
  $time_start = getmicrotime();
  system($cmd[$i]);
  $time_end = getmicrotime();
  $time[$i] = round($time_end - $time_start,4);
  if($i==0 || $t[$i]/$time[$i]<$low) $low=$t[$i]/$time[$i];
  printf("%s程序執行完畢,花費時(shí)間%s秒\n",$lang[$i],$time[$i]);
  printf("--------------------------------------------------\n");
}
printf("各種語(yǔ)言程序運行速度比較:\n");
$msg1="";
$msg2="";
for($i=0;$i<count($lang);$i++)
{
  if($i>;0) { $msg1.=" : "; $msg2.=" : "; }
  $msg1.=$lang[$i];
  $msg2.=round(($t[$i]/$time[$i])/$low,2);
}
echo "$msg1 = $msg2\n";
?>;

2005-10-17 04:00 笨狗
[研究] 程序執行速度

這種東西怎么可以放到win下面測試

2005-10-17 08:45 yoursmile
[研究] 程序執行速度

這樣測試太偏頗了吧。

2005-10-17 09:09 HonestQiao
[研究] 程序執行速度

舉一個(gè)簡(jiǎn)單的例子:

短跑運動(dòng)員跑100米,比長(cháng)跑運動(dòng)員跑100米,肯定快。

但是那個(gè)好呢?

2005-10-17 09:22 lovered
[研究] 程序執行速度

贊樓主精神

2005-10-17 18:46 Yarco
[研究] 程序執行速度


2005-10-17 22:48 jasonli
[研究] 程序執行速度

哈哈,各位嚴重了,我還沒(méi)有對這個(gè)結果進(jìn)行評價(jià)。我只是想試試程序基本操作(比較賦值等)的執行速度。請不要從這個(gè)測試結果評價(jià)任何語(yǔ)言的好壞。這只是我們應該知道的一些開(kāi)發(fā)工具的特點(diǎn)而已。

2005-10-18 10:28 rocklv
[研究] 程序執行速度

我覺(jué)得看問(wèn)題,不能單獨看啊,誰(shuí)的網(wǎng)站只有php或者c啊,沒(méi)有其他集成?

2005-10-18 18:37 艾斯尼勒
[研究] 程序執行速度

作為服務(wù)器腳本嵌入的語(yǔ)言,php是否更適合跟jsp,asp.net來(lái)比較,而且好像還關(guān)乎web服務(wù)器的性能,而且php有兩種運行方式好像在速度上有些不同吧

2005-10-18 19:38 dozec
[研究] 程序執行速度

最?lèi)?ài)C

2005-10-18 20:31 ipaddr
[研究] 程序執行速度

C是很快,而且,移植性也很強,Unix下幾乎是C的天下.

不過(guò),C的開(kāi)發(fā)效率還真是低了點(diǎn).

2005-10-18 21:15 dozec
[研究] 程序執行速度

有的時(shí)候感覺(jué)自己寫(xiě)php程序時(shí)間長(cháng)了,腦袋有點(diǎn)笨了。
相反是在寫(xiě)C的時(shí)候才感覺(jué)自己是個(gè)程序員。

自己的感受,無(wú)意貶低任何一方。

頁(yè): [1]
查看完整版本: [研究] 程序執行速度

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
帶參數的主函數
linux下c編程main函數的參數問(wèn)題
main之前
delete p和delete[] p的區別
數組與指針不能混用的情況
php通過(guò)pack和unpack函數實(shí)現對二進(jìn)制數據封裝及解析
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久