login:        password:      
Combats Scrolls
Rambler's Top100
Гость БК
Глупости | Vermilion Open user info Open user photogallery
Friend page
updated 21.03.09 22:15
21.03.09 22:08   |  developers Open info : Damnedest Open user info Open user photogallery |   Кеш спасет мир!
 ru
 В блоге очень много было рассказов о том, как написать какой-то функционал и как что-то ускорить. Конечно, все этого, очень здорово, но мне кажется сообщество не совсем понимает, что этими постами оно дает в руки бомбу замедленного действия будущим программерам клановых сайтов (как показывает практика сервер БК можно положить обычной ссылкой на полный лог великой ).

По моим наблюдения в БК очень мало сильных программистов, тех, которые имеют за плечами проекты не в 200-300 хостов в сутки, а у которых есть сайты, на которых одновременно находится несколько десятков тысяч человек. Я бы хотел в этом посте затронуть тему оптимизации сайта под высокие нагрузки.

В БК о высоких нагрузках кроме некоторых кланов никто и не задумывался, а те, кто с этим сталкивались решали ее просто - покупали более мощные сервер или переходили на новый тарифный план. Некоторые пытались запретить очень частые запросы пользователей на сайт, последовав по стопам БК, хотя в большинстве случаев необходимости не было.

Я видел некоторые клановые сайты, на которых при выводе ника автора новости, происходило обращение к информации о персонаже БК. Это п****ц и так делать нельзя. Если вы так сделали - убейтесь пожалуйста. Спасибо.

Я видел, как писали вывод состава на PHP, когда по крону раз в 5 минут запускался скрипт и вытягивал инфу о персонаже, чтобы получить его оналайн. Вы правда думаете, что у сокланов нет кнопочки в БК, в которой можно посмотреть весь состав? А может вы решили сделать доброе дело для тех, кто хочет отрабатывать по вашему клану ЧС? А может вы думаете, что нуб 8 левела, который зайдет к вам на сайт и посмотрит ваш состав будет сильно переживать из-за того, что не увидит кого-нить в онлайне? Не смешите.

Что делать? Все просто - надо думать!

1. Думаем куда делать запрос. Если персонаж при последнем обновлении состава находился в Столице, то с вероятностью около 70% он и щас будет находится там же (вероятность не придумана, это реальная цифра). Таким вот простым способом мы уменьшили нагрузку на сервер.
2. Между запросами к БК надо делать задержку. 2-5 секунд примерно, чтобы не мучать ни БК, ни свой сервер (например скрипт получения состава просто в цикле делал запросы, из-за чего раз в 5 минут на сервере наблюдалась некоторая заторможенность).
3. Кешируйте запросы. Зачем каждый раз делать запрос к базе на получение состава, если вы знаете, что скрипт обновления у вам работает раз в пол часа? Получите данные из базы и сохраните их в файле. И следующие пол часа получайте инфу из файла. Да, тут вам придется думать. Если это будет интересно, я могу рассказать как реализовать грамотное кеширование в мемкешед или в обычных файлах )
4. Кешируйте не только данные, но и html. Для вывода состава клана серверу требуется произвести достаточно большое количество обращений к шаблонам. Проще закешировать html с составом клана и отдавать его. Ускорение будет реальное.

Вообще есть еще множество различных оптимизаций, которые может сделать каждый клановый сайт, сталкивающийся с нагрузкой, но это уже индивидуально.

P.S. Думайте, что делаете!
P.P.S. И не делайте всякий бред типа ограничения запросов с одного IP. Лучше займитесь оптимизайией.

Mood: рабочее 
Comments: 5 | Post comment
updated 17.02.09 16:48
15.11.08 05:16   |  developers Open info : СэрАртём Open user info Open user photogallery |   Ускоряем jаvаscript
 ru
 Нередко перед web-разработчиками встаёт проблема низкой производительности клиентского кода, обычно реализуемого на jаvаscript. В этот момент можно услышать кучу нелестных отзывов как в адрес тех, кто поставил такую задачу, так и и в адрес тех, кто реализовал ту или иную версию jаvаscript, и даже в адрес самого языка. Однако, тут поговорка "нечего на зеркало пенять, если рожа кривая" подходит, как нельзя кстати. Посмотрим на наглядном примере. CUT: Далее

Update: 17-11-08 17:15
Как выяснилось, разные версии IE по-разному обрабатывают способы обращения к элемементам документа. Я немного изменил последний пример для того, чтобы заполняющийся полным обходом дерева элементов кэш работал с одинаковой производительностью на IE6-IE8

Update: 17-02-09 15:45
К слову о производительности: Производительность простых и сложных конструкций в jаvаscript от RealCoding.NET

Mood: рабочее
Comments: 11 | Post comment
updated 02.11.08 18:06
31.10.08 16:40   |  developers Open info : СэрАртём Open user info Open user photogallery |   Призраки Бойцовского Клуба
 ru
 Баги ходють по БК, их видать издалека. Предлагаю (и буду неоригинален) собрать баги в одну кучу. Правило добавления очень простое: описать исходные условия и последовательность действий для воспроизведения бага. Если баг не требует воспроизведения, а очевиден - указывается фрагмент кода, ответственный за баг. Сообщения вида "вчера был в БК - вещь была, сегодня зашёл - её нет" не катит. Нужно чёткое описание, при каких условиях и действиях пропала вещь.

Далее идут потверждённые баги.

При отправке в чат сообщения, содержащего символы кириллицы и URL-encoded символы в кодировке UTF-8, первые заменяются на знаки "?", а последние отображаются в decoded виде.
Ошибка jаvаscript при отображении custom hint при наведении указателя на количество предметов в пачке.
Ошибка вёрстки списка заявок в групповых поединках, приводящая к разрушению структуры документа.
В Internet Explorer 8 не отображается список игроков, находящихся в комнате.
Ошибка объявления функций в top-level окне, приводящая к несовместимости с браузерами, отличными, от IE.
При подтормаживании канала возможно неоднократное появление в чате своего сообщения или сообщений других участников чата
Зависание статистики боя, проведённого в Изломе Хаоса.
Ошибка в кодировке при поиске в аукционе
100% загрузка процессора при наведении на телепортатор в зале ожидания.

Mood: хитро-коварное, озлобленно-рабочее
tags: баги
Comments: 17 | Post comment
10.10.07 15:28   |  developers Open info : Alex Nomad Open user info Open user photogallery |   Начинающим клановым программистам  ru
 Начинающим клановым программистам. Часть III.

Немного о безопасности.
Post comment
09.10.07 13:35   |  developers Open info : Alex Nomad Open user info Open user photogallery |   Карты торговца и запрет shop.pl?contents=...  ru
 С недавних пор перестала работать ссылка http://capitalcity.combats.ru/shop.pl?contents=.... Эта ссылка используется в Картах Торговца для загрузки информации о наличии товаров в магазинах. В настоящий момент парктически все карты торговца БК показывают устаревшие данные или не работают совсем. При этом ссылка загрузки информации из комиссионок работают по прежнему нормально.

Если данный запрет установлен навсегда, то будет совсем плохо. Придется ботов рассылать по магазинам.
Меня посетила ужасная мысль, если причина запрета вызвана появлением второй части статьи "Начинающим клановым программистам", то получается, что как мужщина я должен покончить жизнь выстрелом пистолета в висок.
А умирать совсем не хочется.

П.С. Сделана копия поста в личном дневнике.

Mood: подавленное 
Comments: 11 | Post comment
27.08.07 21:14   |  developers Open info : Yan Kos Open user info Open user photogallery |   Книги Win32 API  ru
 Может кому понадобится эти книги для Виндовозников решивших написать что нить под Винь 9х.
Хотя книги и старие но Рихтер и Петзольд научат хорошому тону. Да и вообще это из разряда "must have"

Книги по Win32 API для начинающих.
- Программирование для Windows 95 (в двух томах).[Петзолд Ч.]
- Windows для профессионалов. Создание эффективных Win32-пpилoжeний с учетом специфики 64-разрядной версии Windows.[Джеффри Рихтер]
- Системное программирование в среде Windows.[Джонсон М. Харт]
- Проектирование интерфейса пользователя средствами Win32 API[Р.М. Ганеев]

CUT: Продолжение

Music: Alkonost - Ночь Перед Битвой (Путь Непройденный)
Comments: 8 | Post comment
27.08.07 17:28   |  developers Open info : Alex Nomad Open user info Open user photogallery |     ru
 Начинающим клановым программистам. Часть II
Post comment
14.08.07 22:23   |  developers Open info : Alex Nomad Open user info Open user photogallery |   Начинающим клановым программистам  ru
 Начинающим клановым программистам. Часть I
Post comment
19.07.07 12:45   |  developers Open info : СэрАртём Open user info Open user photogallery |   Передачи: баг с подсветкой характеристик  ru
 Как оказалось после нескольких минут исследований, чтобы в передачах подсвечивались характеристики предмета, нужно IFRAME-объекту установить свойства nTop и nLeft, хотя бы в 0. То есть, по окончанию загрузки страницы достаточно выполнить следующий код:

var IFRAME = top.User.Framework.GetTab('main').oFrame.firstChild;
IFRAME.nLeft = 25;
IFRAME.nTop = 25;


И всё прекрасно работает!

CUT: Плагин для Maxthon, исправляющий этот досадный баг
tags: bugfix
Post comment
20.06.07 23:16   |  developers Open info : Cripter Open user info Open user photogallery |   ДДОС  ru
 Скажу сразу статья не моя но более полно пожалуй и не напишешь. Тем более, что данная тема очень актуальна в эти нелегкие времена.
Powered by vBulletin® Russian v3.6.4, Copyright ©2000-2007, Jelsoft Enterprises Ltd.
Сначало, я расскажу про Ддос. Какие виды атак существует, как их отличить, чем они сильны… И так, как понять, каким видом флуда вас Ддос-ят? Очень просто - достаточно просто поверхностно взглянуть на сервер. Если в разы увеличились логи апача - значит это хттп флуд. Если нельзя присоединиться ни к одному из сервисов (к примеру, фтп) по причине того, что максимальное количество соединений достигнуто, значит, это SYN\ACK флуд. При ping flood практически не будет заметна разница между исходящим и входящим трафиком.

CUT: Продолжение
Comments: 6 | Post comment

Total posts: 30 Pages: 3
«« « 1 2 3 » »»
 
 


« 2025 march »
Mo Tu We Th Fr Sa Su
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

 
 © 2007–2025 «combats.com»
  18+  
feedback