Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Node.js (https://javascript.ru/forum/server/6992-node-js.html)

moro 07.02.2010 14:51

да это программа, каждый раз не запускается как php скрипт, для проверки
var sys = require('sys');
var http = require('http');
var a = 1;
http.createServer(function (req, res) {
	res.sendHeader(200, {'Content-Type': 'text/plain'});
	res.sendBody('a: ' + a);
	a++;
	res.finish();
}).listen(8000);

при каждом запросе переменная a будет увеличиваться

Gvozd 07.02.2010 14:58

Цитата:

Сообщение от moro
тестовый код давайте, сделаю

вот, генератор двух одинаковых тестовых кодов
<?

$fp1=fopen('test.php','w');
$fp2=fopen('test.js','w');
fwrite($fp1,"<?\r\n");
fwrite($fp1,"list(\$usec, \$seconds) = explode(\" \", microtime());\r\n");
fwrite($fp1,"\$start = ((float)\$usec + (float)\$seconds);\r\n");

fwrite($fp2,"sys = require('sys');\r\n");
fwrite($fp2,"var start = Date.now();\r\n");
$op=array('+','-','*','/','%');
for($i=97;$i<=122;$i++)
	{
	fwrite($fp1,'$'.chr(rand(97,122))."=0;\r\n");
	fwrite($fp2,'var '.chr(rand(97,122))."=0;\r\n");
	}
$string='$'.chr(rand(97,122)).'='.'$'.chr(rand(97,122)).$op[array_rand($op)].rand(1,1000000).";\r\n";
for($i=0;$i<1000000;$i++)
	{
	$a=chr(rand(97,122));
	$b=chr(rand(97,122));
	$c=$op[array_rand($op)];
	$d=rand(1,1000000).'.'.rand(1,10000);
	$string='$'.$a.'='.'$'.$b.$c.$d.";\r\n";
	fwrite($fp1,$string);
	$string=$a.'='.$b.$c.$d.";\r\n";
	fwrite($fp2,$string);
	}

fwrite($fp1,"list(\$usec, \$seconds) = explode(\" \", microtime());\r\n");
fwrite($fp1,"\$end = ((float)\$usec + (float)\$seconds);\r\n");
fwrite($fp1,"echo \$end - \$start;");
fwrite($fp1,"?>");

fwrite($fp2,"sys.puts((Date.now() - start)/1000);\r\n");

?>

moro 07.02.2010 16:21

заменил rand(97,122) на $i в первом цикле, а то пишет что переменные не определены некоторые.
использовал следующий код для запуска, чтобы измерить полное время парсинга/загрузки/выполнения скрипта
sys = require('sys')
var start = Date.now();
sys.exec('node test.js').addCallback(function(output){//sys.exec('php test.php')
	sys.puts(output);
	sys.puts((Date.now() - start)/1000);
});

результат (в сек)
Код:

node.js 0.024 - время выполения показаное скриптом
        5.5  - время выполения скрипта включая загрузку
php    0.133
        2.43


Gvozd 07.02.2010 17:04

ну, чтож.
Nodejs весьма хорош, чтобы на нем можно было писать
посмотрел список существующих на данный момент модулей
огорчило отсутствие SAX
Самый главный минус вижу, только в низкой степени популяризации.
Мало кто из заказчиков приемлет проект написанный на нем.
но для себя, я думаю смогу найти применение этому инструменту

Kolyaj 07.02.2010 17:42

Цитата:

Сообщение от Gvozd
Самый главный минус вижу, только в низкой степени популяризации.

Это не удивительно, ему года нет.

Цитата:

Сообщение от Gvozd
Мало кто из заказчиков приемлет проект написанный на нем.

Заказчики будут против ещё потому, что тут vds нужен, виртуальный хостинг не покатит.

moro 07.02.2010 18:45

есть libxmljs http://libxmljs.squishtech.com/

Gvozd 07.02.2010 23:08

Цитата:

Сообщение от moro

шикарно

Kolyaj 08.02.2010 18:23

Список модулей растёт не по дням, а по часам, что не может не радовать.

Hivext Technologies 09.02.2010 19:47

Можно добавить node.js в рамках платформы Хайвекст. Соответственно появится выбор между двумя движками Rhino и V8 (node.js) + сервисы и другие возможности станут доступны также в node.js

Kolyaj 09.02.2010 21:15

Hivext Technologies,
а это имеет смысл? Основная фишка -- асинхронность, у вас, я так понимаю, ею не пахнет.


Часовой пояс GMT +3, время: 23:34.