Показаны сообщения с ярлыком PHP. Показать все сообщения
Показаны сообщения с ярлыком PHP. Показать все сообщения

суббота, 16 июля 2011 г.

Windows–ход конём

Железо: AMD Phenom(tm) II X4 810 Processor @ 2.60 ГГц
ОС: Windows 7 Максимальная
И как всегда не без сюрпризов, на этот раз удивил Internet Explorer 9.

ЯП №1 №2 №3 №4 №5 Версия
Java 5 2 0 0 0 java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02, mixed mode)
C 361 328 328 329 328 gcc.EXE (GCC) 4.5.2
C++ 347 347 347 348 347 g++.EXE (GCC) 4.5.2
C++ 86 78 77 77 77 Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
C++ 2164 2147 2153 2149 2144 Digital Mars Compiler Version 8.42n
PHP 11.44s 11.55s 11.50s 11.51s 11.48s PHP 5.3.3 (cli) (built: Jul 21 2010 20:36:55)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
JS 1905 1900 1902 1905 1899 Mozilla Firefox 5.0
JS 797 792 793 796 794 Mozilla Firefox 3.6.17
JS 1126 1110 1112 1113 1110 Google Chrome 12.0.742.122
JS 244 199 202 204 203 Internet Explorer 9 (9.0.8112.16421)
JS 7865 7856 8040 8212 8405 Internet Explorer 9 (9.0.8112.16421) 64-bit Edition
JS 911 901 913 908 908 Opera 11.50 сборка 1074
Oberon-2 8039 8043 8046 8030 8039 Oxford Oberon-2 compiler version 2.5.1

 

Upd:

Код

С++

#include <sys/timeb.h>
#include <stdio.h>

void test ()
{
struct timeb start, end;

   ftime(&start);
   int count = 100000000;
   for (int i=0; i < count; ++i)
      int x = i/10;
   ftime(&end);

long mtime = ((end.time - start.time) * 1000 + end.millitm - start.millitm);
   printf("%ld\n", mtime);
}
int main (void)
{
   for (int i=0; i < 5; i++)
      test ();
}

 

Oberon-2

MODULE testo2;

IMPORT Timer, Out;

VAR
    t:INTEGER;

PROCEDURE test;
VAR
    s,e,i,max:INTEGER;
    x:REAL;
BEGIN
    max := 100000000;
    i := 0;
    s := Timer.Now();
    WHILE i < max DO i := i+1; x:=i / 10; END;
    e := Timer.Now();
    Out.Int (e-s, 1);
    Out.Ln;
END test;

BEGIN
    t:=0;
    WHILE t < 5 DO t := t+1; test END;
END testo2.

пятница, 15 июля 2011 г.

Первый бой

Священная война начинается со спора, в споре рождается истина, спор перерастает во флейм, истина замещается всякой ложью. И это забавно. А теперь добавим забаве абсурда. Это абсурдный тест заимствованный от сюда http://habrahabr.ru/blogs/programming/120090/ 
Результаты указаны в миллисекундах, кроме тех где указано иное.


Среда
CPU: Intel(R) Pentium(R) CPU G6950 @ 2.80ГГц

ОС: Debian 6.0.2 (x86)



JAVA
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Запуск из Eclipse Helios

public class MathTest{
  public static void main (String[] args){
    for (int i =0; i < 5; i++)
      test ();
    }
  static public void test (){
    long s = System.currentTimeMillis();
    int cout = 100000000;
    for (int i = 0; i < cout; ++i){
      int x = i / 10;
    }
    long e = System.currentTimeMillis();
    System.out.println (e-s);
  }
}


результат:
5
1
0
0
0



C++
g++ (Debian 4.4.5-8) 4.4.5

запуск:
> g++ testcpp.cpp
> a.out

#include <sys/time.h>
#include <stdio.h>
#include <unistd.h>
void test ()
{
  struct timeval start, end;
  long mtime, seconds, useconds;
  gettimeofday(&start, NULL);
  int count = 100000000;
  for (int i=0; i < count; ++i)
    int x = i/10;
  gettimeofday(&end, NULL);
  seconds = end.tv_sec - start.tv_sec;
  useconds = end.tv_usec - start.tv_usec;
  mtime = ((seconds) * 1000 + useconds/1000.0) + 0.5;
  printf("%ld\n", mtime);
}
int main (void)
{
  for (int i=0; i < 5; i++)
    test ();
}

результат:
321
316
317
324
314



C
gcc (Debian 4.4.5-8) 4.4.5


запуск:
> gcc testc.cpp
> a.out

#include <sys/time.h>
#include <stdio.h>
#include <unistd.h>
void test ()
{
  struct timeval start, end;
  long mtime, seconds, useconds;
  int count, i, x;
  gettimeofday(&start, NULL);
  count = 100000000;
  for (i=0; i < count; ++i)
    x = i/10;
  gettimeofday(&end, NULL);
  seconds = end.tv_sec - start.tv_sec;
  useconds = end.tv_usec - start.tv_usec;
  mtime = ((seconds) * 1000 + useconds/1000.0) + 0.5;
  printf("%ld\n", mtime);
}
int main (void)
{
  int i;
  for (i=0; i < 5; i++)
    test ();
}

результат:
318
284
281
287
281



PHP
PHP 5.3.3-7+squeeze3 with Suhosin-Patch (cli) (built: Jun 28 2011 13:13:26)


запуск:
> php -f testphp.php

<?php
  for($i = 0; $i < 5; $i++)
    test ();
  function test ()
  {
    $s = microtime (true);
    $count = 100000000;
    for ($i=0; $i<$count; ++$i)
      $x = $i / 10;
    $e = microtime (true);
    echo ($e-$s) . "\n";
}
?>

результат (секунды):
25.652865171432
25.643960952759
26.877197980881
27.133295059204
25.590247154236



ActionScript 3
Linux Flash Player 10.3 Projector (10.3.181.34)


запуск:
> mxmlc testflex.mxml
> flashplayer testflex.swf

mxmlc Version 4.5.1 build 21328
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="
http://www.adobe.com/2006/mxml" layout="absolute"
width="300" height="300" initialize="main()" backgroundAlpha="0">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
public function main():void
{
  for (var i:Number=0; i < 5; i++)
    test();
}
public function test():void
{
  var s : Number = new Date ().time;
  var count: Number = 100000000;
  for (var i:Number =0; i < count; ++i)
    var x: Number = i/ 10;
  var e: Number = new Date ().time;
  var r :Number = e-s;
  Alert.show (String(r));
}
]]>
</mx:Script>
</mx:Application>


результат:
393
424
419
393
404



JavaScript

запуск:
Открыть файл\testjs.html

<script>
for (var t=0; t<5;t++)
  test ();
function test ()
{
  var s = new Date ().getTime();
  var count = 100000000;
  for (var i=0; i< count; ++i)
    var x = i/10;
  var e = new Date().getTime();
  document.write ((e-s));
  document.write("<br>");
}
</script>

результаты по браузерам:
Firefox 5.0
963
972
984
946
948


Opera 11.50
993
982
996
989
973


Google Chrome 12.0.742.124
897
894
894
894
894



// Нетрадиционные извращения

Firefox 3.6.13
7621
7596
7588
7586
7598


PlayOnLinux Internet Explorer 7
завис



// Вне. Замеры любезно предоставленные
Python

результат (секунды):
35


P.S. Обожаю php и js в браузерах,