Священная война начинается со спора, в споре рождается истина, спор перерастает во флейм, истина замещается всякой ложью. И это забавно. А теперь добавим забаве абсурда. Это абсурдный тест заимствованный от сюда 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 в браузерах,
Комментариев нет:
Отправить комментарий