Не так давно я представил набросок простейшего фреймворка, предназначеного для изучения новичками и для создания простейших сайтов. Комментарий, оставленный к тому посту уважаемым мною Иваном Броткиным, заинтриговал. Стало очень интересно, чего же можно добиться, если поднастроить ko3 на скорость работы. Интерес чисто академический, поэтому и настройки, по ходу дела, будут такие же. Единственное условие, которое я поставил для себя: фреймворк должен остаться полностью работоспособным, без ограничений!
Итак, начнем. Для начала, отключаем все, что можно: кеш, логирование, все доп.модули. Вывод из контролера в браузер делаем через echo, чтобы избежать использование доп. кода в самой кохане. Смотрим результат:
time: 0.0273728370667;
memory: 749360
Совсем-совсем не плохо, если сравнивать с ko3.2 и дефолтными настройками (напомню: time: 0.0946259498596; memory: 1330864). Но, данные параметры все-равно довольно высоки, поэтому идем дальше.
Тюнинг kohana 3.0 →
Давно хотел сравнить между собой обычные методы классов и статичные, но все руки не доходили. Сегодня вот столкнулся с приватным фреймворком, в котором ВСЕ методы и параметры статичные. Вообще все, т.е. нет ни одного обычного объекта! Откладывать сравнение было уже нельзя, чем я и занялся утром. Результаты неоднозначные, даже странные для меня, местами. В общем, «непоняно» что и как… На Ваш суд выношу результаты тестов, а Вы попробуйте мне объяснить почему результаты именно такие. Кстати, я не буду сравнивать размер используемой памяти, т.к. тут как-раз все понятно — статичные методы и свойства явно будут меньше кушать памяти. Это понятно.
Итак, начнем. Для начала, попробуем сравнить между собой «сферических конец в вакууме», т.е. классы-пустышки. Код у нас получится примерно такой:
<?php
class ClassStatic {
public static function test() {
;
}
}
class ClassDinamic {
public function test() {
;
}
}
$static = array();
$dinamic = array();
for ($count = 0; $count < 100; $count++) {
$start = microtime(TRUE);
for ($i = 0; $i <= 1000; $i++)
ClassStatic::test();
$static[$count] = microtime(TRUE) - $start;
$start = microtime(TRUE);
$obj = new ClassDinamic();
for ($i = 0; $i <= 1000; $i++)
$obj -> test();
$dinamic[$count] = microtime(TRUE) - $start;
}
echo 'Static: min - ' . min($static) . '; max - ' . max($static) . '; avg - ' . array_sum($static) / 100 . "<br />\n";
echo 'Dinamic: min - ' . min($dinamic) . '; max - ' . max($dinamic) . '; avg - ' . array_sum($dinamic) / 100 . "<br />\n";
Сравниваем классы в php →
Время от времени приходится работать с различными cms. Среди них, иногда, попадается opencart. Довольно не плохой движок инет-магазина, но самое главное — очень простой. Видимо по этой причине многие его используют, включая и меня =).
Недавно попросили разобраться с дублями страниц на сайте, сделаном на opencart. Пришлось немного изучить модуль seo_url… и охренел. По другому и не скажешь. Вот так выводятся категории:
$this->load->model('tool/seo_url');
if (isset($this->request->get['path'])) {
$this->path = explode('_', $this->request->get['path']);
$this->category_id = end($this->path);
}
SEO для борьбы с конкурентами →
Я уже очень давно пользуюсь FF для серфинга. Честно, пытался сменить на оперу или chrome, т.к. у ff есть свои баги (кривые расширения, жрет кучу памяти и пр.), но не судьба — chrome выглядит ужасно и не удобен для разработки (отсутствие возможности работать с куками, глюки с поиском по коду), а опера вообще не мое (неприязнь уже переросла в ненависть, столько глюков нет даже у ff).
Последняя попытка смены браузера была предпринята примерно неделю назад. Причина в том, что в ff7 при копировании части урла в адресной строке (от http до любой части урла, но не до конца) ссылка получалась такая: http://http://domain.com/path. Это ппц, как раздражало. Особенно, когда забывал про эту «фичу». Поиск в сети не дал результатов, похоже такая проблема только у меня. Отсюда вывод — скорее всего это конфликт новых версий и какого-то дополнения браузера. Как обычно, руки не доходили выяснить что и как, но сегодня все-таки уделил этому время и нашел решение. Публикую его больше для себя (на будущее) и для тех, кто столкнется с подобной проблемой…
Firefox: вывод и скрытие протокола в адресной строке →
Читаешь блоги, форумы и пр., чуть ли не везде «стартаперы» пишут о том, как им не хватает денег инвесторов =))). Особенно это популярная тема на хабре… А ведь немного креативного мышления и деньги придут сами. Не верите?
Вот пример из вчерашнего: bigbuzzy продает iphone4s 16gb черный за 19 990 руб, с выдачей 25-го ноября. Вроде ничего такого, но давайте посчитаем… 5000 купонов х 20000р = 100 млн. руб. они собирают предоплатой и эти деньги находятся у них более месяца! Вложив их под 12% годовых в банк, за месяц получим 1% = 1млн.руб. А если их более умно вложить куда-то?
Вот так, за счет креативной акции, компания собирает большой оборотный капитал с отсрочкой выплаты (фактически, беспроцентный кредит). Кто из инвесторов может выделить 100млн. так быстро, да еще и ничего не требуя взамен? =)))
P.S.: а сегодня тоже самое провернула выгода.ру здесь и здесь. Так что иногда хватает не креативного мышления, а простой внимательности и умения считать и анализировать