7.4 vs Node.js
1. Rust WIN
2. Node.js
3. C/C++
4. PHP
Код:
PHP
<?php
//var_dump(opcache_get_status()["jit"]);
$x = 1.000000000092;
$y = 1.00000021010848;
$i = 0;
$start = microtime(true);
while ($i < 100000000) {
$y = $y*$x;
$i++;
}
$stop = microtime(true);
echo "$y\nСкрипт был выполнен за " . ($stop - $start) . ' секунд';
//0.552 jit on
//1.83 notebook jit off
?>
C (компилятор clang LLVM) оптимизация -O3
#include <stdio.h>
#include <time.h>
//using namespace std;
int main()
{
clock_t start, stop;
long double x = 1.000000000092;
long double y = 1.00000021010848;
long int i = 0;
//int count;
//cin >> count;
start = clock ();
while (i < 100000000)
{
y = y*x;
//cout<< y;
//cout << "\n";
i++;
}
//cout <<printf("Loop required %f seconds", (stop - start) / CLK_TCK);printf("Loop required %f seconds", (stop - start) / CLK_TCK); "Hello World\n";
stop = clock();
printf("%f", y);
printf("%f \n");
printf("%f", (stop - start) / 1000.0);
//cout << CLOCKS_PER_SEC;
//unsigned int end = clock();
//unsigned int search = end - start;
return 0;
}
C++ (компилятор и настройки те же что и у С)
#include <iostream>
#include <ctime>
use namespace std;
int main(void)
{
clock_t start, stop;
long double x = 1.000000000092;
long double y = 1.00000021010848;
long int i = 0;
//int count;
//cin >> count;
start = clock ();
while (i < 100000000)
{
y = y*x;
//cout<< y;
//cout << "\n";
i++;
}
//cout << "Hello World\n";
stop = clock();
std::cout << y;
std::cout << "\n";
std::cout << (stop - start) / 1000.0;
//cout << CLOCKS_PER_SEC;
//unsigned int end = clock();
//unsigned int search = end - start;
return 0;
}
Node.js 17.4
let x=1.000000000092
let y=1.00000021010848
let i=0
console.time('clock')
while (i < 100000000)
{
y = y*x;
//cout<< y;
//cout << "\n";
i++;
}
console.log(y)
console.timeEnd('clock')
Rust
use std::time::{Duration, Instant};
fn main() {
let x: f64 = 1.000000000092;
let mut y: f64 = 1.00000021010848;
let mut i: i32 = 0;
//начало замера
let start = Instant::now();
while i < 100000000
{
y = y*x;
i = i + 1;
}
//конец замера
let duration = start.elapsed();
println!("y = {}", y);
println!("Time elapsed is: {:?}", duration);
}
Жду конструктивную критику или как можно лучше оптимизировать.
Вот это у Вас 1. Rust WIN 2. Node.js 3. C/C++ 4. PHP На первом месте по скорости Rust?
мб условно какой-нибудь md5 вычислять для реальной нагрузки?
неспортивно, модуль crypto на плюсцах писан
возьми реализацию на жс
ну... например PHP функции это будут делать через Сишную библиотеку Так что верны ли будут результаты такого теста...
ну так бери реализацию на этом же языке
А где скорость?
Скрины чуть выше
Попробовать gcc, например
7.3 ms
Код тот же Время исполнения. А результат не вывел потому что в gcc чуть по другому строки выводятся, я хз и забил на вывод строки. Но он не влияет
а как в gcc строки выводятся?
clang принял код выше (и вывел строку) а gcc начал ругаться. По этому я не учитывал результат gcc
Обсуждают сегодня