Pull to refresh
513
0
Слава Вишняков @yoihj

Нагруженные бэкэнды

Send message
$b = "$a", конечно, в корне меняет дело.

$b = "$a" (1mb) = 1 024 204 ns
$b = "$a" (0b) =        160 ns
Хоть люди и минусуют этот комментарий, но я соглашусь. Зачем программисту на PHP знать скорость обращения к кэшу L1? Он им не может воспользоваться, ибо даже простой $a=1; это десятки(может сотни и тысячи) операций «под капотом». Уверен, что даже «открытие мютекса» в PHP это далеко не один десяток операций (ибо все равно PHP нужно резолвить $mutex_id — это ж не просто указатель на память, а название переменной).

Далее, «Передача сообщения туда/обратно в одном дата-центре» — это мне кажется, сильно зависит от организации дата-центра. Какого размера сообщение, как соединены стойки, какое оборудование на пути, какова загруженность каналов, какая скорость сети?

И что вообще такое «обращение к главной памяти»? Это так RAM нынче называется?

Собственно эти цифры все вообще абсурдны при PHP программировании, запустите простой скрипт, который 100млн раз в цикле сделает примерно следующее: $b=$a; где $a будет либо пустой, либо равной 1МБ строке (по идее — это «чтение 1МБ из памяти» и замерьте ((microtime(1)-$start_microtime)/$number_of_loops) среднюю скорость выполнения.

Результаты у меня (nginx/php-fpm):

"$b=$a", при $a длиной 0 байт = 85ns;
"$b=$a", при $a длиной 1 МБ (str_repeat(«x», 1024*1024)) = 79ns.

Проверял несколько раз — да, чтение 1МБ из памяти быстрее происходит, чем чтение нуля байт!

Собственно, почему так происходит я точно не знаю, но вывод один — среда выполнения PHP делает слишком много операций (и, возможно, внутренних оптимизаций), чтобы заниматься там какими-то предсказаниями по поводу операций чтения из кэша L1.

Первые цифры полезны программистам на C (даже уже на Java думаю они менее полезны ибо там все же на виртуальной машине происходит выполнение).

Большая часть остальных цифр полезна программистам, которые разрабатывают приложения, работающие более чем на 3 физических серверах (а это менее 1% программистов на PHP, я так предполагаю).

99% программистов на PHP ради интереса можно знать, что:
1. чтение с диска примерно в 100 раз медленней, чем чтение из памяти;
2. даже простой mysql_query('SELECT 1') примерно в 1000 медленней, чем обращение к хэшу $array['item'].

Почему ради интереса? Да потому что большей частью все равно самые сильные оптимизации в PHP — это правильно расставленные индексы в базе данных и кэширование в memcached. А те, кто создавали mySQL/memcached знали как правильно использовать L1, L2 и т.п. От того, что PHP программист будет это знать — его соединение с mysql/memcached не ускорится. А по сути mySQL(и аналоги) — это то, что нужно 99% PHP программистов.

Статью бы надо переименовать в «Числа, которые должен знать каждый программист, работающий на близком к системному уровне»
… еще и на (двумерной) плоскости.
Ну не могут духи, стулья и т.п. добавлять D («измерение»), это добавляет чувств. Ну тогда пишите что это 4S («senses» — глаза, уши, нос — запахи — обоняние, попа — осязание, если там стулья вибрировали), а не 4D. Тем более что для нас все равно это 2S реклама (глаза, уши).

4D могло бы быть если бы они здание физически взорвали и время назад пустили, это еще как-то можно было бы назвать 4D. Хотя технически, все-таки, время — не есть изменение.

Вспоминается персонаж из «Трассы 60» (рекламщик): «Say what you mean, mean what you say.»
Автор утверждает обратное направление смски… что нашедшие прислали куда-то смску хозяину.
«нормально владеем несколькими платформами», но «никогда не сталкивался именно с вэб-серверами со стороны администрирования»…

Это как?.. Чем же Вы там владеете-то тогда? Веб это вообще одна из самых базовых вещей, которые на *nix/*BSD платформах требуется.

По делу — абсолютно все равно какую поставите. У меня есть севера на FreeBSD, на Fedora и на CentOS — разницы не вижу (нюансы есть, глобальной разницы в том как работает — нет).
Клево юзеру, хреново производителям контента.
На зеркалках (по крайней мере на Canon 350D) есть кнопка фиксирвания параметров, так что вручную не обязательно, просто надо кнопку нажать (на 350D — «звездочка»).
А мне, как посетителю от этих нюансов какая разница? Она просто не работает, да и все. А уж причина мне (как посетителю) мало интересна.
Вот так это выглядит с отключенным флешем. Крутится и никакого HTML5 там не показывается.
Вот у меня и стоит блокиратор флеш — я вошел на их сайт и наблюдал крутящийся диск… пока не включил флеш и рефреш не нажал.
Akismet использует Akismet API, который не стыришь. Кроме того плохо работает — не буду вдаваться в подробности, но очень много хороших комментариев не по делу в спам отправляет — у меня давно на всех блогах отключен.
В общем-то, я про производство и не имел в виду, я же сказал "купили вир.табл." или Вы про что?

Просто очень абстрактно все описали, я только вот к этому комментарию (прочитав почти все комментарии и топик несколько раз) понял о чем вообще речь шла (что и описал выше).

Ссылки (все на английском) — честно говоря, давно было, не помню — все ли выводы только оттуда:
thefreelancery.com/2010/04/the-scariest-pricing-idea-ever-that-works/
news.ycombinator.com/item?id=1279660 (обсуждение ссылки выше, много людей приводят аналогичные-противоречащие разумные доводы)
Так, то есть эксперимент был такой:
В онлайн игре Вы:
1) купили виртуальных таблеток на сумму X монет (я так понимаю от 25 до 33 монет, исходя из оптовой цены);
2) стояли в игре и кричали «бесплатная раздача таблеток»;
3) люди брали бесплатную таблетку и кто хотел — отдавал Вам что-то назад и/или благодарил;
4) в конце эксперимента у Вас стало 37 монет.

Я так понял?
Неужели это нельзя было так и написать, вместо всех этих теоретических изысков?..

Проблема в том, что в реальный мир это не переносится. Подобные эксперименты были среди фрилансеров и опубликованы. Незнакомым людям (клиент, пришедший первый раз) предлагали платить столько сколько они хотят за работу (не просто платить или нет, а ТОЛЬКО ПЛАТИТЬ, но столько сколько считают правильным). Результаты были унизительные, более чем в 10 раз, кажется, ниже рыночной стоимости.

Я боюсь представить какой была бы эта цифра если людям сказали бы, что можно и не платить («донейт»).

С другой стороны, со знакомыми людьми (старыми и проверенными клиентами) это срабатывало лучше. В некоторых случаях фрилансеры получали в 2-3 раза большую оплату.
Я лично пытался понять, но столько абстрактных терминов, что к концу статьи чувствтуешь себя в вакууме со сферическими лошадьми по всему радиусу… «донейт», «таблетки», «неделимые единицы денег», «1 таблетка в одни руки в день», «бесплатная раздача таблеток», но заплатило 11 человек? «остановим вирус», «спасибо», «рыночная стоимость», «заказы»? «к концу эксперимента у меня было 37 монет»??

Так, попробуем по порядку. Вы в свою игру ввели что-то виртуальное, что не было всем нужно, но за что люди могли расплачиваться таким же виртуальным?..

Я просто к тому, что у Вас якобы 11% людей сделали пожертвование, когда в реальном мире есть статистика около 1 человека из 5000 делают пожертвования реальными деньгами (часто и еще хуже). Вы говорите они заплатили больше, в реальном мире исследования показывают, что большинство людей будут платить меньше, если им позволить. Что, в общем-то, сильно противоречит Вашему выводу «не стоит боятся делать что-то бесплатно: вероятность, что вам не заплатят за вашу работу, не так высока.»

То есть если его исправить на «вероятность того, что Вам не заплатять ВИРТУАЛЬНЫМИ ВЕЩАМИ не так высока» — может быть и имеет право на существование.

Кроме того, что это за «100 человек»? У Вас в игре всего 100 человек? Тогда они фактически все — Ваши почти друзья, тогда в чем эксперимент? Друзья поддерживают друзей. Даже если это им и стоит денег.
я думаю что они просто пытались избежать фразы «половые подсказки» и «сексуальные подсказки» )
А все, понял, не проснулся :)
«Рынок мобильных устройств, работающих в Интернете, [...] вырос за год почти на 3%, составив 4% от общего количества устройств, имеющих выход в Интернет»

Это как это? По-моему доля «рынка мобильных устройств, работающих в Интернете» должна равнятся 100% доле рынка «устройств, имеющих выход в Интернет», не?

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity