Хоть люди и минусуют этот комментарий, но я соглашусь. Зачем программисту на 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 — «звездочка»).
Akismet использует Akismet API, который не стыришь. Кроме того плохо работает — не буду вдаваться в подробности, но очень много хороших комментариев не по делу в спам отправляет — у меня давно на всех блогах отключен.
В общем-то, я про производство и не имел в виду, я же сказал "купили вир.табл." или Вы про что?
Просто очень абстрактно все описали, я только вот к этому комментарию (прочитав почти все комментарии и топик несколько раз) понял о чем вообще речь шла (что и описал выше).
Так, то есть эксперимент был такой:
В онлайн игре Вы:
1) купили виртуальных таблеток на сумму X монет (я так понимаю от 25 до 33 монет, исходя из оптовой цены);
2) стояли в игре и кричали «бесплатная раздача таблеток»;
3) люди брали бесплатную таблетку и кто хотел — отдавал Вам что-то назад и/или благодарил;
4) в конце эксперимента у Вас стало 37 монет.
Я так понял?
Неужели это нельзя было так и написать, вместо всех этих теоретических изысков?..
Проблема в том, что в реальный мир это не переносится. Подобные эксперименты были среди фрилансеров и опубликованы. Незнакомым людям (клиент, пришедший первый раз) предлагали платить столько сколько они хотят за работу (не просто платить или нет, а ТОЛЬКО ПЛАТИТЬ, но столько сколько считают правильным). Результаты были унизительные, более чем в 10 раз, кажется, ниже рыночной стоимости.
Я боюсь представить какой была бы эта цифра если людям сказали бы, что можно и не платить («донейт»).
С другой стороны, со знакомыми людьми (старыми и проверенными клиентами) это срабатывало лучше. В некоторых случаях фрилансеры получали в 2-3 раза большую оплату.
Я лично пытался понять, но столько абстрактных терминов, что к концу статьи чувствтуешь себя в вакууме со сферическими лошадьми по всему радиусу… «донейт», «таблетки», «неделимые единицы денег», «1 таблетка в одни руки в день», «бесплатная раздача таблеток», но заплатило 11 человек? «остановим вирус», «спасибо», «рыночная стоимость», «заказы»? «к концу эксперимента у меня было 37 монет»??
Так, попробуем по порядку. Вы в свою игру ввели что-то виртуальное, что не было всем нужно, но за что люди могли расплачиваться таким же виртуальным?..
Я просто к тому, что у Вас якобы 11% людей сделали пожертвование, когда в реальном мире есть статистика около 1 человека из 5000 делают пожертвования реальными деньгами (часто и еще хуже). Вы говорите они заплатили больше, в реальном мире исследования показывают, что большинство людей будут платить меньше, если им позволить. Что, в общем-то, сильно противоречит Вашему выводу «не стоит боятся делать что-то бесплатно: вероятность, что вам не заплатят за вашу работу, не так высока.»
То есть если его исправить на «вероятность того, что Вам не заплатять ВИРТУАЛЬНЫМИ ВЕЩАМИ не так высока» — может быть и имеет право на существование.
Кроме того, что это за «100 человек»? У Вас в игре всего 100 человек? Тогда они фактически все — Ваши почти друзья, тогда в чем эксперимент? Друзья поддерживают друзей. Даже если это им и стоит денег.
«Рынок мобильных устройств, работающих в Интернете, [...] вырос за год почти на 3%, составив 4% от общего количества устройств, имеющих выход в Интернет»
Это как это? По-моему доля «рынка мобильных устройств, работающих в Интернете» должна равнятся 100% доле рынка «устройств, имеющих выход в Интернет», не?
$b = "$a"
, конечно, в корне меняет дело.Далее, «Передача сообщения туда/обратно в одном дата-центре» — это мне кажется, сильно зависит от организации дата-центра. Какого размера сообщение, как соединены стойки, какое оборудование на пути, какова загруженность каналов, какая скорость сети?
И что вообще такое «обращение к главной памяти»? Это так 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 программистов.
Статью бы надо переименовать в «Числа, которые должен знать каждый программист, работающий на близком к системному уровне»
singularityhub.com/2010/11/09/cant-miss-videos-of-japans-3d-hologram-rock-star-hatsune-miku-in-hd/
4D могло бы быть если бы они здание физически взорвали и время назад пустили, это еще как-то можно было бы назвать 4D. Хотя технически, все-таки, время — не есть изменение.
Вспоминается персонаж из «Трассы 60» (рекламщик): «Say what you mean, mean what you say.»
Это как?.. Чем же Вы там владеете-то тогда? Веб это вообще одна из самых базовых вещей, которые на *nix/*BSD платформах требуется.
По делу — абсолютно все равно какую поставите. У меня есть севера на FreeBSD, на Fedora и на CentOS — разницы не вижу (нюансы есть, глобальной разницы в том как работает — нет).
Просто очень абстрактно все описали, я только вот к этому комментарию (прочитав почти все комментарии и топик несколько раз) понял о чем вообще речь шла (что и описал выше).
Ссылки (все на английском) — честно говоря, давно было, не помню — все ли выводы только оттуда:
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 раза большую оплату.
Так, попробуем по порядку. Вы в свою игру ввели что-то виртуальное, что не было всем нужно, но за что люди могли расплачиваться таким же виртуальным?..
Я просто к тому, что у Вас якобы 11% людей сделали пожертвование, когда в реальном мире есть статистика около 1 человека из 5000 делают пожертвования реальными деньгами (часто и еще хуже). Вы говорите они заплатили больше, в реальном мире исследования показывают, что большинство людей будут платить меньше, если им позволить. Что, в общем-то, сильно противоречит Вашему выводу «не стоит боятся делать что-то бесплатно: вероятность, что вам не заплатят за вашу работу, не так высока.»
То есть если его исправить на «вероятность того, что Вам не заплатять ВИРТУАЛЬНЫМИ ВЕЩАМИ не так высока» — может быть и имеет право на существование.
Кроме того, что это за «100 человек»? У Вас в игре всего 100 человек? Тогда они фактически все — Ваши почти друзья, тогда в чем эксперимент? Друзья поддерживают друзей. Даже если это им и стоит денег.
Это как это? По-моему доля «рынка мобильных устройств, работающих в Интернете» должна равнятся 100% доле рынка «устройств, имеющих выход в Интернет», не?