URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 74757
[ Назад ]

Исходное сообщение
"Релиз серверной JavaScript-платформы node.js 0.4"

Отправлено opennews , 16-Фев-11 00:17 
Вышел (http://nodejs.org/v0.4_announcement.html) второй стабильный релиз платформы node.js 0.4 (http://nodejs.org/) (нечетные ветки - экспериментальные, а четные (0.2, 0.4) - стабильные), позволяющей создавать высокопроизводительные сетевые приложение на языке JavaScript. Для обеспечения обработки большого числа параллельных запросов node.js использует для запуска кода асинхронную модель, основанную на обработке событий в неблокирующем режиме и определении callback-обработчиков. По своей сути node.js похож на фреймворки Ruby Event Machine (http://rubyeventmachine.com/) и Python Twisted (http://twistedmatrix.com/), но цикл обработки событий (event loop) в node.js скрыт от разработчика и напоминает обработку событий работающим в браузере web-приложением, при этом функции платформы не ограничены web и поддерживают создание обычных сетевых клиентских и серверных программ.


В качестве способов мультиплексирования соединений поддерживается epoll, kqueue, /dev/poll и select. Для обеспечени...

URL: http://nodejs.org/v0.4_announcement.html
Новость: http://www.opennet.me/opennews/art.shtml?num=29616


Содержание

Сообщения в этом обсуждении
"Релиз серверной JavaScript-платформы node.js 0.4"
Отправлено tallman , 16-Фев-11 00:17 
кажись жаббер сервер вконтакте на этом написан.

"Релиз серверной JavaScript-платформы node.js 0.4"
Отправлено AsphyX , 16-Фев-11 15:07 
Да

"Релиз серверной JavaScript-платформы node.js 0.4"
Отправлено Остров , 16-Фев-11 00:17 
Все хорошо, но событийная модель может тихо взорвать мозг. Уж лучше эрланго-функциональная.

"Релиз серверной JavaScript-платформы node.js 0.4"
Отправлено User294 , 16-Фев-11 00:31 
Судя по графику, nginx kicks an ass :))). Правда он не сервер приложений, но все-таки :)

"Релиз серверной JavaScript-платформы node.js 0.4"
Отправлено anonymous , 16-Фев-11 00:50 
Судя по графику, при количестве подключений больше 300 у ноды проблемы, поэтому авторы постеснялись сделать шкалу пошире.

"Релиз серверной JavaScript-платформы node.js 0.4"
Отправлено Аноним , 16-Фев-11 08:14 
Ага, на экспоненту смахивает

"Релиз серверной JavaScript-платформы node.js 0.4"
Отправлено СуперБизон , 16-Фев-11 11:48 
на графике нода 0.1
а статья уже про ноду 0.4

"Релиз серверной JavaScript-платформы node.js 0.4"
Отправлено User294 , 16-Фев-11 20:33 
> на графике нода 0.1
> а статья уже про ноду 0.4

Хренасе! А это так и надо - написать про 0.4, снабдив статью графиком от 0.1? oO


"Релиз серверной JavaScript-платформы node.js 0.4"
Отправлено Аноним , 16-Фев-11 21:41 
>> на графике нода 0.1
>> а статья уже про ноду 0.4
> Хренасе! А это так и надо - написать про 0.4, снабдив статью
> графиком от 0.1? oO

Там все завязано на libevent, поэтому график в основном её производительность показывает. Скорее всего для 0.4 будет примерно такой-же график, там в плане скорости обработки Hello Word мало что изменилось. Если более сложные программы тестировать различия действительно будут заметны, но тогда некорректно будет с nginx сравнивать.


"Релиз серверной JavaScript-платформы node.js 0.4"
Отправлено nagual , 18-Фев-11 14:38 
> Судя по графику, nginx kicks an ass :))). Правда он не сервер
> приложений, но все-таки :)

Всегда интересно смотреть на сравнение мягкого с пушистым ... :-)))


"Релиз серверной JavaScript-платформы node.js 0.4"
Отправлено nuclight , 21-Фев-11 16:36 
> Судя по графику, nginx kicks an ass :))). Правда он не сервер
> приложений, но все-таки :)

294, nginx же не под GPL, да, впрочем, и node.js тоже. Как ты можешь их юзать?..


"Релиз серверной JavaScript-платформы node.js 0.4"
Отправлено _Vitaly_ , 16-Фев-11 08:40 
Кто бы научил встроенным отладчиком пользоваться?

"Релиз серверной JavaScript-платформы node.js 0.4"
Отправлено cmp , 16-Фев-11 09:24 
Результат теста производительности для выражения
  for(i=0;;i++)
      print(i);
и его аналогов за 2 секунды

bash      30.000
node      33.000
php5     215.000
js     1.091.000 (http://www.ngs.fi/js/)
gcc(с) 2.885.000


"Релиз серверной JavaScript-платформы node.js 0.4"
Отправлено _Vitaly_ , 16-Фев-11 10:19 
Код в студию, чем печатали в ноде.

"Релиз серверной JavaScript-платформы node.js 0.4"
Отправлено Shura , 16-Фев-11 10:50 
А на результаты perl можно посмотреть?

"Релиз серверной JavaScript-платформы node.js 0.4"
Отправлено bav , 16-Фев-11 11:16 
> print(i);

Годный вброс.


"Релиз серверной JavaScript-платформы node.js 0.4"
Отправлено Аноним , 16-Фев-11 14:43 
Дорогие ребята. Сравнивая производителность принтов в различных языках вы не сравниваете языки. Вы сравниваете только принты. Ну и распечатка приведённого листинга заменяет направление на приём к психиатру.

"Релиз серверной JavaScript-платформы node.js 0.4"
Отправлено User294 , 16-Фев-11 20:39 
> bash      30.000
> node      33.000
> php5     215.000
> js     1.091.000 (http://www.ngs.fi/js/)
> gcc(с) 2.885.000

Вы имхо проверили в основном скорость вывода текста в различных языках нежели что-то еще :). Это конечно тоже показатель, но достаточно странный, особенно если вы хотели проверить скорость выражений а не скорость того или иного I/O :)


"Релиз серверной JavaScript-платформы node.js 0.4"
Отправлено cmp , 16-Фев-11 21:57 
Да мне без разницы как функция принт парсит аргумент, результат работы выражения, тоже не цель работы программы, по факту замера скорости получен результат, на основе которого я сделал вывод.

Мне очень нравится JavaScript, он в максимальной степени предоставляет свободу действий, которую я могу сравнить только с С, в купе с легковесностью. - С радостью заменил бы им и
стандартные инициализационные системные скрипты и php под httpd, но с такой производительностью это не имеет смысла.

ngs/js показал себя с лучшей стороны, размер исполняемого файла - 300кб, по-этому на нагруженной машине инициализация программы почти не заметна, (по сравнению с тем же php, где размер "ехешника" 10М). Единственная проблема, в том, что проект уже года 3 не развивается, зато эти монстоподобные аналоги питонов плодятся как на дрожжах.


"Релиз серверной JavaScript-платформы node.js 0.4"
Отправлено cmp , 16-Фев-11 21:14 
>Файл test-r.sh

#!/bin/bash

function zzz() {
  setsid ./killcat 2 > /dev/null 2>&1 &
  cat > /dev/null 2>&1
  cat | grep -m 1 -E '[0-9]....*[0-9]'
}

t1='node test.js'
t2='php -f test.php'
t3='./test.sh'
t4='js ./test2.js'
t5='./test.bin'

for x in 0 1 2 3 4 5 6 7 8 9; do
  $t1 2>/dev/null | zzz 2>/dev/null
done


>файл test.js

for(var i = 0;; i++)
  console.log(i);

>файл test.php

<?php
for($i = 0;; $i++)
  echo $i."\n";
?>

>файл test.sh

#!/bin/bash

i=0
while true; do
  echo $i
  i=$((i+1))
done

>файл test2.js

for(var i = 0;; i++)
  print(i);

>файл test.c, для gcc -O2 test.c -o test.bin

#include <stdio.h>

int main(void)
{
  unsigned long long i = 0;
  while(1)
    printf("%lld\n", i);
  return 0;
}


>файл killcat

#!/bin/bash

sleep $1
killall cat

> ========================================
> Сравнивая производителность принтов в различных языках вы не сравниваете языки. Вы сравниваете только принты.

1) Принт часть языка, значит сравнивается, как Вы правильно заметили, не весь язык, но часть очень часто используемая, и если ее производительность хромает, то это !повод думать, что и другие части не идеальны.

2) Проведите свой тест, более "чистый", уверен, что результат будет аналогичным, потому что разница НЕ в процентах а в порядках.


"Релиз серверной JavaScript-платформы node.js 0.4"
Отправлено _Vitaly_ , 17-Фев-11 02:27 
Даже с учетом тестирования вывода, тест совсем косячный.

Замените для начала console.log() на util.puts()


"Релиз серверной JavaScript-платформы node.js 0.4"
Отправлено cmp , 17-Фев-11 07:39 

ReferenceError: util is not defined

На роль бета-тестера не претендую, однако для самых лютых 'анонимусов', для

for(y=0;y<100;y++)
for(x=0;x<300;x++)
  ;

time node test.js -- real 0m0.106s
time js test.js -- real 0m0.012s
time php -f test.php -- real 0m0.270s

bash по понятным причинам с теста снят, впрочем только у меня возникает чувство, что эти циферки описывающие сферических цыплят подозрительно коррелируют с размером исполняемых файлов и кол-м подгружаемых библиотек?


"Релиз серверной JavaScript-платформы node.js 0.4"
Отправлено _Vitaly_ , 17-Фев-11 08:15 
util через require подключить надо, функция там. Посмотрите по документации. Либо код напрямую стырить:

process.stdout.write(...)

Консольный логер, который вы вызывали, сначала форматирует результат. В других языках вы дергали нативный вывод сразу, а у ноды вызвали намного больше жабаскрипта перед записью.


"Релиз серверной JavaScript-платформы node.js 0.4"
Отправлено nuclight , 21-Фев-11 16:37 
> js     1.091.000 (http://www.ngs.fi/js/)

404 :(


"Релиз серверной JavaScript-платформы node.js 0.4"
Отправлено Аноним , 16-Фев-11 11:03 
@автор_новости: udns уже давно заменили на c-ares

"Релиз серверной JavaScript-платформы node.js 0.4"
Отправлено Cyber , 16-Фев-11 15:19 
джава скрипт как аналог php - извращенцы...

"Релиз серверной JavaScript-платформы node.js 0.4"
Отправлено terr0rist , 16-Фев-11 15:38 
извращенство - это ПХП.

"Релиз серверной JavaScript-платформы node.js 0.4"
Отправлено Аноним123321 , 16-Фев-11 15:54 
> ...передают результат своей работы обратно через неименованный канал (pipe).

даже на венде? :-)

так и представил: \\.\pipe\tA8hZcYw... :-)


"Релиз серверной JavaScript-платформы node.js 0.4"
Отправлено Аноним , 16-Фев-11 17:51 
>> ...передают результат своей работы обратно через неименованный канал (pipe).
> даже на венде? :-)
> так и представил: \\.\pipe\tA8hZcYw... :-)

речь про _неименованный_ канал


"Релиз серверной JavaScript-платформы node.js 0.4"
Отправлено Аноним12233 , 16-Фев-11 18:50 
...приоткрою завесу "великой" тайны -- неименовынные каналы -- в кривопридуманной венде это именовынные каналы но со случайным именем :-)

а иначе небыло бы такого "удовольствия" писать под венду программульки.. еслибы не её извращённое API :-) :-D


"Релиз серверной JavaScript-платформы node.js 0.4"
Отправлено nagual , 18-Фев-11 16:38 
> ...приоткрою завесу "великой" тайны -- неименовынные каналы -- в кривопридуманной венде
> это именовынные каналы но со случайным именем :-)
> а иначе небыло бы такого "удовольствия" писать под венду программульки.. еслибы не
> её извращённое API :-) :-D

Небудет оно под венду работать так же хорошо как под никс ...