Запуск PEAR канала Limb 3.x: pear.limb-project.com

BeGe

Вождь Апачей, блин (c)
Автор оригинала: pachanga
Не кажется ли тебе, что ты сам себе немного противоречишь? ;)
Та вот проблема в том, что я знаю что Лимб был очень медленным. И у меня есть предположения что он таким и остался, по этому он меня не интересует. Вот думал что при новой PR новости спросить как там тесты и скорость работы. А получил вот такой вот интерестный ответ. Ну что ж пока остаёмся каждый при своём мнении.
 

BeGe

Вождь Апачей, блин (c)
pachanga поиск по форму с количеством файлов на инклуд, которые отказывалась обрабатывать OS by default?

Или сделать замеры на основе xdebug или ZendProfiler с абсолютным временем работы скрипта по рендерингу одной страницы ? (одна модель из конструктора, которая может быть собранной разными способами).
 

pachanga

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

Vladson

Сильнобухер
Автор оригинала: pachanga
Я бы очень не хотел захламлять этот тред техническими деталями
Зачем тогда этот тред ?

Без технических деталей (хотя бы самых основных и хотя бы приблизительно) ваш Limb это кот в мешке, а новость равносильна тому что написать:
На хомячке васи пупкина выложили наброски альфа-версии скрипта который не понятно что делает и не понятно кому вообще нужен.
 

whirlwind

TDD infected, paranoid
Vladson Уважаемый, Вы вообще на сайте LIMB были?

Не понимаю я камрадов, которые начинают разговор "ваша система медленная" или тому подобные. По вашему мнению тут собралась куча идиотов, которая пишет неизвестно что и неизвестно для кого? Не устраивает скорость? Ну пишите свой быстрый сервер и т.п. Те заказчики, которые не хотят нанимать дорогого программиста что бы он им полгода ваял сервер, потом еще полгода реализовывал бизнес-логику, потом еще полгода исправлял баги и т.п., те обращаются к таким парням как pachanga. Если какойто ПП существует, значит есть предпосылки для этого, вам не кажется?

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

.des.

Поставил пиво кому надо ;-)
Vladson не передергивайте.

С таким подходом можно подойти ко всем cmf/cms. Складывается впечатление, что Вы не имеете представления о чем рассуждаете.
Проект Limb развивается не один год и не одним человеком, и уж точно не на коленке на хомячке васи пупкина

Если нечего сказать по существу, можно просто промолчать.

Этот тред точно не для деталей реализации Limb. У проекта есть свой сайт и свой форум. В котором с Вами с радостью подискутируют о технических деталях.

Для справки:
http://www.zend.com/php5/contest/contest.php?id=89&single=1
http://www.zend.com/php5/contest/top_rated.php

Причем обратите внимания на дату. С того времени Limb чуть ли не переписан заново.

-----------------------------------

Конкретно к разработчикам Limba.
У Bege на самом деле довольно интересная мысль - реализовать некую законченную модель, при помощи которой каждый желающий может протестировать Limb.
У Вас же был "пример пустого проекта" (может есть и сейчас)? Почему бы не создать тестовый проект или набор тестовых проектов. Дело в лишней паре рук? Языком все горазды :)

Проект такой-то, работает на таком-то железе.
При этом 1 страница - аля солянки, последних 5 новостей, последня статья ещё какие-то блоки. следующий шаг лог пользователя, дальше страница с большой выборкой из базы данных тут мы "рисуем" Gridobject.
Как раз выборок из базы лучше избежать, точнее база должна быть минимальна. А в тестах cmf вообще без коннекта к базе. Так как большая выборка из базы в реальных приложениях эта задача действительно целиком и полностью ложится на девелопера.
На мой взгляд для тестов таких пакетов как "active record" в базе хватит нескольких сот объектов.

На мой взгляд правильный подход к такому тестированию у fishera
http://alexeyrybak.com/blitz/blitz_ru.html#bench

1 тест - "hello, world!"
2 тест конкретная задача решаемая неким стандартным набором пакетов ("hello, world!" также должен меряться этим набором пакетов)


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


Естественно у разработчиков есть дела важнее, чем написание этих тестов :), но пока такого сравнительного анализа не будет, будут и вопросы и сомнения.
Более того результаты тестирования будут отличным материалом для популяризации.

-~{}~ 20.12.06 06:52:

Автор оригинала: BeGe Та вот проблема в том, что я знаю что Лимб был очень медленным.
Очень медленным он не был.. он просто не был быстрым...
Очень медленным был ezPublish который у меня генерил 400МБ данных профайлера от единичного request.
У меня наверное руки кривые, но я не представляю как ezPublish можно использовать по прямому назначению - "publish".
 

Vladson

Сильнобухер
Не понимаю я камрадов, которые начинают разговор "ваша система медленная" или тому подобные.
Я ничего подобного не говорил
Вам тут предложили познакомиться с бесплатным продуктом.
Не предложили а пытаются навязать ! (текст именно навязчивый)
Так хоть объясните зачем мне с ним знакомиться, у него выше скорость ? надёжность ? круче имя ? тем что не готова документация ?
В тексте топика не разу не видел ни намёка на на то чем он лучше любого из своих аналогов (в том числе и от версии васи пупкина)
 

.des.

Поставил пиво кому надо ;-)
Я уже чувствую себя неудобно, что про скорость сказал. Теперь в каждом посте, знакомы люди или не знакомы с проектом упоминается "скорость".

Не предложили а пытаются навязать ! (текст именно навязчивый)
Vladson Вы случайно не заметили, что Вам одному так кажется?
 

zerkms

TDD infected
Команда форума
Vladson
навязать - это отправить лично вам почту или позвонить на ваш лично телефон. если вам не интересна тема - вы закрываете браузер (крестик сверху справа) и читаете про "headers already sent" далее
 

pachanga

Новичок
Автор оригинала: .des.
Конкретно к разработчикам Limba.
У Bege на самом деле довольно интересная мысль - реализовать некую законченную модель, при помощи которой каждый желающий может протестировать Limb.
У Вас же был "пример пустого проекта" (может есть и сейчас)? Почему бы не создать тестовый проект или набор тестовых проектов.
Хорошо, с развернутой аргументацией не поспоришь ;) Как вариант, я думаю протестировать CRUD приложение и поместить результаты как у нас на форуме, так и здесь. Всех устроит?(только придется подождать)
 

griha

Новичок
Хорошая новость, то что Limb 3.x устаканился. Теперь, надеюсь что глобальные рефакторинги закончатся. Ждем хорошей документации, т.к ее очень не хватает, все таки приложение CRUD не очень сложное и не расскрывает всех достоинств LIMB 3.x, а из тестов подчерпнуть все - очень сложно.
 

.des.

Поставил пиво кому надо ;-)
Автор оригинала: pachanga
Хорошо, с развернутой аргументацией не поспоришь ;) Как вариант, я думаю протестировать CRUD приложение и поместить результаты как у нас на форуме, так и здесь. Всех устроит?(только придется подождать)
На мой взгляд стабилизация API приоритетнее всего.
Думаю CRUD приложение хороший вариант. Так как желающие могут воспроизвести его на других платформах и сравнить результаты.
 

BeGe

Вождь Апачей, блин (c)
Автор оригинала: pachanga
Хорошо, с развернутой аргументацией не поспоришь ;) Как вариант, я думаю протестировать CRUD приложение и поместить результаты как у нас на форуме, так и здесь. Всех устроит?(только придется подождать)
Я ж не просто так писал насчёт тестов. Потому что знаю, что есть уже готовые проекты реализованные на Limb 2.x - думаю глупо будет это отрицать. В скором времени должны появится проекты и на Limb 3.x - если же их нету.

Если взять за основу - что поменялись только вещи внутри системы, то есть интерфейс к шаблонам, структуре сайта и баз данных не изменились - то сделать тестовое приложение не составит труда, базируясь на старых приложениях. А если я ошибаюсь - тогда нам надо будет просто подождать нового проекта на Limb 3.x - и посмотреть нагрузочные тесты.

Даже если проект идёт и под NDA - то шаблоны и базу можно набить случайными значениями - написать рандом генератор ?

Ждёмс.

P.S.
Думаю на этих выходных сделать профайл Limb2.x (который как я говорил был медленным).
 

pachanga

Новичок
Автор оригинала: BeGe
Если взять за основу - что поменялись только вещи внутри системы, то есть интерфейс к шаблонам, структуре сайта и баз данных не изменились - то сделать тестовое приложение не составит труда, базируясь на старых приложениях. А если я ошибаюсь - тогда нам надо будет просто подождать нового проекта на Limb 3.x - и посмотреть нагрузочные тесты.
Limb 2.x и 3.x это настолько разные вещи, что ни о какой совместимости проектов 2.x под 3.x даже и речи идти не может.

Как раз завтра я ставлю Gentoo с PHP-5.1.6 на новую машину в офисе, вот на ней и погоняю CRUD.

P.S.
Думаю на этих выходных сделать профайл Limb2.x (который как я говорил был медленным).
Сизифов труд, т.к к предмету обсуждения 2.x никакого отношения не имеет, хотя если тебе больше делать нечего в выходные...
 

BeGe

Вождь Апачей, блин (c)
Автор оригинала: pachanga
Сизифов труд, т.к к предмету обсуждения 2.x никакого отношения не имеет, хотя если тебе больше делать нечего в выходные...
Тогда Вам стоит читать внимательнее, о том что пишут другие.
Нет так нет.
 

pachanga

Новичок
Провели самое базовое тестирование отработки начальной страницы без обращения к БД CRUD приложения. Тесты проводили подобно тому, как это делал Paul Jones.

На сервер было установлено следующее ПО:

1) Gentoo-2006.1, kernel-2.6.18
2) Apache-2.0.58(mpm-prefork)
3) mod_php-5.1.6 + APC-3.0.12p2(shm_size=30, stat=on)

В качестве сервера использовали AMD Athlon64 c 1GB памяти и винчестером Barracuda 7200 SATA:
Код:
$ cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 47
model name      : AMD Athlon(tm) 64 Processor 3500+
stepping        : 2
cpu MHz         : 2210.169
cache size      : 512 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr 
pge mca cmov pat pse36 clflush mmx fxsr sse 
sse2 syscall nx mmxext fxsr_opt lm 3dnowext 
3dnow up pni lahf_lm ts fid vid ttp tm stc
bogomips        : 4423.98
Отработка статики hello.html(выводится единственная строка "hello world") :

Код:
$ ab2 -c 10 -t 60 [url]http://localhost/hello.html[/url]

Document Length:        13 bytes
Concurrency Level:      10
Time taken for tests:   10.946537 seconds
Complete requests:      50000
Failed requests:        0
Write errors:           0
Total transferred:      12150243 bytes
HTML transferred:       650013 bytes
Requests per second:    4567.65 [#/sec] (mean)
Time per request:       2.189 [ms] (mean)
Time per request:       0.219 [ms] (mean, across all concurrent requests)
Transfer rate:          1083.90 [Kbytes/sec] received
Отработка простого PHP скрипта, выводящего на экран "hello world"(echo "hello world";)

Код:
$ ab2 -c 10 -t 60 [url]http://localhost/hello.php[/url]

Document Length:        12 bytes
Concurrency Level:      10
Time taken for tests:   16.306706 seconds
Complete requests:      50000
Failed requests:        0
Write errors:           0
Total transferred:      9200368 bytes
HTML transferred:       600024 bytes
Requests per second:    3066.22 [#/sec] (mean)
Time per request:       3.261 [ms] (mean)
Time per request:       0.326 [ms] (mean, across all concurrent requests)
Transfer rate:          550.94 [Kbytes/sec] received
Ну и теперь, собственно, отработка запроса к CRUD приложению с диспатчингом запроса на действие контроллера и выводящей "hello world" через шаблонную систему WACT:

Код:
$ab2 -c 10 -t 60 [url]http://localhost/[/url]

Document Length:        12 bytes
Concurrency Level:      10
Time taken for tests:   60.24479 seconds
Complete requests:      7158
Failed requests:        0
Write errors:           0
Total transferred:      1317015 bytes
HTML transferred:       92547 bytes
Requests per second:    119.25 [#/sec] (mean)
Time per request:       83.856 [ms] (mean)
Time per request:       8.386 [ms] (mean, across all concurrent requests)
Transfer rate:          21.43 [Kbytes/sec] received
Отработка того же запроса к CRUD приложению через простой шаблонизатор(который использует PHP совместно с HTML разметкой, т.е то что PHP умеет делать лучше всего)

Код:
$ab2 -c 10 -t 60 [url]http://localhost/[/url]

Document Length:        12 bytes
Concurrency Level:      10
Time taken for tests:   60.15910 seconds
Complete requests:      9936
Failed requests:        0
Write errors:           0
Total transferred:      1819386 bytes
HTML transferred:       109362 bytes
Requests per second:    155.56 [#/sec] (mean)
Time per request:       60.402 [ms] (mean)
Time per request:       6.040 [ms] (mean, across all concurrent requests)
Transfer rate:          29.59 [Kbytes/sec] received
У нас не было времени(аврал работы перед новым годом), чтобы полноценно протестировать другие фреймворки на нашей конфигурации, поэтому мы решили отталкиваться от отношения величины отработки простого скрипта к величине отработки запроса для приложения(конечно же, это крайне искусственное сравнение, но ничего лучшего нам в голову не пришло). И вот что получилось(в тестах Пола простой PHP скрипт выполняется 597 раз в секунду):

Solar: 45/597 ~ 0,0753
Symfony: 25/597 ~ 0.0419
Cake: 17/597 ~ 0.0284
ZendFramework: 11/597 ~ 0.0184

У нас простой скрипт отрабатывает 3066 раз в секунду:

Limb3 CRUD+WACT: 119/3066 ~ 0,0388
Limb3 CRUD+PHP view: 155/3066 ~ 0,0506

О чем-то это говорит? Судить вам, т.к мы изначально довольно скептически относились к подобному тестированию.
 

itprog

Cruftsman
pachanga

Можно ли скачать пример CRUD приложения? По мануалу список новостей не удалось создать...
 
Сверху