• [织梦吧]唯一域名:www.dedecms8.com,织梦DedeCMS学习平台.

当前位置: > 编程与数据库 > php编程 >

提升PHP性能之改变Zend引擎分发方式(3)

来源: www.dedecms8.com 编辑:织梦吧 时间:2012-02-07点击:

  return( ($n * ($LAST = ($LAST * IA + IC) % IM)) / IM );

  }

  function heapsort_r($n, &$ra) {

  $l = ($n >> 1) + 1;

  $ir = $n;

  while (1) {

  if ($l > 1) {

  $rra = $ra[--$l];

  } else {

  $rra = $ra[$ir];

  $ra[$ir] = $ra[1];

  if (--$ir == 1) {

  $ra[1] = $rra;

  return;

  }

  }

  $i = $l;

  $j = $l << 1;

  while ($j <= $ir) {

  if (($j < $ir) && ($ra[$j] < $ra[$j+1])) {

  $j++;

  }

  if ($rra < $ra[$j]) {

  $ra[$i] = $ra[$j];

  $j += ($i = $j);

  } else {

  $j = $ir + 1;

  }

  }

  $ra[$i] = $rra;

  }

  }

  function heapsort($N) {

  global $LAST;

  define("IM", 139968);

  define("IA", 3877);

  define("IC", 29573);

  $LAST = 42;

  for ($i=1; $i<=$N; $i++) {

  $ary[$i] = gen_random(1);

  }

  heapsort_r($N, $ary);

  printf("%.10f\n", $ary[$N]);

  }

  /****/

  function mkmatrix ($rows, $cols) {

  $count = 1;

  $mx = array();

  for ($i=0; $i<$rows; $i++) {

  for ($j=0; $j<$cols; $j++) {

  $mx[$i][$j] = $count++;

  }

  }

  return($mx);

  }

  function mmult ($rows, $cols, $m1, $m2) {

  $m3 = array();

  for ($i=0; $i<$rows; $i++) {

  for ($j=0; $j<$cols; $j++) {

  $x = 0;

  for ($k=0; $k<$cols; $k++) {

  $x += $m1[$i][$k] * $m2[$k][$j];

  }

  $m3[$i][$j] = $x;

  }

  }

  return($m3);

  }

  function matrix($n) {

  $SIZE = 30;

  $m1 = mkmatrix($SIZE, $SIZE);

  $m2 = mkmatrix($SIZE, $SIZE);

  while ($n--) {

  $mm = mmult($SIZE, $SIZE, $m1, $m2);

  }

  print "{$mm[0][0]} {$mm[2][3]} {$mm[3][2]} {$mm[4][4]}\n";

  }

  /****/

  function nestedloop($n) {

  $x = 0;

  for ($a=0; $a<$n; $a++)

  for ($b=0; $b<$n; $b++)

  for ($c=0; $c<$n; $c++)

  for ($d=0; $d<$n; $d++)

  for ($e=0; $e<$n; $e++)

  for ($f=0; $f<$n; $f++)

  $x++;

  print "$x\n";

  }

  /****/

  function sieve($n) {

  $count = 0;

  while ($n-- > 0) {

  $count = 0;

  $flags = range (0,8192);

  for ($i=2; $i<8193; $i++) {

  if ($flags[$i] > 0) {

  for ($k=$i+$i; $k <= 8192; $k+=$i) {

  $flags[$k] = 0;

  }

  $count++;

  }

  }

  }

  print "Count: $count\n";

  }

  /****/

  function strcat($n) {

  $str = "";

  while ($n-- > 0) {

  $str .= "hello\n";

  }

  $len = strlen($str);

  print "$len\n";

  }

  /*****/

  function getmicrotime()

  {

  $t = gettimeofday();

  return ($t['sec'] + $t['usec'] / 1000000);

  }

  function start_test()

  {

  ob_start();

  return getmicrotime();

  }

  function end_test($start, $name)

  {

  global $total;

  $end = getmicrotime();

  ob_end_clean();

  $total += $end-$start;

  $num = number_format($end-$start,3);

  $pad = str_repeat(" ", 24-strlen($name)-strlen($num));

  echo $name.$pad.$num."\n";

  ob_start();

  return getmicrotime();

  }

  function total()

  {

  global $total;

  $pad = str_repeat("-", 24);

  echo $pad."\n";

  $num = number_format($total,3);

  $pad = str_repeat(" ", 24-strlen("Total")-strlen($num));

  echo "Total".$pad.$num."\n";

  }

  $t0 = $t = start_test();

  simple();

  $t = end_test($t, "simple");

  simplecall();

  $t = end_test($t, "simplecall");

  simpleucall();

  $t = end_test($t, "simpleucall");

  simpleudcall();

  $t = end_test($t, "simpleudcall");

  mandel();

  $t = end_test($t, "mandel");

  mandel2();

  $t = end_test($t, "mandel2");

  ackermann(7);

  $t = end_test($t, "ackermann(7)");

标签: 性能 提升 改变

About D8

  • ©2014 织梦吧(d8) DedeCMS学习交流平台
  • 唯一网址 www.DedeCMS8.com 网站地图
  • 联系我们 1170734538@qq.com ,  QQ