производительность языков программирования
Модератор: Olej
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: производительность языков программирования
Обстоятельства заставили вернуться к этой теме ... и к новым версиям всех языковых средств.
В итоге, совершенно новый вариант текста и заметно дополнены архивы.
На сегодня там сравнения 23-х языков.
В итоге, совершенно новый вариант текста и заметно дополнены архивы.
На сегодня там сравнения 23-х языков.
- Вложения
-
- ManySpeed_10.odt
- (58.07 КБ) 87 скачиваний
-
- speed.10.tgz
- (42.77 КБ) 106 скачиваний
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: производительность языков программирования
Теперь туда можно добавить и Swing от Apple ... после того, естественно, как с мучениями установим Swing (см. Swift под Linux)...Olej писал(а):На сегодня там сравнения 23-х языков.
Тестовое приложение выглядит так (это под стандарт Swift 4, но и под Swift 3 будет нормально ... под Swift 2 должно выглядеть иначе):
Код: Выделить всё
nc fibo( n: Int ) -> Int {
if n < 2 {
return 1
}
else {
return fibo( n: n - 1 ) + fibo( n: n - 2 )
}
}
if CommandLine.arguments.count < 2 {
print( "Ups!" )
} else {
let arg = CommandLine.arguments[ 1 ]
let argstr: Int? = Int( arg )
if argstr != nil {
let argint: Int! = Int( arg )
print( fibo( n: argint ) )
}
else {
print( "Ups!" )
}
}
Код: Выделить всё
olej@olej-VirtualBox ~/2018_WORK/own.BOOKs/ManyLang/swift $ swiftc -O fibo_sw.swift -o fibo_sw
olej@olej-VirtualBox ~/2018_WORK/own.BOOKs/ManyLang/swift $ time ./fibo_sw 30
1346269
real 0m0.015s
user 0m0.012s
sys 0m0.000s
olej@olej-VirtualBox ~/2018_WORK/own.BOOKs/ManyLang/swift $ time ./fibo_sw 40
165580141
real 0m1.295s
user 0m1.216s
sys 0m0.012s
olej@olej-VirtualBox ~/2018_WORK/own.BOOKs/ManyLang/swift $ time ./fibo_sw 45
1836311903
real 0m15.028s
user 0m14.952s
sys 0m0.044s
Код: Выделить всё
olej@olej-VirtualBox ~/2018_WORK/own.BOOKs/ManyLang/speed.10 $ gcc -O3 fibo_c.c -o fibo_c
olej@olej-VirtualBox ~/2018_WORK/own.BOOKs/ManyLang/speed.10 $ time ./fibo_c 30
1346269
real 0m0.007s
user 0m0.004s
sys 0m0.000s
olej@olej-VirtualBox ~/2018_WORK/own.BOOKs/ManyLang/speed.10 $ time ./fibo_c 40
165580141
real 0m0.788s
user 0m0.728s
sys 0m0.000s
olej@olej-VirtualBox ~/2018_WORK/own.BOOKs/ManyLang/speed.10 $ time ./fibo_c 45
1836311903
real 0m7.492s
user 0m7.412s
sys 0m0.048s
- Вложения
-
- fibo_sw.swift
- (423 байт) 84 скачивания
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: производительность языков программирования
Предыдущие результаты - это было в свежей установке под VirtualBox.Olej писал(а):Теперь туда можно добавить и Swing от Apple ... после того, естественно, как с мучениями установим Swing (см.
А вот на реальном железе:
Код: Выделить всё
$ gcc -O3 fibo_c.c -o fibo_c
$ time ./fibo_c 40
165580141
real 0m0.444s
user 0m0.443s
sys 0m0.000s
$ time ./fibo_c 45
1836311903
real 0m4.741s
user 0m4.737s
sys 0m0.000s
Код: Выделить всё
$ swiftc -O fibo_sw.swift -o fibo_sw
$ time ./fibo_sw 40
165580141
real 0m1.745s
user 0m1.731s
sys 0m0.012s
$ time ./fibo_sw 45
1836311903
real 0m19.507s
user 0m19.494s
sys 0m0.004s
- Вложения
-
- ManySpeed_12.odt
- (60.35 КБ) 87 скачиваний
-
- speed.11.tgz
- (52.13 КБ) 91 скачивание
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: сравнение языков программирования
Добавлена ещё сравнительная реализация на языке Rust.Olej писал(а): Добавлена реализация той же сравнительной задачи на Tcl.
Код: Выделить всё
use std::env;
fn fibo( x: u64 ) -> u64 {
if x < 2 { 1 }
else { fibo( x - 1 ) + fibo( x - 2 ) }
}
fn main() {
let args: Vec<String> = env::args().collect();
let num: u64 = args[ 1 ].trim().parse().unwrap();
println!( "{}", fibo( num ) );
}
Код: Выделить всё
[olej@dell ManySpeed.exmpl]$ time ./fibo_c 45
1836311903
real 0m5.127s
user 0m5.067s
sys 0m0.002s
[olej@dell rust]$ time ./fibo_rs 45
1836311903
real 0m6.684s
user 0m6.603s
sys 0m0.002s
Это при всём том, что Rust намного выше уровнем чем C: высокоуровневыми структурами данных (коллекциями), средствами функционального программирования, реакциями на ошибки ... и мн. др.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: сравнение языков программирования
Olej писал(а):Добавлена ещё сравнительная реализация на языке Rust.Olej писал(а): Добавлена реализация той же сравнительной задачи на Tcl.Код: Выделить всё
[/quote]
- Вложения
-
- ManySpeed_13.odt
- (63.16 КБ) 80 скачиваний
-
- ManySpeed_13.tgz
- (58.38 КБ) 79 скачиваний
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей