Приложение с быстрым откликом

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Werewolf
Сообщения: 98
Зарегистрирован: 2010.02.27, 14:37
Контактная информация:

Приложение с быстрым откликом

Сообщение Werewolf »

Сейчас назревает проект, в двух словах онлайн TODO, с максимум аякса. Перетаскивание задач с места на место, инлайн редактирование. Одним из основных преимуществ должна быть высокая скорость работы, чтобы пользователь не ждал. Пример такого сайта todo.ly - заметьте как быстро работает.
Встал вопрос о рациональности использования Yii. Потянет ли? Первое время проект будет хостится на впс.
Скорость на каждое действие должна быть менее 0.1 секунды.

Пример, контроллер в модуле, все стандартно. DEBUG выключен.

Код: Выделить всё

    public function actionTest() {
        $posts = Yii::app()->db->createCommand()->select()->from('posts')->queryAll();
        var_dump(json_encode($posts));
        echo round(Yii::getLogger()->getMemoryUsage()/(1024*1024),2)." MB";
        echo sprintf('%0.4f сек',Yii::getLogger()->getExecutionTime());
        $dbstats = Yii::app()->db->getStats(); printf("Запросов: %d, время: %.4f сек",$dbstats[0], $dbstats[1]);
    }
 
с APC Память 1.16 MB 0.0853 сек, Запросов: 1, время: 0.0008 сек
Без Память 3.85 MB 0.0796 сек, Запросов: 1, время: 0.0008 сек
Смотрим вниз на этот форум: Time : 0.018s | 7 Queries | GZIP : Off

Как оптимизировать?
Можно все аякс колбэки написать на чистом PHP, а Yii оставить для бэкенда, но из-за специфичности проекта, бэкенда почти не будет. Остается часть фронтэнда, как регистрация, настройки и прочее.
Последний раз редактировалось Werewolf 2011.06.23, 19:53, всего редактировалось 1 раз.
Аватара пользователя
coder
Сообщения: 139
Зарегистрирован: 2010.04.09, 23:42
Откуда: Москва

Re: Приложение с быстрым откликом

Сообщение coder »

Постоянное соединение с базой данных должно помочь, не будут тратиться ресурсы на соединение.
Аватара пользователя
BuCeFaL
Сообщения: 447
Зарегистрирован: 2010.03.17, 21:22
Откуда: Kiev
Контактная информация:

Re: Приложение с быстрым откликом

Сообщение BuCeFaL »

nodeJS ^^, Или (и) максимально разумный кэш.
Правда, совсем не yii, но все же...
Werewolf
Сообщения: 98
Зарегистрирован: 2010.02.27, 14:37
Контактная информация:

Re: Приложение с быстрым откликом

Сообщение Werewolf »

coder писал(а):Постоянное соединение с базой данных должно помочь, не будут тратиться ресурсы на соединение.
Соединение с бд немного времени занимает на самом деле.
Аватара пользователя
because
Сообщения: 689
Зарегистрирован: 2010.09.30, 22:01

Re: Приложение с быстрым откликом

Сообщение because »

даже 0,5 секунды это будет вполне быстро для пользователя. если проект выстрелит, то уже можно будет думать как ускорить. а заранее заниматься борьбой за миллисекунды неблагодарное дело мне кажется
RTFM !
Аватара пользователя
Svyatov
Сообщения: 459
Зарегистрирован: 2010.08.12, 14:50
Откуда: Санкт-Петербург
Контактная информация:

Re: Приложение с быстрым откликом

Сообщение Svyatov »

Для такого проекта Yii юзать как-то странно, имхо. Тут хватит, грубо говоря, трех с половиной классов с прямыми запросами в БД.

Может стоит обратить внимание на микрофреймворки? Silex, например - http://silex-project.org
sergko
Сообщения: 18
Зарегистрирован: 2011.03.24, 13:57

Re: Приложение с быстрым откликом

Сообщение sergko »

"Мнения разделились" :)
На самом деле, без более полного понимания структуры проекта трудно давать какие то советы, кроме общих:
1. Yii быстрый? - да.
2. Можно ли оптимизировать? - можно.
3. Может написать на NodeJS? - конечно можно.

А если серьезно.
Как часто и в каких объемах идет обмен с сервером? 5 раз дернуть сервак по 0.1 не всегда быстрее, чем один раз за 0.8 например. Пользователю на самом деле важнее предсказуемость поведения.
Yii позволит относительно быстро создать серверную часть и сосредоточится на клиентском Javascript приложении, там наверняка есть о чем подумать и что оптимизировать. А хорошо разработанное и написанное приложение на сервере в дальнейшем можно ускорить.
Конечно, если программисты настолько суровы, чтоб сразу все на голом php написать и отладить - это будет быстро. Но я за 20 лет работы таких могу пересчитать по пальцам одной руки. :)
Аватара пользователя
Svyatov
Сообщения: 459
Зарегистрирован: 2010.08.12, 14:50
Откуда: Санкт-Петербург
Контактная информация:

Re: Приложение с быстрым откликом

Сообщение Svyatov »

sergko писал(а):"Мнения разделились" :)
На самом деле, без более полного понимания структуры проекта трудно давать какие то советы, кроме общих:
1. Yii быстрый? - да.
2. Можно ли оптимизировать? - можно.
3. Может написать на NodeJS? - конечно можно.

А если серьезно.
Как часто и в каких объемах идет обмен с сервером? 5 раз дернуть сервак по 0.1 не всегда быстрее, чем один раз за 0.8 например. Пользователю на самом деле важнее предсказуемость поведения.
Yii позволит относительно быстро создать серверную часть и сосредоточится на клиентском Javascript приложении, там наверняка есть о чем подумать и что оптимизировать. А хорошо разработанное и написанное приложение на сервере в дальнейшем можно ускорить.
Конечно, если программисты настолько суровы, чтоб сразу все на голом php написать и отладить - это будет быстро. Но я за 20 лет работы таких могу пересчитать по пальцам одной руки. :)
Поддержу. На самом деле серверная скорость тут второстепенна, нужна крутая архитектура и логика на клиенте, с максимальным использованием локальных хранилищ и ненавязчивой синхронизацией с сервером, поэтому бэкэнд можно делать на чем угодно в общем-то.
Werewolf
Сообщения: 98
Зарегистрирован: 2010.02.27, 14:37
Контактная информация:

Re: Приложение с быстрым откликом

Сообщение Werewolf »

Локальное хранилище это конечно интересно, но тогда возникает вопрос когда синхронизировать эти данные?
На сервисе еще должно работать совместное редактирование задач. Когда два пользователя работают одновременно и время между синхронизациями большое, то часть информации будет теряться.
sergko
Сообщения: 18
Зарегистрирован: 2011.03.24, 13:57

Re: Приложение с быстрым откликом

Сообщение sergko »

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

Жаль, что google wave публика не приняла, идея в общем была в правильном направлении.
VasyOk
Сообщения: 6
Зарегистрирован: 2010.05.01, 17:57

Re: Приложение с быстрым откликом

Сообщение VasyOk »

Используйте DAO, не забывая указывать поля, вместо *
Для ajax используйте свои контроллеры без загрузки приложения, по примеру (http://yiiframework.ru/doc/cookbook/ru/ ... ntegration)

Я например вижу это так.
Joseph Jevelin
Сообщения: 339
Зарегистрирован: 2012.01.06, 22:07

Re: Приложение с быстрым откликом

Сообщение Joseph Jevelin »

VasyOk писал(а):Для ajax используйте свои контроллеры без загрузки приложения, по примеру (http://yiiframework.ru/doc/cookbook/ru/ ... ntegration)
Интересное решение, взял на заметку)
Ответить