Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 25.06.2017
Сообщений: 68

Оптимизация кода. Не успевает выполниться за 30 секунд

20.06.2018, 18:10. Показов 2084. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
require "libs/simple_html_dom.php";
 
 
    function parseandwritetodb()
    {
        $html = file_get_contents('https://xn--90aiasbk5as2f.xn--p1ai/%D1%80%D0%B0%D1%81%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5-%D1%80%D0%B5%D0%B7%D1%83%D0%BB%D1%8C%D1%82%D0%B0%D1%82%D1%8B-%D0%BC%D0%B0%D1%82%D1%87%D0%B5%D0%B9-%D1%87%D0%BC-2018.html');
        $dom = str_get_html($html);
 
        $oddrows = $dom->find('.oddrow');
        $evenrows = $dom->find('.evenrow');
        if (file_exists('matches.txt')) unlink('matches.txt');
 
        for ($i = 0; $i <= 23; $i++) {
            $oddrows = preg_replace("/\s{1,}/", ' ', $oddrows);
            $evenrows = preg_replace("/\s{1,}/", ' ', $evenrows);
 
            $oddrows = str_replace("о матче", '', $oddrows);
            $evenrows = str_replace("о матче", '', $evenrows);
 
            $oddrows = str_replace("МСК", '', $oddrows);
            $evenrows = str_replace("МСК", '', $evenrows);
 
            $oddrows = str_replace("-", "0:0", $oddrows);
            $evenrows = str_replace("-", "0:0", $evenrows);
 
            $oddrows = preg_replace("/\s{1,}/", ' ', $oddrows);
            $evenrows = preg_replace("/\s{1,}/", ' ', $evenrows);
 
            if ($i != 0) file_put_contents('matches.txt', "\0", FILE_APPEND);
 
            file_put_contents('matches.txt', strip_tags($oddrows[$i]), FILE_APPEND);
            file_put_contents('matches.txt', "\0", FILE_APPEND);
 
            file_put_contents('matches.txt', strip_tags($evenrows[$i]), FILE_APPEND);
        }
        $txt = file_get_contents('matches.txt');
 
        $txt = preg_replace('|[\s]+|s', ' ', $txt);
 
        preg_match_all('/(\d+) ([а-яё]+) (\d\d:\d\d) ([а-яё]+) ((?:\d+|-):(?:\d+|-)) ([а-яё]+)/iu', $txt, $matches, PREG_SET_ORDER);
        for ($i = 0; $i < 43; $i++) {
            $match = R::dispense('matches');
            $match->day = $matches[$i][1];
            $match->month = $matches[$i][2];;
            $match->time = $matches[$i][3];
            $match->first_team = $matches[$i][4];
            $match->score = $matches[$i][5];
            $match->second_team = $matches[$i][6];
            R::store($match);
        }
    }
Тут создается ненужный промежуточный файл matches.txt и очень неумно написан код. Долго работает. Помогите оптимизировать и сделать из него РАБОЧИЙ код

Добавлено через 27 минут
Была использована библиотека redbean PHP
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.06.2018, 18:10
Ответы с готовыми решениями:

Скрипт не успевает выполниться до конца
Всем привет. Импортирую данные из txt файла в таблицу mysql. &lt;?php $dbhost = &quot;localhost&quot;; // Имя хоста БД $dbusername =...

Не успевает обновиться форма до следующей строки кода
Добрый день. Опять нужна помощь, просьба подсказать Есть небольшой код If Me. = 2 Or Me. = 4 Then Me. = Date ...

Оптимизация методом Ньютона (нахождение точки минимума). Оптимизация кода
MATLAB только начал осваивать. Попытался реализовать нахождение точки минимума методом Ньютона для функции 2*X12 - X1*X2 + 3*X22 -...

32
321 / 189 / 78
Регистрация: 04.10.2016
Сообщений: 809
20.06.2018, 18:36
код конечно не ахти, но здесь либо настройки сервера надо крутить, либо сам сервер такой. "средняя" машина отрабатывает в пределах 300 мс (или 0.3 сек)
0
 Аватар для MaxQnei
11 / 11 / 5
Регистрация: 08.06.2015
Сообщений: 48
21.06.2018, 17:23
Мураша, прежде всего, запись в файл играет свою не малую задержку...
Лучше будет так, но тогда проблема возникнет в кол-ве оперативы. Если массив переполнит оперативу - скрипт отвалится...
С другой стороны, лучше один раз сделать file_put_contents...
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
 
$filecontent = [];
 
for ($i = 0; $i <= 23; $i++) {
    // ....
 
    // if ($i != 0) file_put_contents('matches.txt', "\0", FILE_APPEND);
 
    // file_put_contents('matches.txt', strip_tags($oddrows[$i]), FILE_APPEND);
    // file_put_contents('matches.txt', "\0", FILE_APPEND);
 
    // file_put_contents('matches.txt', strip_tags($evenrows[$i]), FILE_APPEND);
    
    $filecontent[] = strip_tags($oddrows[$i]);
    $filecontent[] = strip_tags($evenrows[$i]);
}
 
$filecontent = join("\0", $filecontent);
file_put_contents('matches.txt', $filecontent, FILE_APPEND);
 
$txt = file_get_contents('matches.txt');
К сожалению, код не смог проверить, ибо на рабочий ноут не дело ставить PHP.

***На заметочку***
На оптимизацию влияет количество вызываемых ф-й.
empty($text) будет медленее чем $text == ''...
0
22.06.2018, 14:37

Не по теме:

Цитата Сообщение от MaxQnei Посмотреть сообщение
ибо на рабочий ноут не дело ставить PHP.
Есть же переносные сборки, на флешку один раз записал и следов они не оставляют. Пример: Open Server

0
 Аватар для edward_freedom
1569 / 1448 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
22.06.2018, 18:31
MaxQnei,

Не по теме:

Цитата Сообщение от MaxQnei Посмотреть сообщение
К сожалению, код не смог проверить, ибо на рабочий ноут не дело ставить PHP.
На рабочий ноут в принципе и винду устанавливать не дело. На рабочем ноуте работать надо

0
 Аватар для D_Vik
368 / 234 / 68
Регистрация: 19.07.2016
Сообщений: 833
22.06.2018, 23:51
MaxQnei,

Не по теме:


Вы слишком недооцениваете php. Если , как упоминалось вами в некоторых темах вам нравится выскочка nodeJs , это не значит что пришла пора зарывать php в темный ящик , потому как таких выскочек как nodeJs было много ,тот же пример rubi и как там его еще rubi on rails вроде ,стартанул вроде бодро но завял быстро. Щас на моих глазах увядает и pyton , хотя последний еще держится. php же держит позишены сколько лет ? Посему не стоит говорить гоп ,пока не перепрыгнешь.

0
 Аватар для MaxQnei
11 / 11 / 5
Регистрация: 08.06.2015
Сообщений: 48
23.06.2018, 00:39
Цитата Сообщение от alexsamos33 Посмотреть сообщение
Есть же переносные сборки, на флешку один раз записал и следов они не оставляют. Пример: Open Server
Нет флешки. У меня нет работы связанной с PHP. А рабочий ноут = домашний ноут.
Open Server мне не катит - у меня явно не Шindows.

Цитата Сообщение от edward_freedom Посмотреть сообщение
На рабочий ноут в принципе и винду устанавливать не дело. На рабочем ноуте работать надо
Вы правы. Каждый кодит на своём в своей любимой IDE.
Вот у меня, к примеру, не Шindows) И перешл я с PHPStorm на SublimeText, а до PHPStorm был на NetBeans.

Цитата Сообщение от D_Vik Посмотреть сообщение
Вы слишком недооцениваете php. Если , как упоминалось вами в некоторых темах вам нравится выскочка nodeJs , это не значит что пришла пора зарывать php в темный ящик , потому как таких выскочек как nodeJs было много ,тот же пример rubi и как там его еще rubi on rails вроде ,стартанул вроде бодро но завял быстро. Щас на моих глазах увядает и pyton , хотя последний еще держится. php же держит позишены сколько лет ? Посему не стоит говорить гоп ,пока не перепрыгнешь.
Ну как сказать - недооцениваю PHP?
Я скажу только то, что он 3.14пец как меня задолбал. Не меньше 6 лет работал, 3 года как чёрт по всем самописам, и Zend1, и Yii1, и WordPress, и Joomla, и как минимум еще десяток "естественных выделений" мира PHP.
То что мне приходилось пилить в кратчайшие сроки на PHP - я реализовывал на NodeJS от 4 до 20 раз быстрее.
PHP у меня уже в печёнках сидит, а вот JavaScript заходит на ура + для моего проекта, впринципе, только JavaScript и нужен.
Остальное всё абсолютно туфта.

PHP, кстати, вымирает. - Не мои слова. Слова знакомых фронтендера и бекендера с чертовски немалым опытом работы.
Но, я с этими словами согласен. Т.к. последние два года работы на прошлом месте, а на прошлом месте я работал в декабре, как минимум 10 проектов из имеющихся ~40 начали переходить на ноду.
Новые заказы начали переваливать % между PHP и NodeJS, при том, на последний месяц стало ясно - нода перевалила PHP.
И эти последние два года были самыми радостными, я никогда не кайфовал от решения таких же задач как на PHP, при том что JS, до устройства на эту работу (чуть более 3-х лет назад), я всей душой ненавидел.

Итог: я никого ни в чём не переубеждаю.
Я дал ответ на вопрос в надежде что поможет.
Я искренне надеюсь что стало лучше)

Кстати, когда будете запускать скрипт на продакшн - уберите лишние echo (для логов). На себе убедился, чем меньше echo - тем быстрее отрабатывает скрипт.

Успехов и удачи во всём!
Всем кофе со сливками, а мне кофе со сливками без сахара! )
1
 Аватар для D_Vik
368 / 234 / 68
Регистрация: 19.07.2016
Сообщений: 833
23.06.2018, 00:53
MaxQnei,

Не по теме:


Это говорят уже последние лет 10 наверное ,что php вымерает ) Это нормально. Так то понятно ,у яблочников всегда завышенная самооценка ,это тоже нормально. Посмотрим , как оно будет ,только сдается мне что будет повтор предидущих попыток обойти php, которые как не странно не увенчались успехом. А там всякое бывает. Поживем посмотрим .

0
23.06.2018, 06:20

Не по теме:

Цитата Сообщение от MaxQnei Посмотреть сообщение
кофе со сливками без сахара!
Обсуждение обязывает к чему-нибудь придраться, придерусь к этому. Как можно пить кофе без сахара?! ]:->

0
 Аватар для MaxQnei
11 / 11 / 5
Регистрация: 08.06.2015
Сообщений: 48
23.06.2018, 18:06

Не по теме:

Цитата Сообщение от Jodah Посмотреть сообщение
Обсуждение обязывает к чему-нибудь придраться, придерусь к этому. Как можно пить кофе без сахара?!
:D:D:D! Можно!
1. Я не люблю кофе со сливками и с сахаром. Просто кофе - могу)
2. У меня диабет, по этому я с детства привык (ну или приучился) к пище без сахара - как вкуса.)



СофорумцЫ) Я всё понимаю, но давайте не будем из этой дичи, ..., темы делать курилку)

Мураша, если Вам не сложно, то скажите результат)
0
55 / 55 / 21
Регистрация: 01.03.2016
Сообщений: 594
23.06.2018, 22:01
Цитата Сообщение от MaxQnei Посмотреть сообщение
empty($text) будет медленее чем $text == ''...
MaxQnei, почему ? это же конструкция как и isset работает как скорость света)))
я ее люблю юзать
0
 Аватар для MaxQnei
11 / 11 / 5
Регистрация: 08.06.2015
Сообщений: 48
24.06.2018, 00:52
Цитата Сообщение от 53ifbb Посмотреть сообщение
MaxQnei, почему ? это же конструкция как и isset работает как скорость света)))
я ее люблю юзать
Вам никто не запрещает, то что скорость света - это одно дело.
А когда эту скорость света вызываешь миллиард раз, то это уже 1 км/час.

Ну, тут надо продемонстрировать... 5 минут!

Добавлено через 5 минут
Вот скрипты...
index.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
 
define('ITERATION_COUNT', 100000000);
 
linear(); // 3.1069421768188
linear(); // 3.160404920578
linear(); // 3.1252219676971
functional(); // 8.0463631153107
functional(); // 8.2093031406403
functional(); // 8.136785030365
 
function linear() {
    echo 'linear()', PHP_EOL;
 
    $start = microtime(true);
    echo 'Start: ', $start, PHP_EOL;
 
    for($i = 0, $math; $i < ITERATION_COUNT; $i++) {
        $math = $i * $i * $i;
    }
 
    $end = microtime(true);
    echo 'End: ', $end, PHP_EOL;
 
    $diff = ($end - $start);
    echo 'Diff: ', $diff, PHP_EOL;
}
 
function functional() {
    echo 'functional()', PHP_EOL;
 
    if(!function_exists('cube')) {
        function cube($n) {
            return $n * $n * $n;
        }
    }
 
    $start = microtime(true);
    echo 'Start: ', $start, PHP_EOL;
 
    for($i = 0, $math; $i < ITERATION_COUNT; $i++) {
        $math = cube($i);
    }
 
    $end = microtime(true);
    echo 'End: ', $end, PHP_EOL;
 
    $diff = ($end - $start);
    echo 'Diff: ', $diff, PHP_EOL;
}
index.js
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
const ITERATION_COUNT = 100000000;
 
linear(); // 0.3
linear(); // 0.17
linear(); // 0.168
functional(); // 0.34
functional(); // 0.169
functional(); // 0.168
 
function linear() {
    console.log('linear()');
 
    const start = (new Date - 0);
    console.log('Start:', start);
 
    for(var i = 0, math; i < ITERATION_COUNT; i++) {
        math = i * i * i;
    }
 
    const end = (new Date - 0);
    console.log('End:', end);
 
    const diff = (end - start) / 1e3;
    console.log('Diff:', diff);
}
 
function functional() {
    console.log('functional()');
 
    function cube(n) {
        return n * n * n;
    }
 
    const start = (new Date - 0);
    console.log('Start:', start);
 
    for(var i = 0, math; i < ITERATION_COUNT; i++) {
        math = cube(i);
    }
 
    const end = (new Date - 0);
    console.log('End:', end);
 
    const diff = (end - start) / 1e3;
    console.log('Diff:', diff);
}
Добавлено через 14 минут
53ifbb, я даже немного модифицировал + поднял кол-во итераций до 1 млрд...

Результат:
PHP:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
linear()
Diff: 29.945s.
Diff: 29.303s.
Diff: 29.173s.
Diff: 28.944s.
Diff: 28.957s.
 
functional()
Diff: 76.93s.
Diff: 76.916s.
Diff: 77.095s.
Diff: 76.97s.
Diff: 77.283s.
NodeJS:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
linear()
Diff: 2.941s.
Diff: 1.679s.
Diff: 1.68s.
Diff: 1.676s.
Diff: 1.678s.
 
functional()
Diff: 3.365s.
Diff: 1.681s.
Diff: 1.684s.
Diff: 1.68s.
Diff: 1.684s.
Кадище:
Кликните здесь для просмотра всего текста

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
 
define('ITERATION_COUNT', 1000000000);
 
linear();
linear();
linear();
linear();
linear();
functional();
functional();
functional();
functional();
functional();
 
function linear() {
    echo 'linear()', PHP_EOL;
 
    $start = microtime(true);
    echo 'Start: ', $start, PHP_EOL;
 
    for($i = 0, $math; $i < ITERATION_COUNT; $i++) {
        $math = $i * $i * $i;
    }
 
    $end = microtime(true);
    echo 'End: ', $end, PHP_EOL;
 
    $diff = str_pad((intval(($end - $start) * 1e3) / 1e3), 3, 0, STR_PAD_RIGHT);
    echo 'Diff: ', $diff, 's.', PHP_EOL;
}
 
function functional() {
    echo 'functional()', PHP_EOL;
 
    if(!function_exists('cube')) {
        function cube($n) {
            return $n * $n * $n;
        }
    }
 
    $start = microtime(true);
    echo 'Start: ', $start, PHP_EOL;
 
    for($i = 0, $math; $i < ITERATION_COUNT; $i++) {
        $math = cube($i);
    }
 
    $end = microtime(true);
    echo 'End: ', $end, PHP_EOL;
 
    $diff = str_pad((intval(($end - $start) * 1e3) / 1e3), 3, 0, STR_PAD_RIGHT);
    echo 'Diff: ', $diff, 's.', PHP_EOL;
}
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
const ITERATION_COUNT = 1000000000;
 
linear();
linear();
linear();
linear();
linear();
functional();
functional();
functional();
functional();
functional();
 
function linear() {
    console.log('linear()');
 
    const start = (new Date - 0);
    console.log('Start:', start);
 
    for(var i = 0, math; i < ITERATION_COUNT; i++) {
        math = i * i * i;
    }
 
    const end = (new Date - 0);
    console.log('End:', end);
 
    const diff = ((end - start) / 1e3).toString().padEnd(3,0);
    console.log(`Diff: ${diff}s.`);
}
 
function functional() {
    console.log('functional()');
 
    function cube(n) {
        return n * n * n;
    }
 
    const start = (new Date - 0);
    console.log('Start:', start);
 
    for(var i = 0, math; i < ITERATION_COUNT; i++) {
        math = cube(i);
    }
 
    const end = (new Date - 0);
    console.log('End:', end);
 
    const diff = ((end - start) / 1e3).toString().padEnd(3,0);
    console.log(`Diff: ${diff}s.`);
}
0
Эксперт JS
2037 / 1096 / 409
Регистрация: 29.04.2016
Сообщений: 2,625
24.06.2018, 05:02
Цитата Сообщение от MaxQnei Посмотреть сообщение
SublimeText
У МЕНЯ основная рабочая прога
Цитата Сообщение от Jodah Посмотреть сообщение
Как можно пить кофе без сахара?
Не поверишь, моя бывшая жена пьет именно такой кофе, на мой вопрос: КАК??- говорит что не понимает как его пить с сахаром... увы но большего сказать не могу так как "этим" ответ ограничился, и да- диабета у нее нет.
Цитата Сообщение от MaxQnei Посмотреть сообщение
но давайте не будем из этой дичи, ..., темы делать курилку
не надо быть таким идеалистом почему не покурить?- ведь это же не работа
0
 Аватар для D_Vik
368 / 234 / 68
Регистрация: 19.07.2016
Сообщений: 833
24.06.2018, 05:29
MaxQnei,

Не по теме:


Интересно ,на каком сапоге вы делали тесты ? У меня машина выдает совсем другие результаты.

Да и потом ,яваскрипт выполнился в браузере ,а php на сервере ,чуете разницу ?

0
24.06.2018, 15:33

Не по теме:

Цитата Сообщение от D_Vik Посмотреть сообщение
Да и потом ,яваскрипт выполнился в браузере ,а php на сервере ,чуете разницу ?
NodeJS как бы серверная часть, не?

0
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
24.06.2018, 16:18
MaxQnei, 53ifbb спросил про empty и ==, а Вы сравниваете php и NodeJS
53ifbb,
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$start = microtime(true);
 
$text = '';
 
for($i = 0; $i < 100000000; $i++) {
    if(empty($text)){}
}
 
$end = microtime(true);
$diff = ($end - $start);
echo 'time (empty): '.$diff.'<br>';
 
 
$start = microtime(true);
 
$text = '';
 
for($i = 0; $i < 100000000; $i++) {
    if($text==''){}
}
 
$end = microtime(true);
$diff = ($end - $start);
echo 'time (==): '.$diff.'<br>';
результат:
time (empty): 3.3231248855591
time (==): 3.3538460731506
empty быстрей оказывается.
1
 Аватар для MaxQnei
11 / 11 / 5
Регистрация: 08.06.2015
Сообщений: 48
24.06.2018, 19:02
sasha0012, хммм. По моему вы слукавили...
Я вижу только по одному результату на каждую проверку.

У меня всё таки обратное к вашему:
Code
1
2
3
4
5
6
7
8
9
10
11
12
if(empty(TEXT)) {}
Diff: 3.292s.
Diff: 3.266s.
Diff: 3.27s.
Diff: 3.284s.
Diff: 3.305s.
if(TEXT == '') {}
Diff: 2.872s.
Diff: 2.875s.
Diff: 2.96s.
Diff: 2.89s.
Diff: 2.843s.


Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
 
define('ITERATION_COUNT', 100000000);
 
define('TEXT', '');
 
 
echo "if(empty(TEXT)) {}", PHP_EOL;
linear();
linear();
linear();
linear();
linear();
 
echo "if(TEXT == '') {}", PHP_EOL;
functional();
functional();
functional();
functional();
functional();
 
function linear() {
    $start = microtime(true);
    // echo 'Start: ', $start, PHP_EOL;
 
    for($i = 0, $math; $i < ITERATION_COUNT; $i++) {
        // $math = $i * $i * $i;
        if(empty(TEXT)) {}
    }
 
    $end = microtime(true);
    // echo 'End: ', $end, PHP_EOL;
 
    $diff = str_pad((intval(($end - $start) * 1e3) / 1e3), 3, 0, STR_PAD_RIGHT);
    echo 'Diff: ', $diff, 's.', PHP_EOL;
}
 
function functional() {
    if(!function_exists('cube')) {
        function cube($n) {
            return $n * $n * $n;
        }
    }
 
    $start = microtime(true);
    // echo 'Start: ', $start, PHP_EOL;
 
    for($i = 0, $math; $i < ITERATION_COUNT; $i++) {
        // $math = cube($i);
        if(TEXT == '') {}
    }
 
    $end = microtime(true);
    // echo 'End: ', $end, PHP_EOL;
 
    $diff = str_pad((intval(($end - $start) * 1e3) / 1e3), 3, 0, STR_PAD_RIGHT);
    echo 'Diff: ', $diff, 's.', PHP_EOL;
}
0
 Аватар для edward_freedom
1569 / 1448 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
24.06.2018, 19:13
MaxQnei, а... зачем... сравнивать... с... nodejs,... когда... ему... php... надо?... Можно... и... на... c++... написать,... там... быстрее... будет... чем... на... nodejs... твоем
0
 Аватар для MaxQnei
11 / 11 / 5
Регистрация: 08.06.2015
Сообщений: 48
25.06.2018, 00:20
Цитата Сообщение от edward_freedom Посмотреть сообщение
MaxQnei, а... зачем... сравнивать... с... nodejs,... когда... ему... php... надо?... Можно... и... на... c++... написать,... там... быстрее... будет... чем... на... nodejs... твоем
Кто сравнивал С NodeJS? Я сравал на PHP & NodeJS не для того что бы сравнить скорость между ними.
Если Вам не сложно, сравните с С++ - мне очень интересно.
На NodeJS я сравнил лишь потому что я сначало тест написал на NodeJS. Потом решил поставить php-cli и сравнить на PHP.
В любом случае, тест провёл что бы убедиться в том, что empty() медлененее == '', и собственно я в сотый раз убедился в том что ф-я медленее прямой проверки.
0
 Аватар для edward_freedom
1569 / 1448 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
25.06.2018, 11:59
MaxQnei,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include "stdafx.h"
#include <iostream>
#include <time.h>
using namespace std;
 
void Linear();
int Cube(int n);
void Functional();
 
int ITERATION_COUNT = 100000000;
 
int main()
{
    Linear();
    Linear();
    Linear();
    Functional();
    Functional();
    Functional();
    return 0;
}
 
clock_t StartTime, EndTime;
 
void Linear() {
    cout << "Linear()" << endl;
    StartTime = clock();
    //cout << "Start: " << StartTime << endl;
 
    int math = 0;
    for (auto i = 0; i < ITERATION_COUNT; i++)
    {
        math = i * i * i;
    }
 
    EndTime = clock();
    //cout << "End: " << EndTime << endl;
    cout << "Diff: " << ((double)EndTime - StartTime) / ((double)CLOCKS_PER_SEC) << endl;
}
 
void Functional() {
    cout << "Functional()" << endl;
    StartTime = clock();
    //cout << "Start: " << StartTime << endl;
 
    int math = 0;
 
    for (auto i = 0; i < ITERATION_COUNT; i++)
    {
        math = Cube(i);
    }
 
    EndTime = clock();
    //cout << "End: " << EndTime << endl;
    cout << "Diff: " << ((double)EndTime - StartTime) / ((double)CLOCKS_PER_SEC) << endl;
}
 
 
int Cube(int n) {
    return n * n * n;
}
Code
1
2
3
4
5
6
7
8
9
10
11
12
Linear()
Diff: 0.21
Linear()
Diff: 0.211
Linear()
Diff: 0.206
Functional()
Diff: 2.199
Functional()
Diff: 2.197
Functional()
Diff: 2.192
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.06.2018, 11:59
Помогаю со студенческими работами здесь

Оптимизация кода. Замер времени выполнения части кода.
Доброе утро. Есть желание посмотреть сколько времени занимает выполнение какого-то блока кода/отдельной функции или процедуры/программы...

Запуск кода каждые 5 секунд
Доброе врямя суток наро! Пытался сделать каждые пять секунд запуск кода , но ничего не получилось! У меня на кнопе буттон...

Задержка выполнения кода на несколько секунд
Здравствуйте. Как прервать выполнение кода на некоторое количество секунд? Ну например, вводит пользователь а и в, жмет кнопку, а...

Типы оптимизация: черная оптимизация, серая оптимизация и белая оптимизация
Много много лет назад, на заре становления профессии &quot;оптимизатора&quot; в какой то умной книжке был создан миф. Это миф о цветовой индефикации...

Как заморозить выполнение кода на несколько секунд?
Здравствуйте. Подскажите как приостановить работу кода на определенное время? На Python это реализуется очень просто: import time ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru