Смысл кеша, тот же, что и репликации. Т.е. уменьшить нагрузку на бд для получения минимального времени ответа.
В этом плане этот тест как раз заставляет задуматься о реальном профиле нагрузке и необходимости настройки текущей инфраструктуры, вместо того чтобы бросаться переписывать все на asyncio в надежде получить профит из ничего
Тут и спорить не о чем. Каждый инструмент нужен для определенных вещей. Естественно нет смысла переписывать и даже писать с нуля сайтик, генерирующий 3 страницы в минуту с использованием ассинхронщины.
Psycopg can issue asynchronous queries to a PostgreSQL database. An asynchronous communication style is established passing the parameter async=1 to the connect() function: the returned connection will work in asynchronous mode.
Это цитата из документации psycopg2
Судя по тому, что я вижу в коде, этот драйвер вообще работает в синхронном режиме. Причем это не изменяется и для ассинхронщины. С-но цикл событий блокируется при запросе к бд. И все преимущество сводиться на нет.
pool = psycopg2.pool.SimpleConnectionPool(
1, 4, database="test", user="test", password="test", port=6432,
)
Здесь явный пример соревнования гоночной феррари формулы один с трактором по бездорожью. И да. В таких условиях действительно, трактор быстрее.
Чтобы асинхронный код был производительнее синхронного, необходимо под это настроить с-но инрфраструктуру. В данном конкретном случае, по сути, измеряется производительность базы данных.
Реплицируйте базу данных на 10 серверов. Используйте кеш. Думаю результаты будут значительно отличаться от текущих.
как отнаследовать MyDir2, что если MyDir1 изменится
Ну здесь все просто, нужно вынести var dir2 = angular.copy(dir); за определение директивы, и повторить наследование.
как на счет стандартных директив
Стандартные директивы хорошо спроектированы, и не думаю что у кого-то возникнет необходимость в их переопределении. Но если все же возникнет, есть исходники.
Что мешает делать наследование директив подобным образом?
var dir = { // объект директивы };
app.directive("MyDir1", function(){
return dir;
});
app.directive("MyDir2", function(){
var dir2 = angular.copy(dir);
dir2.template="..."; //переопределение чего либо
return dir2;
});
Но название Angular Light очень понравилось, я уж подумал google новую версию angular выпустил, пока я спал. :)
предполагает что будет обсуждаться именно это, а не все вышеперечисленное. В таком случае более подходил бы заголовок «TDD на примере шаблонизатора» или что-то подобное. А здесь разговор об внутренней реализации, вместо обсуждения его работы.
Не скажу что в статье нет ничего полезного, но статья явно расходится с содержанием заголовка.
О чём же сыр-бор?
kidomi написана на CoffeeScript.
Она компилируется Google Closure в расширенном (ADVANCED_MODE) режиме.
Она покрыта юнит-тестами.
И эти тесты работают в т.ч. с помощью PhantomJS.
Всё это собирается и запускается с помощью make.
Ну и что?
Как я понимаю, шаблонизатор используется для генерации некоего вывода из ввода. И какая при этом разница на чем он написан? и т.д.
Важна производительность, корректность преобразования и т.д., а не все выше процитированное.
Или я неправильно понял смысл этой статьи?
Также в этой версии доступен модуль ngTouch, который позволяет работать с сенсорными экранами, например с мобильными телефонами.
По мне так очень полезная фича.
Для интересующихся этой темой могу порекомендовать видео канал Ильи Кантора на youtube. Там все это до мелочей разбирается.
На счет статьи, я так и не понял, где здесь продвинутый чат???
Тут и спорить не о чем. Каждый инструмент нужен для определенных вещей. Естественно нет смысла переписывать и даже писать с нуля сайтик, генерирующий 3 страницы в минуту с использованием ассинхронщины.
Это цитата из документации psycopg2
Судя по тому, что я вижу в коде, этот драйвер вообще работает в синхронном режиме. Причем это не изменяется и для ассинхронщины. С-но цикл событий блокируется при запросе к бд. И все преимущество сводиться на нет.
А должно быть для ассинхронного кода
Чтобы асинхронный код был производительнее синхронного, необходимо под это настроить с-но инрфраструктуру. В данном конкретном случае, по сути, измеряется производительность базы данных.
Реплицируйте базу данных на 10 серверов. Используйте кеш. Думаю результаты будут значительно отличаться от текущих.
Если проблему не решите, напишите в личку.
Ну здесь все просто, нужно вынести
var dir2 = angular.copy(dir);
за определение директивы, и повторить наследование.Стандартные директивы хорошо спроектированы, и не думаю что у кого-то возникнет необходимость в их переопределении. Но если все же возникнет, есть исходники.
Но название Angular Light очень понравилось, я уж подумал google новую версию angular выпустил, пока я спал. :)
Не скажу что в статье нет ничего полезного, но статья явно расходится с содержанием заголовка.
Ну и что?
Как я понимаю, шаблонизатор используется для генерации некоего вывода из ввода. И какая при этом разница на чем он написан? и т.д.
Важна производительность, корректность преобразования и т.д., а не все выше процитированное.
Или я неправильно понял смысл этой статьи?
По мне так очень полезная фича.
На счет статьи, я так и не понял, где здесь продвинутый чат???