Не дождался, сделал тест, может будет интересно: 30 файлов, в каждом карта классов на 100 имён, из всех файлов составляется одна общая карта классов. Подключаются через include, APC активен.
VirtualBOX VM CentOS, php 5.4, все настройки дефолтные при инсталляции, один поток, одно ядрышко. Результаты такие:
ab -n 1000 для include 3 файлов: Time per request: 3.920 [ms]
ab -n 1000 для include 30 файлов: Time per request: 4.732 [ms]
ab -n 1000 для apc_fetch 30 файлов:Time per request: 4.257 [ms]
Кеширование делалось так:
if ($map = apc_fetch('classmap')) {вывод }
подключение и сборка 30 карт
apc_add('classmap',$map);
Если включен APC, они и так не будут подключаться заново с диска, а будут лежать в памяти в виде байткода. Даёт ли какой-то ощутимый прирост подключение карты непосредственно из APC (apc.stat=0)? И если даёт, то какой именно?
Вот как раз геймерам, любителям аппаратных кнопок, должны понравиться контролы PS Vita, не так ли? Проигрывание видео — тоже форма «поглощения контента», поэтому в iPad в том числе требуются мощности. Моё мнение является только моим, и основывается на личных наблюдениях и выводах, я никуда не собираюсь его экстраполировать.
Я не делаю негативный акцент на этом словосочетании. Это и просмотр почты, и чтение документации, и даже Хабр — то, чем регулярно занимается каждый из нас в удобном для себя месте. Качество интерфейса может быть вполне объективным: сравните трёхсубпиксельную IPS матрицу с двухсубпиксельной super amoled например.
Не ясны поводы для негодования. Во-первых, на презентации явно было сказано, что это GPU. Да, возможно здесь Apple немного потроллила тех, кто плывёт на волне текущей в мире маркетинговой суеты вокруг ядер и производительности мобильных устройств. Во-вторых, целевой аудиторией этих устройств я вижу не геймеров (для них есть игровые консоли). На мой взгляд, планшетники и телефоны — это не те устройства, в которых первостепенно важна высокая производительность. Это средства связи и поглощения контента. Здесь гораздо важнее качество и удобство интерфейса, функциональность средств коммуникации и время автономной работы.
Чем удобно? Тем, что можно описать в комментариях ожидаемые значения переменных и результата, а потом получать их по код ассисту — бесспорно, удобно. Но только, если это не влияет на ход выполнения. Комментарий должен оставаться комментарием. А для проверки значений явно вызывать валидатор в первой строчке метода.
Имхо, это выглядит эффектно, и кажется удобным, но не более того. Магия вредна, особенно в коллективной и долгосрочной разработке. Если нужны валидаторы — оформлять соответствующие функции, классы с методами или конфиги с валидаторами. Если нравится макропрограммирование — делать компиляторы макрокода в обычный стандартный код. Недостатки описанного подхода очевидны: нарушение принципов программирования (логика находится в… комментариях к коду!), невозможность обработки кода (обфускации например). С архитектурной точкизрения, эти трюки ничем не лучше логики, основанной на файловой системе.
Так оно вроде использует java ssh клиент с тем же ключом? Если sshd лежит или ключи пропали, тогда не поможет, придется по старинке, маунтить винт на другую инстанцию и править файлы. Или нет?
По поводу крона. Правила можно сохранять в базу и писать в кронтаб только уникальные (новые) правила. Если это операторская форма для рассылки рекламы или ведения информационной войны, то хватит крона. Если для посторонних пользователей — я не могу сказать точно, поскольку не приходилось использовать крон на милионном числе задач. Коллекция с индексами в этом случае должна работать эффективнее регулярок.
Это маловероятный случай, хотя и возможный. Да, в таком случае придется сохранить 66 значений, но зато потом легче выбирать будет. Другое решение мне пока в голову не пришло (кроме как писать в кронтаб)
VirtualBOX VM CentOS, php 5.4, все настройки дефолтные при инсталляции, один поток, одно ядрышко. Результаты такие:
ab -n 1000 для include 3 файлов: Time per request: 3.920 [ms]
ab -n 1000 для include 30 файлов: Time per request: 4.732 [ms]
ab -n 1000 для apc_fetch 30 файлов:Time per request: 4.257 [ms]
Кеширование делалось так:
if ($map = apc_fetch('classmap')) {вывод }
подключение и сборка 30 карт
apc_add('classmap',$map);