Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 06.02.2010, 19:46
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Так он быстрей чем PHP или я что-то не так понял?
Ответить с цитированием
  #22 (permalink)  
Старый 06.02.2010, 20:58
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Ну я в V8 не сомневался, вопрос был насколько быстрей.
Ответить с цитированием
  #23 (permalink)  
Старый 07.02.2010, 01:03
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от Kolyaj
Ну я в V8 не сомневался, вопрос был насколько быстрей.
а теперь давайте проведем нормальные бенчмарки?)))
голый hello-world с задержкой-не показатель
основные направления:
1)вывод "голого" HTML
2)задача на парсинг кода(мегабайт кода с одинаковыми вычислениями)
3)голые циклы
4)задача на скорость простейших арифметических вычислений(цикл с небольшим количеством вычислений)

и оценивать надо не количеством запросов в секунду(это во многом зависит еще и от апача), а продолжительностью выполнения, и потраченными CPU

Последний раз редактировалось Gvozd, 07.02.2010 в 14:18.
Ответить с цитированием
  #24 (permalink)  
Старый 07.02.2010, 10:00
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Gvozd
а теперь давайте проведем нормальные бенчмарки?)))
Никто не против.
Ответить с цитированием
  #25 (permalink)  
Старый 07.02.2010, 10:39
Интересующийся
Отправить личное сообщение для moro Посмотреть профиль Найти все сообщения от moro
 
Регистрация: 18.11.2009
Сообщений: 10

sys = require('sys');
var start = Date.now();
for(var i = 0; i < 10000000; i++){
	a = 0;
	b = a + 100;
	c = b*b;
	d = c + 123456;
	e = d/987;
	f = e*e;
}
sys.puts((Date.now() - start)/1000);

list($usec, $seconds) = explode(" ", microtime());
$start = ((float)$usec + (float)$seconds);
for($i = 0; $i < 10000000; $i++){
	$a = 0;
	$b = $a + 100;
	$c = $b*$b;
	$d = $c + 123456;
	$e = $d/987;
	$f = $e*$e;
}
list($usec, $seconds) = explode(" ", microtime());
$end = ((float)$usec + (float)$seconds);
echo $end - $start;

Запускалось из командной
средний результат:
node.js - 0.57
php - 3.71
Не знаю как точно оценить использование cpu, но когда я увеличивал размер цикла, чтобы успеть посмотреть, монитор показывал примерно одинаковые проценты использования cpu.
Вместо a = 0, ставил a = i, результаты примерно такие же:
0.64
3.96

Последний раз редактировалось moro, 07.02.2010 в 10:50.
Ответить с цитированием
  #26 (permalink)  
Старый 07.02.2010, 14:19
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от moro
средний результат:
node.js - 0.57
php - 3.71
очень даже замечательно
Сообщение от moro
Не знаю как точно оценить использование cpu
я знаю как под *NIX оценить CPU для PHP
используется ф-ция getrusage(), являющаяся интерфейсом одноименной ф-ции. не знаю, есть ли такая фишка в node.js

moro,
могу я вас попросить провести также и первые три теста?
мне интересен их результат . особенно второго
Ответить с цитированием
  #27 (permalink)  
Старый 07.02.2010, 14:27
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Gvozd
2)задача на парсинг кода(мегабайт кода с одинаковыми вычислениями)
А вот это что имеется в виду? Парсинг js(php)-кода? Так для Node это не актуально, он единожды парсится, а не при каждом запросе.
Ответить с цитированием
  #28 (permalink)  
Старый 07.02.2010, 14:31
Интересующийся
Отправить личное сообщение для moro Посмотреть профиль Найти все сообщения от moro
 
Регистрация: 18.11.2009
Сообщений: 10

тестовый код давайте, сделаю
Ответить с цитированием
  #29 (permalink)  
Старый 07.02.2010, 14:32
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от Kolyaj
он единожды парсится
это наверняка?
то есть он при старте парсится в байт-код, который уже дальше и выполняется?

Последний раз редактировалось Gvozd, 07.02.2010 в 14:58.
Ответить с цитированием
  #30 (permalink)  
Старый 07.02.2010, 14:38
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Gvozd
то есть он при старте парсится в байт-код, который уже дальше и выполняется?
Не совсем. Скрипт на Node -- это приложение, отвечающее на запросы. Сам себе сервер. В случае PHP апач отвечает на запросы и при надобности загружает/запускает PHP, Node всё делает сам. Т.е. когда приходит запрос, ничего не парсится и не запускается, всё уже запущено.

Поэтому для удобной отдачи статики перед Node не помешает nginx, ну или придётся писать отдельный контроллер для статики, что лишнее, т.к. со статикой прекрасно справляется nginx.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск