рабом тебя делает не работодатель, а кредитор
- Music:Mistadool - Again
| Вам стоило бы жить в городе Лондон |
| Столица туманного Альбиона - город дорогой, богемный и прохладный. Англичане дотошны и хмуры. Но вы любите дорогие магазины, большие фестивали и роскошные клубы. Ваш доход позволяет вам жить в таком городе. Так что вперед, start to learn english and welcome to the capital of Great Bririan! :) |
| Пройти тест |
весь журнал перемещён в http://blog.mocksoul.ru. Все новые записи будут там, здесь ничего больше не будет.
whole journal moved to http://blog.mocksoul.ru. All new records would be where.
whole journal moved to http://blog.mocksoul.ru. All new records would be where.
lj wasted.
http://mocksoul.livejournal.com/ clearlook.
http://mocksoul.livejournal.com/ clearlook.
Почему можно найти более умных программистов, пишущих на Python, гораздо чаще чем умных программистов пишущих на Java?
( читай )
( читай )
- Location:Kolpingagen
- Mood:
artistic - Music:Gwen Stefani - Hollaback Girl
Шатался по инету в поисках простого графика скорости языков программирования при выполенении тривиальных задач. Запарился. Либо нет графиков (и, соответственно, самих тестов - только полемика), либо тесты безнадёжно устаревшие (ну кто сейчас пишет на php 4.1? или python 1.x? или java 1.3.x?). Посему...
... пляшем с бубном вокруг языков программирования. Результаты ошеломляют =))).
Сравнительное тестирование java, C++, Python, PHP и Perl - 6 тестов - IO, List, Hash, Console, No, Speed..
Результаты интересные =)
1. IO Test. Суть - впихнуть в файл циферки от 1 до 1 млн. Тривиально =))).
Значитс.. сёрсы:
PHP: test.php:
JAVA: test.java
C++: test.cpp
PYTHON: test.py
PERL: test.pl
РЕЗУЛЬТАТЫ ПЕРВОГО ТЕСТА (IO)
Все комментарии - в конце поста. Пока нет слов =).
2. Hash Test. Создаём массивчики.
PHP: test.php:
PYTHON: test.py:
JAVA: test.java:
C++: test.cpp:
PERL: test.pl:
РЕЗУЛЬТАТЫ ВТОРОГО ТЕСТА (Hashing)
3. Console Test. Скорость выплевывание инфы в консоль. Отправлялось все в /dev/null, дабы не зависить от скорости терминала.
PHP: test.php:
PYTHON: test.py:
C++: test.cpp:
JAVA: test.java:
PERL: test.pl:
РЕЗУЛЬТАТЫ ТРЕТЬЕГО ТЕСТА (Console)
4. List Test. Заполняем списки.
PHP: test.php:
PYTHON: test.py:
PERL: test.pl:
JAVA: test.java:
C++: test.cpp:
РЕЗУЛЬТАТЫ ЧЕТВЕРТОГО ТЕСТА (List)
5. No Test. Из разряда глупых =) Просто ничего не делаем.
PHP: test.php:
PYTHON: test.py:
PERL: test.pl:
JAVA: test.java:
C++: test.cpp:
РЕЗУЛЬТАТЫ ПЯТОГО ТЕСТА (No)
( все знают почему тут ява обосралась =) ляляля.. =) )
6. Speed Test. Скорость итераций.
PHP: test.php:
PYTHON: test.py:
PERL: test.pl:
JAVA: test.java:
C++: test.cpp:
РЕЗУЛЬТАТЫ ШЕСТОГО ТЕСТА (Speed)
фух. Ну вот. И что мы имеем? Наишустрейший, конечно - си. Однако надо помнить что debug c++ может превратится в nightmare :)). Плюс переносимость нулевая.. нужен собственный экспириенс =)). Ява неожиданно хороша. Половина программ на яве тормозит так лишь из-за заслуг разработчиков.. на самом деле очень шустрый язык... но синтаксис.. мама, роди меня обратно. Ненавижу писать на яве =)). Посему - в мусорку.
Такс.. питон и пхп. В целом - питон чуть медленнее практически во всех тестах. (2 года назад питон проигрывал в скорости почти двухкратно). Но за удобство, за легкую отладку.. в общем я отдаю пальму первенства среди высокоуровневых языков питону =). Если среди web-приложений нужно ещё хорошенько подумать на питоне или на пхп писать, то среди GUI, если писать на высокоуровневом языке - питон =). Да и плюс посмотрите, как легко, непринуждённо и красиво все задачи решаются на питоне =) Уникальный синтаксис! Удачи, коллеги =)).
О перле ничего не скажу - он тут только для разнообразия. Писать на нём сейчас - зачем?
p.s. вообще-то я думал что питон гораздо медленнее чем оказалось. И думал что перл быстрее =).
p.p.s да, кстати, чего юзалось:
java: sun-jdk-1.5.0_07
c++: gcc-4.1.1
php: php-5.1.4
python: python-2.4.3
perl: perl-5.8.8
Linux version 2.6.16-026test014-MockSoul-OVZ (gcc version 4.1.1 (Gentoo 4.1.1)) #16 Sat Jul 8 15:09:49 MSD 2006
машинка: AMD Athlon64 (dual core, 2.6ghz each), 1.5GB DDR, впрочем это не так важно =).
added
Да, вот ещё небольшое ИМХО:
Эт ни о чем практически не говорит.. PHP кроме как для веб-программирования вообще непонятно где можно использовать. Хоть и есть CLI, но фу... мой выбор - вообще Python + CPython + (иногда) JPython =). Для С++ чтобы написать кроссплатформенное приложение, нужно поплясать с mingw и иже с ним. Возни все равно много =).
... пляшем с бубном вокруг языков программирования. Результаты ошеломляют =))).
Сравнительное тестирование java, C++, Python, PHP и Perl - 6 тестов - IO, List, Hash, Console, No, Speed..
Результаты интересные =)
( смотримсс )
1. IO Test. Суть - впихнуть в файл циферки от 1 до 1 млн. Тривиально =))).
Значитс.. сёрсы:
PHP: test.php:
#!/usr/bin/php
<?php
$fp = fopen('/tmp/iotest', 'wb');
for ($i = 0; $i < 1000000; $i++)
{
fwrite($fp, $i);
}
fclose($fp);
?>
JAVA: test.java
import java.io.*;(p.s. в гробу я видел эту яву)
public class test
{
public static void main(String[] args)
{
try
{
File f = new File("/tmp/iotest");
PrintWriter pw= new PrintWriter(
new BufferedWriter(
new FileWriter(f)));
for (int i = 0; i < 1000000; i++)
{
pw.print(i);
}
pw.close();
}
catch(IOException ioe)
{
ioe.printStackTrace();
}
}
}
C++: test.cpp
#include(p.s. все гениальное просто)#include using namespace std; int main(int argc,char *argv[]) { ofstream out; out.open("/tmp/iotest"); for(int i=0;i<1000000;i++) { out<<i; } out.close(); }
PYTHON: test.py
#!/usr/bin/python(p.s. нет, пожалуй все гениальное - очень просто +))
f = open('/tmp/iotest','wb');
for i in xrange(1000000):
f.write(str(i));
f.close()
PERL: test.pl
#!/usr/bin/perl(p.s. приснится - кошмаррррр)
open($F,">/tmp/iotest");
for $i (0 .. 1000000-1)
{
print $F "$i";
}
close($F);
РЕЗУЛЬТАТЫ ПЕРВОГО ТЕСТА (IO)
Все комментарии - в конце поста. Пока нет слов =).
| C++ | 0.2s | |
| Java | 0.5s | |
| Perl | 0.6s | |
| Python | 2.1s | |
| PHP | 4.4s |
2. Hash Test. Создаём массивчики.
PHP: test.php:
#!/usr/bin/php
<?php
for ($i = 0; $i < 6000; $i++)
{
$x = array();
for ($j = 0; $j < 1000; $j++)
{
$x[$j] = $i;
$x[$j];
}
}
?>
PYTHON: test.py:
#!/usr/bin/python
for i in range(6000):
x={}
for j in range(1000):
x[j]=i
x[j]
JAVA: test.java:
import java.util.*;
public class test
{
public static void main(String[] args)
{
for (int i = 0; i < 6000; i++)
{
Map x = new HashMap();
for (int j = 0; j < 1000; j++)
{
Integer I=new Integer(i);
Integer J=new Integer(j);
x.put(I,J);
x.get(I);
}
}
}
}
C++: test.cpp:
#include#include
PERL: test.pl:
#!/usr/bin/perl
for $i (0 .. 6000-1)
{
%x=();
for $j (0 .. 1000-1)
{
$x{$j}=$i;
$x{$j};
}
}
РЕЗУЛЬТАТЫ ВТОРОГО ТЕСТА (Hashing)
| Java | 1.0s | |
| C++ | 1.3s | |
| PHP | 3.1s | |
| Python | 4.1s | |
| Perl | 7.7s |
3. Console Test. Скорость выплевывание инфы в консоль. Отправлялось все в /dev/null, дабы не зависить от скорости терминала.
PHP: test.php:
#!/usr/bin/php
<?php
for ($i = 0; $i < 1000000; $i++)
{
echo $i . "\n";
}
?>
PYTHON: test.py:
#!/usr/bin/python
for x in xrange(1000000):
print x
C++: test.cpp:
#includeint main(int argc,char *argv[]) { for(int i=0;i<1000000;i++) { std::cout << i << std::endl; } }
JAVA: test.java:
public class test
{
public static void main(String[] args)
{
for (int i = 0; i < 1000000; i++)
{
System.out.println(i);
}
}
}
PERL: test.pl:
#!/usr/bin/perl
for $i (0 .. 1000000-1)
{
print "$i\n"
}
РЕЗУЛЬТАТЫ ТРЕТЬЕГО ТЕСТА (Console)
| Perl | 0.6s | |
| C++ | 0.8s | |
| PHP | 1.4s | |
| Python | 1.7s | |
| Java | 3.0s |
4. List Test. Заполняем списки.
PHP: test.php:
#!/usr/bin/php
<?php
for ($i = 0; $i < 3000; $i++)
{
$v = array('a', 'b', 'c', 'd', 'e', 'f', 'g');
for ($j = 0; $j < 1000; $j++)
{
array_push($v, $j);
$v[$j];
}
}
?>
PYTHON: test.py:
#!/usr/bin/python
for i in range(3000):
v=['a','b','c','d','e','f','g']
for j in range(1000):
v.append(j)
v[j]
PERL: test.pl:
#!/usr/bin/perl
for $i (0 .. 3000-1)
{
@v=('a','b','c','d','e','f','g');
for $j (0 .. 1000-1)
{
push(@v,$j);
$v[j];
}
}
JAVA: test.java:
import java.util.*;
public class test
{
public static void main(String[] args)
{
List initial = new ArrayList();
initial.add("a");
initial.add("b");
initial.add("c");
initial.add("d");
initial.add("e");
initial.add("f");
initial.add("g");
for (int i = 0; i < 3000; i++)
{
List v = new ArrayList(initial);
for (int j = 0; j < 1000; j++)
{
v.add(new Integer(j));
v.get(j);
}
}
}
}
C++: test.cpp:
#include#include using namespace std; int main(int argc, char *argv[]) { vector initial;
initial.push_back(1);
initial.push_back(2);
initial.push_back(3);
initial.push_back(4);
initial.push_back(5);
initial.push_back(6);
initial.push_back(7);
for (int i = 0; i < 3000; i++)
{
vectorv(initial);
for (int j = 0; j < 1000; j++)
{
v.push_back(j);
v[i];
}
}
}
РЕЗУЛЬТАТЫ ЧЕТВЕРТОГО ТЕСТА (List)
| C++ | 0.2s | |
| Java | 0.4s | |
| Perl | 1.7s | |
| Python | 2.0s | |
| PHP | 2.4s |
5. No Test. Из разряда глупых =) Просто ничего не делаем.
PHP: test.php:
#!/usr/bin/php
<?php
?>
PYTHON: test.py:
#!/usr/bin/python
PERL: test.pl:
#!/usr/bin/perl
JAVA: test.java:
public class test
{
public static void main(String[] args)
{
}
}
C++: test.cpp:
int main(int argc, char *argv[])
{
}
РЕЗУЛЬТАТЫ ПЯТОГО ТЕСТА (No)
( все знают почему тут ява обосралась =) ляляля.. =) )
| C++ | 0.003s | |
| Perl | 0.004s | |
| Python | 0.017s | |
| PHP | 0.052s | |
| Java | 0.153s |
6. Speed Test. Скорость итераций.
PHP: test.php:
#!/usr/bin/php
<?php
for ($i = 0; $i < 20000000; $i++)
{
}
?>
PYTHON: test.py:
#!/usr/bin/python
for x in xrange(20000000):
pass
PERL: test.pl:
#!/usr/bin/perl
for $i (0 .. 20000000-1)
{
}
JAVA: test.java:
public class test
{
public static void main(String[] args)
{
for (int i = 0; i < 20000000; i++);
}
}
C++: test.cpp:
int main(int argc, char *argv[])
{
for (int i = 0; i < 20000000; i++);
}
РЕЗУЛЬТАТЫ ШЕСТОГО ТЕСТА (Speed)
| C++ | 0.07s | |
| Java | 0.20s | |
| Perl | 2.91s | |
| PHP | 3.18s | |
| Python | 3.64s |
фух. Ну вот. И что мы имеем? Наишустрейший, конечно - си. Однако надо помнить что debug c++ может превратится в nightmare :)). Плюс переносимость нулевая.. нужен собственный экспириенс =)). Ява неожиданно хороша. Половина программ на яве тормозит так лишь из-за заслуг разработчиков.. на самом деле очень шустрый язык... но синтаксис.. мама, роди меня обратно. Ненавижу писать на яве =)). Посему - в мусорку.
Такс.. питон и пхп. В целом - питон чуть медленнее практически во всех тестах. (2 года назад питон проигрывал в скорости почти двухкратно). Но за удобство, за легкую отладку.. в общем я отдаю пальму первенства среди высокоуровневых языков питону =). Если среди web-приложений нужно ещё хорошенько подумать на питоне или на пхп писать, то среди GUI, если писать на высокоуровневом языке - питон =). Да и плюс посмотрите, как легко, непринуждённо и красиво все задачи решаются на питоне =) Уникальный синтаксис! Удачи, коллеги =)).
О перле ничего не скажу - он тут только для разнообразия. Писать на нём сейчас - зачем?
p.s. вообще-то я думал что питон гораздо медленнее чем оказалось. И думал что перл быстрее =).
p.p.s да, кстати, чего юзалось:
java: sun-jdk-1.5.0_07
c++: gcc-4.1.1
php: php-5.1.4
python: python-2.4.3
perl: perl-5.8.8
Linux version 2.6.16-026test014-MockSoul-OVZ (gcc version 4.1.1 (Gentoo 4.1.1)) #16 Sat Jul 8 15:09:49 MSD 2006
машинка: AMD Athlon64 (dual core, 2.6ghz each), 1.5GB DDR, впрочем это не так важно =).
added
Да, вот ещё небольшое ИМХО:
| Language | PHP | Perl | Python | Java | C++ |
| Скорость написания программ | 5 | 2 | 5+ | 1 | 3 |
| Отладка | 4 | 4 | 5 | 4 | 2 |
| Библиотеки | 4 | 4+ | 5 (3rd party) | 5 | 5 (3rd party) |
| Скорость | 3 | 4 | 2 | 5 | 5+ |
| Итого, средний балл | 4 | 3.5 | 4.25 | 3.75 | 3.75 |
Эт ни о чем практически не говорит.. PHP кроме как для веб-программирования вообще непонятно где можно использовать. Хоть и есть CLI, но фу... мой выбор - вообще Python + CPython + (иногда) JPython =). Для С++ чтобы написать кроссплатформенное приложение, нужно поплясать с mingw и иже с ним. Возни все равно много =).
- Location:Kolpingagen
- Mood:
good - Music:The Green Man - Easy
