June 16th, 2012

wuwei

Сравнение алгоритма Quicksort на C, OCaml, Haskell и Erlang


Для выбора используемого языка для проекта провёл небольшое экспресс-сравнение языков-кандидатов. Результаты ставлю также тут.


Критерии:
- скорость скомпилированного кода;
- размер скомпилированного кода

Сравнивал на:
- C (gcc version 4.6.3);
- OCaml (Objective Caml version 3.12.1);
- Haskell (Glasgow Haskell Compiler, Version 7.4.1);
- Erlang (Erlang R15B01, без HiPE)

в среде:
- Ubuntu Linux Release 12.04 (precise) 32-bit;
- Intel® Core™2 Duo CPU E8500 @ 3.16GHz × 2

Сравнивал алгоритм сортировки Quicksort. Размер массива данных - 10000 (int).

Collapse )

Скрипт:
erlc qs.erl
ocamlopt qs.ml -o qs_ocaml
ghc --make qs_haskell
gcc -O2 qs_c.c -o qs_c
strip -p --strip-unneeded --remove-section=.comment -o qs_ocaml_s qs_ocaml
strip -p --strip-unneeded --remove-section=.comment -o qs_haskell_s qs_haskell
strip -p --strip-unneeded --remove-section=.comment -o qs_c_s qs_c

time erl -s qs > out1
time ./qs_ocaml_s > out2
time ./qs_haskell_s > out3
time ./qs_c_s > out4

Результат:
real
time (s)
user
time (s)
sys
time (s)
exec
size (b)
time
(times of C)
exec size
(times of C)
C0.2010.2000.00054281.001.00
OCaml1.0491.0400.0041052045.2219.38
Haskell3.5483.3360.19657814817.65106.51
Erlang6.3104.5201.7001020*31.39374.52*
* plus/with Erlang runtime (2MB)
wuwei

Mandra - Aromatic Splendor

Ещё один видео с "изображением" звука на поверхности воды. Это не рисовано, это реальные узоры материи (волн на воде). В этом смысле, чистая физика.

Смотреть лучше на большом экране.



Ещё по теме - о технологии получения подобного изображения: http://users.livejournal.com/wu_/124847.html