Pull to refresh
@MaZaAaread⁠-⁠only

User

Send message
Если сомневаешься, есть только 1 правильный вариант, взять и проверить самому ;)
Во первых, с чего вы взяли, что эти языки будут быстрее PHP в конкретных 2х примерах которые я привел? Вы замеряли производительность? Если нет, то можете написать код на любом из этих языков, я запущу его на своей машине и скажу результат.
Во вторых, я решил сравнить именно эти 2 очень популярных языка и не вижу в этом ничего плохого.
В третьих, если мне нужна реальная скорость, я напишу это на СИ) Ибо, зачем прибегать к полумерам в виде C#, Java, Scala, Go и т.п. в таком случае)
Какая разница? Суть одна, быстрее испытуемый А или испытуемый Б. Я например не люблю долгую задержку ответов от сервера, меня прям бесит, поэтому для меня важна скорость работы того, что я пишу.
Напиши как угодно и с любыми хаками, если это поможет обогнать другой язык, то это просто супер.
Прежде чем начать кодить, сравни производительность рендеринга php с серверным рендерингом реактка. И было бы интересно узнать результат, т.к. эти технологии я не сравнивал сам.
Разные приложения? приложения абсолютно одинаковые, разных только 2 языка, которые реализуют выполнение одной и той же работы.
Давай так, посмотри код для теста REST API для Node.js, перепиши его так, чтобы результат приблизился к ПХП. И приложи его сюда, в комментарии. Я замерю скорость и скажу результат, если твой код окажется быстрым, то я только буду рад, я люблю и Node.js и PHP, поэтому не отношусь предвзято к какому-то из них, а основываюсь только на экспериментах и фактах.
Вы возможно не знаете что в PHP 1 запрос = 1 процесс? Т.е. с ростом кол-ва ядер процессора, будет расти производительность, как у пхп, так и у ноды(запущеной в кластере само собой, она ведь однопоточная)) Какие мы можем сделать выводы? Результаты будут такими же, только циферки увеличатся. Вам никто не мешает доказать обратное(прежде всего самому себе). Арендуйте многоядерный сервер, установите Nginx, PHP 7.1.1-FPM и Node.js 7.7.1, скопируйте из репозитория мой код, прогоните тесты и увидите результат сами. Лучше проверить на практике, чем проводить эксперименты в уме. Конфиг ПХП сейчас добавлю в репозиторий
Как я и говорил выше, когда писал вопросы и ответы, с пулом результат хуже, а конкретно лучшее что чего мне удалось добиться за 10 прогонов это 380 запросов в секунду…

Кусок кода
const mysql = require('mysql2');
const Promise = require('bluebird');
const http = require('http');

const pool = mysql.createPool({
    host: 'localhost',
    user: 'root',
    password: 'pwd',
    database: 'test',
    connectionLimit: 100
});
pool.query = Promise.promisify(pool.query);

function generatePage(res) {
    const time = process.hrtime();
    pool.query('SELECT * FROM `users`')
        .then(results => {
            let response = JSON.stringify(results);
            const diff = process.hrtime(time);
            const generationTime = diff[1] / 1000000;
            response += `<div><b>Страница сгенерирована за: ${generationTime}ms</b></div>`;
            res.end(response)
        })
        .catch(err => console.log(err))
}


connectionLimit пробовал ставить разный и 10 и 50 и 100 и 1000. Лучший результат — 380 запросов в секунду…
Результат ещё хуже, за 10 прогонов подряд лучший результат — 150 запросов в секунду…

Тесть вас не волнует скорость работы приложения? Главное чтобы язык был модный и новый?

Любая постобработка быстрее в пхп, поэтому без разницы, все равно пхп обгонит)
Да, я все всех обманываю. Только берешь мой код, запускаешь, смотришь цифры и убеждаешься в том, что тесты не врут
Да да да, конечно же.
Работает медленнее чем пхп) а пхп 7.1 быстрее чем 7.0 значительно)
Завтра напишу какой результат по скорости с такой реализацией
https://habrahabr.ru/post/320670/ вот статья
С массивами пхп работает в разы быстрее, я уже проверял
Nginx отправляет заголовки отличные от тех что отправляет модуль http в ноде, вот и все дела
Кластер запускается когда процессор многоядерный. Тоже самое касается и Nginx, где worker_processes рекомендуется ставить = числу ядер. А у меня процессор одноядерный. Тем более, я само собой запускал ноду в кластере и результат — гораздо хуже. Т.к ядро у меня одно.

Information

Rating
Does not participate
Registered
Activity