error4eg
Рейтинг
+22.68
Сила
27.40

error4eg

Виталий Никсенкин

Когда люди ссорятся

Копипаста
Один раз Учитель спросил у своих учеников:
— Почему, когда люди ссорятся, они кричат?
— Потому, что теряют спокойствие, — сказал один.
— Но зачем же кричать, если другой человек находится с тобой рядом? — спросил Учитель. — Нельзя с ним говорить тихо? Зачем кричать, если ты рассержен?
Ученики предлагали свои ответы, но ни один из них не устроил Учителя.
В конце концов он объяснил:
— Когда люди недовольны друг другом и ссорятся, их сердца отдаляются. Для того чтобы покрыть это расстояние и услышать друг друга, им приходится кричать. Чем сильнее они сердятся, тем дальше отдаляются и громче кричат.
— А что происходит, когда люди влюбляются? Они не кричат, напротив, говорят тихо. Потому, что их сердца находятся очень близко, и расстояние между ними совсем маленькое. А когда влюбляются еще сильнее, что происходит? — продолжал Учитель. — Не говорят, а только перешептываются и становятся еще ближе в своей любви.
— В конце даже перешептывание становится им не нужно. Они только смотрят друг на друга и все понимают без слов.

*чища свой гугл ридер в 2012, листая избранное в нем*

ня

Копипаста
Однажды, когда человек полировал свой автомобиль, его 6-летний сын поднял камень и нацарапал несколько слов на боку автомобиля. В гневе человек схватил руку ребенка и стал бить по ней много раз, не понимая, что он вырывает ее. В больнице ребенок потерял все свои пальцы из-за многочисленных переломов. Когда ребенок увидел своего отца… с глазами, полными боли, он спросил, 'Папа, когда мои пальцы вырастут снова?' Человек испытал боль и ничего не ответил; он возвратился к своему автомобилю и стал его пинать. Опустошенный своими поступками… сидя перед тем автомобилем, он посмотрел на царапины — ребенок написал 'ЛЮБЛЮ ТЕБЯ, ПАПА'.

*чища свой гугл ридер в 2012, листая избранное в нем*

Притча о друзьях, рае и аде

Копипаста
Умер человек. Его пес рядом лег и тоже умер. И вот душа человека стоит перед вратами с надписью «Рай» и рядом душа собаки. На вратах надпись: «С собаками вход воспрещен!». Не вошел человек в эти врата, прошел мимо. Идут они по дороге, вторые врата, на которых ничего не написано, только рядом старец сидит.

— Простите, уважаемый…
— Петр я.
— А что за этими воротами?
— Рай.
— А с собакой можно?
— Конечно!
— А там, раньше, что за врата?
— В Ад. До рая доходят только те, кто не бросают друзей.

*чища свой гугл ридер в 2012, листая избранное в нем*

Highload оптимизация

Вебмастерское
Зачастую, «бутылочным горлышком» вашего приложения является база данных, таким образом перво-наперво включаем slow query log и смотрим какой запрос у нас самый медленный, и думаем что с ним делать, если не можем вкурить проблему — зовём старших, пусть тоже повтыкают в EXPLAIN (хабр) вашего чудо-запроса.

Но, опять же ссылаясь к моему опыту, большинство проблем с БД решают правильные индексы. Легко запомнить, что индексировать следует внешние ключи, и всё что у вас в WHERE, ORDER BY, GROUP BY (список не полон, для начала – самое оно).

Не следует пихать много индексов в таблицу которая часто обновляется, иначе накладные расходы на обновление индекса будут перекрывать ваш профит от оных в разы. Советую внимательно почитать об оптимизации в MySQL.

Поиск с использованием LIKE это плохо. Полнотекстовый с MyISAM уже лучше. Внешний аля Sphinx — рулит и бибикает для MySQL и PostgreSQL, инфа достоверная 100%.

Но это полбеды, проблем в БД может подкинуть и само приложение — обращение к БД в цикле/рекурсии или еще каким извращенным способом могут привносить удивительные поправки в результаты нагрузочного тестирования. Сделайте простой профайлер ваших запрос и проследите на каких страницах количество запросов начинает зашкаливать (особенно это касается типа-ORM и почти-Active Record, когда один объект = один запрос, или даже не один). Всем кто уповает на магию фреймворков, иль каких-нить gem-ов — не надейтесь, всё о чём я написал в равной степени относится к большинству языков web-программирования, г… код есть везде, он вездесущ.

Ну, а теперь о главном, нет о главной странице в 1,5 метра — дождется ли её загрузки пользователь со скоростью доступа в 256кбит? Клиентская оптимизация должна проводиться в обязательном порядке: YSlow да Page Speed вам в зубы. Да если погуглить, то даже небольшая правка htaccess для apache улучшит ситуацию:
# Enable ETag
FileETag MTime Size

# Enable Deflate
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/x-javascript

<ifModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 1 seconds"
  ExpiresByType text/html "access plus 1 seconds"
  ExpiresByType image/x-icon "access plus 2592000 seconds"
  ExpiresByType image/gif "access plus 2592000 seconds"
  ExpiresByType image/jpeg "access plus 2592000 seconds"
  ExpiresByType image/png "access plus 2592000 seconds"
  ExpiresByType text/css "access plus 604800 seconds"
  ExpiresByType text/javascript "access plus 216000 seconds"
  ExpiresByType application/x-javascript "access plus 216000 seconds"
</ifModule>

Пожмите JavaScript и CSS, да переключите jQuery на Google CDN.

anton.shevchuk.name/php/highload-optimization-for-children/

*чища свой гугл ридер в 2012, листая избранное в нем*