PHP: мануалы читать необходимо
Я изучаю новый язык следующим образом: сначала всегда полностью читаю руководство (вот с «Пайтоном» мне не повезло — в руководстве, которое я выбрал, об itertools было упомянуто вскользь), потом уже пробую что-то писать, изредка показывая куски кода для критики.
Конечно, руководство полностью наизусть я не помню, но зато всегда помню, что «что-то где-то было», это частно избавляет от изобретения велосипедов.
В свежей статье на «Хабре» — один из подобных велосипедов:
function uptime() {
$fp=@popen('uptime','r');
$s=@fgets($fp);
@fclose($fp);
@preg_match('#load average: ([0-9\.]+)#', $s, $m);
return $m[1];
};
Во-первых, в PHP есть функция sys_getloadavg, во-вторых, (если версия PHP ниже 5.1.3) эту информацию можно добыть значительно проще: «(float) substr(strstr(`uptime`, „load average:“), 13)», в третих, можно (на Линуксах) читать /proc/loadavg.
В этой статье вообще масса забавного: в разделе «временные припарки», где index.php заменили для снятия нагрузки, для чего-то использовался print, вместо того, чтобы выдать сообщение голым html, memcached используется как база данных и так далее.
Статья та вообще феерична… впрочем, я зашёл на сабжевый сайт — он и интерфейсно столь же кошмарен.
Комментарий для david-m.livejournal.com:
Ожидаемо
Комментарий для Евгения Степанищева:
Про sys_getloadavg не знал, спасибо.
Комментарий для kuroi-kaze-85.livejournal.com:
Стоит читать весь мануал всё-таки. Ещё, например, очень редко обращают внимание на раздел posix.
Насчет посикса все неоднозначно. На двух разных солярисах (из моей практики), информация получение информации о памяти, либо давало неверный результат либо загоняло весь апач (mod_php) в корку.
Комментарий для larionovmou.ya.ru:
С «Сорярисом» не сталкивался, никак не могу прокомментировать.
Да ладно, по-моему хорошая статья — ведь главное не методы, а результат, ну написал он мелкую функцию для определения uptime’а. Но ведь в статье не это главное, а как он на живой системе быстренько оживлял сервак. :) На сколько я помню, ты же сам такое практиковал. А когда видишь, что сервер трещит по швам, то главное быстро чего-то предпринять и тут уже не до красоты. На счёт memcached не понял в чём проблема — он и говорит что использовал его как временное хранилище и переодически его перечитывал. Вполне обычное использование.
Комментарий для companyowner.myopenid.com:
Есть более логичные шаги. То, что там описано достойно фиксов на скорую руку.