Оптимизация памяти в PHP и функция serialize
Хорошая статья на Хабре про особенности выделения памяти в PHP. Обычно на расход памяти в
Не так давно я писал требовательный к памяти скрипт. Это скрипт поиска, ранняя версия которого используется на сайте правил русского языка, а адаптированная версия перекочевала в мой движок сайтов.
Я немного поколдовал с кодом и в итоге сократил потребление памяти более чем в два раза. Раньше для индексации этого сайта нужно было 32 мегабайта оперативной памяти, а теперь достаточно и 16. Кроме методов из статьи, я применил запись чисел в системе счисления по основанию 36 (перевод осуществляется функцией
Дело в том, что функция
file_put_contents($filename, 'a:'.count($array).':{');
$buffer = '';
$length = 0;
foreach ($array as $word => $data)
{
$chunk = serialize($word).serialize($data);
$length += strlen($chunk);
$buffer .= $chunk;
if ($length > 100000)
{
file_put_contents($filename, $buffer, FILE_APPEND);
$buffer = '';
$length = 0;
}
}
file_put_contents($filename, $buffer.'}', FILE_APPEND);
Запись происходит порциями размером около 100 килобайт. Этот код подходит для сохранения в файл массива с большим количеством элементов среднего размера и решает проблему перерасхода памяти функцией
Я дома
Наконец, добрался домой. В этот раз приключений было не так много. Самолет задержали на семь часов.
С нами, кстати, летел Лебедев. Кажется, он планировал посетить Приднестровье. Я думал, спросить ли мне, не будет ли какой публичной встречи в Кишиневе. Решил не спрашивать. Тёма ведь писал, что лучше, когда его «не узнают». Вроде бы его так никто и не узнал.
Когда я его увидел, сразу возникла конспирологческая гипотеза: самолет задержали
Снова Домодедово
Не прошло и года, как я опять застрял в Домодедове. А говорят, что молния не ударяет в одно и то же место дважды.
Результаты выборов и задачи на будущее
Результаты парламентских выборов оказались для меня несколько неожиданными. Я думал, что власть нарисует себе больше 50%. Оказалось, они этого сделать не смогли, несмотря на многочисленные фальсификации.
После оглашения результатов выборов стала понятна главная задача: проигрыш Путина на президентских выборах. Действительно, не нужно отчаиваться от того, что Единая Россия получила больше половины мест в парламенте. Выборы в парламент нужно рассматривать как репетицию президентских выборов. По конституции президент сильнее парламента, и именно проигрыш Путина в марте нанесет режиму непоправимый удар.
Задача эта вполне реальная. Ведь рейтинг Путина падает. Даже если считать, что народ поддерживает Путина больше, чем Единую Россию, его рейтинг может упасть настолько, что и фальсификации не помогут.
Смотрите: по данным опросов ВЦИОМа Единая Россия должна была набрать 41%, а нам объявили 49%. Дальше, уже
Получается, что даже без учета трусливой реакции Путина на Болотную площадь второй тур вполне реален. Представляю, что случится с его рейтингом после слов о контрацептивах. А до выборов еще два с половиной месяца!
Что же нужно сделать для решения задачи?
За кого голосовать?
Из Особого мнения в понедельник:
Л.МЛЕЧИН: Не кажется ли вам поразительным? У нас до выборов осталось меньше недели, а общество продолжает выяснять вопрос «А за кого вы будете голосовать?»?
О.ЖУРАВЛЕВА: Ну как? Это нормально накануне выборов выяснять, за кого мы будем голосовать.
Л.МЛЕЧИН: Нет. Как это? Нет, это полное непонимание существа выборов. Как? У человека есть комплекс взглядов, которых он придерживается, и есть политическая сила, с которой он свой этот комплекс связывает. Это политическая сила, которая его единомышленники и которая реализует его взгляды. А когда меньше чем за неделю до выборов люди все еще задают вопрос, то выясняется, что у людей или нету комплекса взглядов, или (что точнее) отсутствуют эти политические силы, которые могут выражать этот комплекс взглядов.
Так всё же, за кого голосовать? За всех? Или допустить, что «независимость» Миронова и выступления Гудкова не согласованы с Кремлем, и проголосовать за Справедливую Россию?
Почему я не люблю курильщиков
Одноименный пост Ильи Весеннего.
Если я уже знаю человека с хорошей стороны, то тот факт, что он курит, мне почти не мешает. Но любого постороннего курящего человека япочему-то сразу принимаю хуже.
Как будто я сам написал.
Свобода воли
Прочитал книжку «Ложная слепота». Среди прочих других интересных идей, в ней высказана одна относительно свободы воли:
Временами электростимуляция мозга вызывает синдром «чужой руки» — непроизвольные движения тела против воли якобы владеющего собой субъекта[29]. В других случаях она провоцирует столь же непроизвольные движения, но при этом субъект настаивает, что производил их сознательно, невзирая на многочисленные эмпирические свидетельства обратного[30]. Сложите это с тем фактом, что тело начинает действовать до того, как мозг «решит» подвинуться[31] — но обратите внимание на [32] и [33] — и само понятие свободы воли — несмотря на явное субъективное ощущение его реальности — начинает выглядеть немного нелепым, …
На всякий случай приведу и ссылки:
29. Porter, R., Lemon, R. Corticospinal function and voluntary movement. NY: Oxford University Press, 1993.
30. Delgado, J. M. R. Physical control of the mind: toward a psychocivilised society. NY: Harper & Row. 1969. (Русское издание: Дельгадо X. Мозг и сознание. М.: Мир, 1971).
31. Libet, В. 1993. The neural time factor in conscious and unconscious events. Experimental and Theoretical Studies of Consciousness 174: 123–146.
32. P. Haggard, P., and Eimer, M. 1999. On the relation between brain potentials and the awareness of voluntary movements. Experimental Brain Research 126: 128–133.
33. Velmans, M. 2003. Preconscious free will. Journal of Consciousness Studies 10: 42–61.
Похоже, свобода воли может проявиться, только если существо способно о ней подумать, и, более того, проявляется только тогда, когда существо о ней думает.
А еще на семинарах по философии я спорил со знакомым о том, является ли мозг квантовой системой, или нет. Знакомый утверждал, что в мозге есть особая квантовая часть, выполняющая роль идеальной монетки (например, шумящий контакт между нейронами), которая способна делать выбор из нескольких вариантов, если на ее вход подать вероятности каждого варианта. То есть, когда у человека есть несколько возможных вариантов поведения, совершенно случайным образом будет выбран один из них; нельзя предсказать, какой именно, но можно говорить о вероятностях. В этом по его мнению и есть основа свободы.
Я же утверждал, что мозг — это классическая система (как набор вполне классических нейронов). Если известно его внутреннее состояние, то можно (в принципе) предсказать сигнал на выходе, зная сигналы на входе. В такой модели свобода воли — не более чем иллюзия.
Один один один…
11:11:11 11.11.11
Лекция о реформах начала девяностых
Сходил на первую лекцию из цикла о реформах начала девяностых. Читал Андрей Нечаев. Ее снимали, возможно, запись будет в интернете.
Было много молодых людей. Многие конспектировали. Их, наверно, экономические вузы специально направили.
В целом интересно. Хоть лекция продлилась вместе с вопросами почти три часа, я не заскучал и не пожалел, что пришел. На следующие тоже, наверно, пойду.
Дозиметры и мобильники
На хабре всплыла моя старая идея. Даже вроде как в виде работающего прототипа.