Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Ruby: Общие вопросы > Ruby vs PHP


Автор: DikShv 19.1.2010, 12:59
Вот тут задался вопросом что быстрее Ruby или PHP и решил перевести свой небольшой рабочий скрипт на Ruby и посмотреть.

Суть скрипта собрать данные с 3 MySQL сервер и записать на 4 под cron

Тест проводился на artaos (Debian 5.0)

Вот мои результаты
user posted image
Разница PHP/Ruby
Время: 1.469304 (PHP)
CPU: 6.8% (PHP)
Память: 2.4 (Ruby)

Выдаваемый результат скрипта
Цитата
Отчет по tpeodat: Выбрано(11101), Записано(11099), Не записано(2)
Отчет по tpeo: Выбрано(11101), Записано(11099), Не записано(2)
Отчет по tfuc: Выбрано(7), Записано(7), Не записано(0)
Отчет по tgrp: Выбрано(687), Записано(687), Не записано(0)
Отчет по trup: Выбрано(518), Записано(518), Не записано(0)
Отчет по tspe: Выбрано(54), Записано(54), Не записано(0)


Везде пишут что Ruby быстрее но судя по тесту не верно. Так же пишут что Ruby 1.9 быстрее 1,8 Но 1,9 поставить пока не получилось. Так же попробую заменить некоторые циклы и глянуть)))

Автор: Simpliest 19.1.2010, 13:30
Во-первых, маешься дурью.

Во-вторых, http://shootout.alioth.debian.org/u32q/benchmark.php?test=all&lang=php&lang2=yarv

В-третьих, в реальных приложениях все может быть с точностью до наоборот.

Автор: UniBomb 19.1.2010, 13:31
Цитата(DikShv @  19.1.2010,  13:59 Найти цитируемый пост)
Так же пишут что Ruby 1.9 быстрее 1,8 Но 1,9 поставить пока не получилось.

А ведь есть ещё JRuby и IronRuby, производительность которых всё же выше чем у 1,8. 

Автор: Simpliest 19.1.2010, 13:56
Парни, забейте на производительность, пока вы в нее не упираетесь в реальном приложении.

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

А как оно там будет работать - это уже совсем другой вопрос. Для этого есть профилировщики и рефакторинг.

Автор: DikShv 19.1.2010, 13:58
Цитата(Simpliest @ 19.1.2010,  13:30)
Во-первых, маешься дурью.

Во-вторых, http://shootout.alioth.debian.org/u32q/benchmark.php?test=all&lang=php&lang2=yarv

В-третьих, в реальных приложениях все может быть с точностью до наоборот.

А это более чем реальный скрипт который работает каждый день))

Автор: Simpliest 19.1.2010, 14:05
Цитата(DikShv @  19.1.2010,  12:58 Найти цитируемый пост)
А это более чем реальный скрипт который работает каждый день)) 

Я рад за тебя.
А что говорит профайлинг? Какой участок кода в этом скрипте выполняется дольше всего?

Автор: DikShv 19.1.2010, 14:08
Цитата(Simpliest @ 19.1.2010,  13:56)
Парни, забейте на производительность, пока вы в нее не упираетесь в реальном приложении.

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

А как оно там будет работать - это уже совсем другой вопрос. Для этого есть профилировщики и рефакторинг.

Страница сгенерирована за 60.192762 секунд !

Вот и учусь, но пока я вижу обратную сторону при том что скрипт на РНР далеко не оптимизирован и сам сервер тоже.
И код пока тоже немного длинее чем на РНР

Вот и хочу что бы подсказали что да как проста по Ruby  чистому очень мало информации по правильному коду все в основном по RoR

в дальнейшем попробую и 1.9 как настрою и JRuby с IronRuby

но вот с начало нужно понять в каких случаях что лучше РНР или Ruby тем более что в РНР у меня 6 лет стажу и при желание тот скрипт что выше можно чуть ли не в 2 раза снизить

Скрипт на Ruby переписал под DBI и результат еще более плачевный

Добавлено через 1 минуту и 35 секунд
Цитата(Simpliest @ 19.1.2010,  14:05)
Цитата(DikShv @  19.1.2010,  12:58 Найти цитируемый пост)
А это более чем реальный скрипт который работает каждый день)) 

Я рад за тебя.
А что говорит профайлинг? Какой участок кода в этом скрипте выполняется дольше всего?

а по подробнее проста с Ruby я 3 день))

а само дольше тут 

Отчет по tpeodat: Выбрано(11101), Записано(11099), Не записано(2)
Отчет по tpeo: Выбрано(11101), Записано(11099), Не записано(2)

Автор: Simpliest 19.1.2010, 14:15
Цитата(DikShv @  19.1.2010,  13:08 Найти цитируемый пост)
а по подробнее проста с Ruby я 3 день))

Но с PHP ведь 6ть лет? (я между прочим лишь немногим больше года).


Цитата(DikShv @  19.1.2010,  13:08 Найти цитируемый пост)
Отчет по tpeodat: Выбрано(11101), Записано(11099), Не записано(2)
Отчет по tpeo: Выбрано(11101), Записано(11099), Не записано(2) 

Это говорит что дольше всего происходит работа с БД.
Какой процент времени от всего приложения это занимает?

Сделай профайлинг для PHP и ты увидишь практически такую же картину и те же проценты.

Автор: DikShv 19.1.2010, 14:25
я знаю что и там больше 50% всего времени в том месте тут и профайлинг не нужен и вообще эта чуш не нужна вопрос в другом.
как правильнее и оптимизировано написать скрипт Ruby что бы он работал хотя бы на 2 сек быстрее чем аналог на php

способы написания вообще

если честно очень не понравилась работа с массивами и переменными в целом))

ну а вообще синтаксис понравился))

Автор: Simpliest 19.1.2010, 14:28
Цитата(DikShv @  19.1.2010,  13:25 Найти цитируемый пост)
профайлинг не нужен и вообще эта чуш не нужна 

Вопросов больше не имею.
Продолжайте быдлокодить.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)