Здравствуйте, Daniel. >> Там один ресурс, который экономится: чем быстрее обрабатывается >> запрос, тем быстрее от освободит занимаемую под обработку память. >> Поэтому всё, что можно запустить параллельно, запускается >> параллельно. > Имею возразить и попросить уточнений :)
> 1) синхронная модель предполагает вытесняющую многозадачность, > которая, в свою очередь, предполагает накладные расходы на > переключение контекста. так что процессор тоже должен, типа, > экономиться. ну или не тоже. Что такое переключение контекста? Если я правильно понимаю, то это значит засунуть все регистры процессора в оперативку, прочитать из памяти другие значения регистров и совершить переход на следующую задачу. Возможно оно чуть сложнее, точно не скажу. В любом случае это несравненно меньше по времени, чем выполнение даже небольшого кода на языке высокого уровня. И я удивлюсь, если кто-то в перле упёрся именно в это. Обычная проблема большинства кода - это очень неэффективное использование памяти: много выделяется того, чего не нужно, память не используется повторно, память используется хаотично и в большем количестве, чем реально необходимо и т.д. > 2) действительно ли кобек-ориентированное программирование позволяет > обрабатывать запросы быстрее? а каким образом? Пришёл запрос на выдачу странички. Надо сделать 30 запросов к мемкешеду, 20 к базе. С огромной вероятностью их не надо делать последовательно. Хотя в синхронном программировании все они делаются один за другим. В асинхронном мы имеем возможность запустить выполнение нескольких (не обязательно всех) запросов одновременно и обрабатывать их результаты по мере их прихода. Например, до того, как юзер прошёл авторизацию можно достать из мемкешеда список его френдов. Ведь скорее всего он пройдёт авторизацию и этот список нам понадобится. -- С уважением, Михаил mailto:[email protected] -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
