| 
 Лично мне всегда больше нравился путь PHP, когда скопировал файлы рядом и подключил их, нежели путь того же Python, когда сначала нужно что-то установить. | 
| 
 Цитата: 
 но, это можно обойти при желании. в нем есть способы для реализации колбеков, и создания простейшего событийного механизма я специализируюсь в написании парсеров и граберов на PHP, и мною был сделан несложный модуль(базирующийся на multi-CURL, но легко переделываемый под любую другую асинхронность) из нескольких классов, который позволяет посылать одновременно несколько запросов, и обрабатывать по мере прихода. кодирование сводится к созданию пары новых классов наследующих базовые: для контроля очереди и количества потоков, и для конкретных запросов(с двумя основными методами-создать запрос, и обработать пришедший) короче, было бы желание, можно и из веревки застрелится)))) на сим я извиняюсь за офтопик, и ухожу из темы. если интересна моя тема, то прошу в личку, или новую тему | 
| 
 Цитата: 
 Опять же, в стандартном режиме работы в PHP на каждый запрос новый поток. Поэтому пока, например, асинхронно читается файл с диска, потоку, по большому счету, делать нечего. Node.js же в это время обрабатывает другие запросы. | 
| 
 Цитата: 
 К примеру, Ruby имеет большую стандартную библиотеку (хотя, всё это могло бы быть написано чисто на Руби, а сам Руби был бы небольшим ядром; кстати, где-то недавно видел финальный драфт спецификации по Руби, не знаю, описывались ли там все built-in модули или нет). Python тоже имеет немалую built-in библиотеку и часть py-built-in. Цитата: 
 Цитата: 
 | 
| 
 Цитата: 
 Цитата: 
 на каждый запрос всегда создается либо отдельный поток(модуль), либо отдельный процесс(CGI) fast-CGI (хотя он не совсем в тему к асинхронным возможностям Node.js) в PHP насколько я знаю не реализован и опция такая поставлена "для заглушки" НО! Пока конкретный экземпляр скрипта простаивает в ожидании данных из файла, остальные потоки/процессы продолжают обрабатывать запросы, что обеспечивается многопоточностью самой ОС/веб-сервера Использовать же один процесс для обработки нескольких запросов вперемешку(а не последовательно как в fast-CGI), считаю плохой идеей, по-крайней мере если нету эффективного инструмента для отделения глобальных переменных от переменных индивидуальных для каждого запроса. в любом случае, использование асинхронности в PHP является достаточно нетипичным, и если уж используется, то как правило пока идет чтение файла(ов), можно делать(и нужно) какое-то полезное действие(обработка прочитанных блоков,действия не зависящие от файла) | 
| 
 Цитата: 
 Цитата: 
 Цитата: 
 
// созданные здесь переменные будут глобальными для всех запросов
http.createServer(function() {
    // созданные здесь переменные будут локальными для каждого запроса.
})
А вот обмен данными между запросами в PHP уже можно реализовать только через базу/файлы.Порог входа, разумеется, получается выше чем у PHP, но зато возможностей гораздо больше. | 
| 
 Цитата: 
 поэтому как правило БД и файлов вполне достаточно тем не менее, можно использовать для этого механизм семафоров и общей памяти, хотя не разу им не пользовался, и не в курсе, насколько он эффективен HEAP-таблицы вполне пригодны для обмена переменными также в случае CGI можно попытаться писать в stdin-поток других экземпляров скриптов, но не уверен | 
| 
 А мне вот интересно. Simon Willison приводит бенчмарк для сервера, отдающего "Hello, World" через 2 секунды  
http.createServer(function(req, res) {
  setTimeout(function() {
    res.sendHeader(200, {'Content-Type': 'text/html'});
    res.sendBody('<h1>Hello World</h1>');
    res.finish();
  }, 2000);
}).listen(8080);
У кого-нибудь есть под рукой инструменты, чтобы проверить PHP в той же ситуации?<?php sleep(2); echo "Hello, World"; | 
| 
 проверял на mac book pro: node.js Requests per second: 49.72 [#/sec] (mean) php Requests per second: 38.97 [#/sec] (mean) | 
| 
 moro, спасибо, результаты радуют. Цитата: 
 | 
| Часовой пояс GMT +3, время: 10:42. |