Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Побочные результаты замеров перегрузки процессоров, динамические свойства браузеров 
:(
    Опции темы
12345c
Дата 26.12.2006, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Динамические свойства и характеристики браузеров были измерены на примере скрипта падающего снега. За показатель перегрузки принимался процент отставания таймера, который крутился в непрерывном цикле по setInterval( ..., 70); (70 мсек.).

Имея инструмент измерения перегрузки процессора, первым делом понадобилось посмотреть, как ведут себя показатели перегрузки в разных браузерах, чтобы впоследствии при разных перегрузках представлять, в какой точке характеристики мы находимся, насколько надо уменьшить нагрузку процессора, чтобы анимация пришла в норму. Измерения велись на странице http://js2.ru/example/xmp002/falling-snow-2.htm .

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

Интересно посмотреть, как ведут себя браузеры при повышении нагрузки. Сразу оговорим условия опыта. Замечено, что в IE6 отисовка летающих букв была намного медленнее, чем в IE7. Чтобы не портить картину случайным выбором букв, в эксперименте участвовали только рисунки (снежинок). При этом условии результаты IE почти не отличались. Опера 7-8 работатла очень быстро, но надо учесть, что она не поддерживает прозрачность, а это отображать традиционно труднее. Опера 9 догнала по быстродействию 7-ю и была примерно в 1.3 раза лучше IE. FF1.07 представлял довольно жалкое зрелище на фоне остальных, но в пределах своей нормы с работой справлялся. В FF заметна интересная методика работы таймера: если он сначала запаздывает по внешним причинам (даже на протяжении 3-4 секунд), то затем интервалы его обязательно сокращаются и догоняют часы (если смогут)! Такой особенности в остальных браузерах нет. В Опере-9 виден радикально иной подход к отсчёту таймеров, чем в прежних - она ухитряется соблюдать правильность хода таймера, насколько может, но при этом не видно периодов уменьшения интервалов с целью догнать часы. В Операх также видна другая особенность работы таймера или данного скрипта - забор процессорного времени происходит "квантами", примерно равными 10% мощности процессора. Из-за этого наблюдается некоторая ступенчатость характеристики реальной загрузки процессора. Но в скрипте нет такой особености  и в других бр-рах она не проявляется.

   Наконец, у IE и Оперы видна особая "методика запаздывания" таймера: если нагрузка начинает превышать 50%, запаздывание таймера выходит на "плато" - величину 14-15%, которое продолжается довольно долго - до 80-85% нагрузки. И это надо считать работоспособной областью скрипта, поскольку до перегрузки процессора далеко.

В следующем списке приведены предельные количества снежинок при заданных условиях опыта.
Предел нагрузки (числа снежинок) в данном опыте (c 17%-перегрузкой/100% нагрузкой процессора):
IE7:   55/110
IE6:   45/90
FF1.07: 40/35
FF2:    80/70
Op7.54: 70/150
Op8.01: 150/300?
Op9.10: 90/100
Условия опыта соблюдались во всём одинаковые - объём программ в ОЗУ, размер окна браузера, активность окна. Усреднялись показания при устоявшемся процессе за период 10-20 сек. . Все результаты - в таблице (Excel), процент загрузки процессора (Athlon-2000+, ОЗУ DDR-266) и показания отладочного монитора, которое означает процент отставания таймера.
   Процент отставания, в свою очередь, считался как среднее между максимальным и минимальным значениями отставания за несколько (22) измерений в течение 1.6 секунды. И приблизительное среднее за период 10-20 с бралось от этой полусуммы.

Дополнительные измерения. Интересно было узнать, насколько нагружают процессор скрипты в фоновом режиме. Взяты нагрузки примерно в 80% при открытом окне, затем окно свёрнуто и снова измерен процент нагрузки.
Отношение загрузки развёрнутого/минимизированного окна (%).
FF2: 85/30
Op8.01: 80/40
Ie6: 85:35

В приложенном файле можно найти таблицу Excel c диаграммой перегрузок в зависимости от числа снежинок для 7 браузеров и, для тех, кому затруднительно посмотреть её в Экселе, рисунок (PNG) всего содержимого листа.

Добавление: к таблицам нагрузки добавил диаграмму "загрузка (процессора)-перегрузка (скриптом процессора)". Комментарии в 12-м по счёту сообщении.

Это сообщение отредактировал(а) 12345c - 3.3.2008, 12:52

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  nagruzkaFallSnow.zip 37,80 Kb


--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
dstorm81
Дата 26.12.2006, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


бездельник
***


Профиль
Группа: Завсегдатай
Сообщений: 1178
Регистрация: 18.1.2006
Где: (16RU)

Репутация: 20
Всего: 39



мда 12345c чувствую тебе на праздники отдохнуть хорошо надо... smile
нет я конечно понимаю статистика к примеру по innerHTMLvsDOM при создании select
а вот использование анимации на странице c ее автоподстройкой под камешек, это имхо немного не того.
браузер ведь это покачто просто браузер

искренне надеюсь что не огорчил тебя, а отдохнуть тебе надо, 


--------------------
на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#)

PM   Вверх
smartov
Дата 26.12.2006, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 7
Всего: 259



12345c
Цитата(12345c @  26.12.2006,  08:37 Найти цитируемый пост)

(c 17%-перегрузкой/100% нагрузкой процессора)
...
FF1.07: 40/35
FF2:    80/70

Ничего не понял
При меньшем количестве снежинок нагрузка больше?

Или что значит 17% перегрузка
Проц летит вниз со скоростью 1.17g? smile

PM MAIL   Вверх
Nicholas_S
Дата 26.12.2006, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 486
Регистрация: 12.10.2006
Где: Санкт-Петербург

Репутация: 5
Всего: 19



12345c, что-то как-то... Смогешь оценить реальную загруженность процессора при всех вышеописанных нюансах?
Есть еще такой нюанс: я не мог загрузить свой процессор на 100% в одном браузере при любом количестве снижинок, максимально, что показывает диспетчер, это значение 50%. Не знаю, может быть сказывается HT.


--------------------
...все в мире относительно
PM   Вверх
Sardar
Дата 26.12.2006, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Core Duo (T2050) двух ядерник с 1Гб оперативы, загружаеться только одно ядро под 90% на 150 снежинках как в ИЕ6, так и в ФФ2.
12345c, это всё интересно, но главное ты не сказал, а что точно означает "среднее" и "разность"? Я так понял из текста "отставание таймера" в процентах?

P.S. разработка интересная, но ИМХО скрипт не юзабелен если загружает проц более чем на 10%, следовательно практическое применение такому монитору найти сложно...


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Nicholas_S
Дата 26.12.2006, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 486
Регистрация: 12.10.2006
Где: Санкт-Петербург

Репутация: 5
Всего: 19



Sardar
Цитата

разработка интересная, но ИМХО скрипт не юзабелен если загружает проц более чем на 10%, следовательно практическое применение такому монитору найти сложно...

Разработка вообще занимательная, однако слишком все шатко-валко. У меня при 1000 снежинках процесс загружен на 50%... странно все это.
Но я как-то упомянул в соседней теме, что реальную производительность машины мы не знаем, поэтому "отставание таймера" здесь дает только далеко приблизительную оценку.


--------------------
...все в мире относительно
PM   Вверх
12345c
Дата 26.12.2006, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Цитата(Sardar @  26.12.2006,  16:00 Найти цитируемый пост)
12345c, это всё интересно, но главное ты не сказал, а что точно означает "среднее" и "разность"? Я так понял из текста "отставание таймера" в процентах?
Это я назвал в мониторе так кратко, но в тексте пояснил, что значит первое число:

Цитата(12345c @  26.12.2006,  09:37 Найти цитируемый пост)
 Процент отставания, ..., считался как среднее между максимальным и минимальным значениями отставания за несколько (22) измерений в течение 1.6 секунды. И приблизительное среднее за период 10-20 с бралось от этой полусуммы.
Подробнее: имеем таймер setInterval, единственный в системе. Сверяем его с часами - разностью показаний часов. Но не просто, потому что периодически возникают большие помехи от движений окон, мыши, запуска процессов и прочего. Наша задача - отделить эти помехи от правильных показаний, чтобы, если обнаружена помеха, показания не принимать.

Сразу скажу, что вычисление перегрузки процессора я ещё не получил, но она прямо следует из этих графиков. На пути к решению я сделал такой алгоритм (в http://js2.ru/example/xmp002/falling-snow-2.htm ).

Вычисляем отставание таймера от часов за несколько периодов. В исследуемом скрипте это число периодов определяет время усреднения - переменная tDebug=1600 , которую затем делим на stepTime (=70) - шаг таймера. Поэтому в эксперименте был период усреднения в 22 периода таймера (если он запаздывал, то время было больше, но это детали). Далее, в программе организовали массив aDTimeN, в который пишем среднюю разность показаний часов за tDebug/stepTime (=22) периодов. Это даёт возможность сгладить всплески задержек за короткие промежутки времени. Но этого мало - надо отсечь нестабильности. Для этого вычисляем 2 числа по массиву (именно для этого понадобился массив, а не просто очередь): максимальное отставание таймера и минимальное.
Код

  dTimeMax=0;dTimeMin=99999;if(aTimeStart.length==frmsN){
  for(i=0;i<aDTimeN.length;i++){
    dTimeMax=Math.max(dTimeMax,aDTimeN[i]/stepTime);
    dTimeMin=Math.min(dTimeMin,aDTimeN[i]/stepTime);}
И это не всё - для удобства анализа берём процент отставания, и нас интересует тоько 2 числа: полусумма предельных отставаний и полуразность. Последнее - показатель нестабильности, и его в теме вообще не анализировали, а первое называлось "Процент отставания", и его я заносил в таблицу вместе с показаниями CPU Usage.

Код
  DebMon('Среднее %1<br>разность',
    Math.pDigit(0,(dTimeMin+dTimeMax)*50-100),
    Math.pDigit(0,dTimeMax/dTimeMin*100-100)
  )
где pDigit(n,x) - функция взятия числа x с точностью n знаков после запятой.

Цитата(Nicholas_S @  26.12.2006,  17:44 Найти цитируемый пост)
У меня при 1000 снежинках процесс загружен на 50%... странно все это.
Действительно. Может, процессор 2-ядерный, и он показывает загрузку только 1 ядра? Если да, то это, кстати, надо будет учесть. 

smartov, поясняю на вышеизложенном дальше, что такое "17%-перегрузка". На опытах я обнаружил, что не-гекко-браузеры имеют плато на графиках перегруженности, имеющее величину примерно 16%. (Таймер запаздывает от часов на 16%.) Момент дальнейшего роста перегруженности я предложил считать точкой полной загрузки процессора (на самом деле это 70-85%. Что-то ведь надо же считать точкой загруженности? Загруженность на 100% для IE, судя по графикам, происходит в области больших отставаний таймера и никак характерно не выражается. И вот я привёл 2 числа: число снежинок, когда перегрузка - 17%, и число снежинок, когда CPU Usage=100% (для FF оно меньше). И вообще, зачем я это объясняю, ты график смотрел? smile)
Цитата(Sardar @  26.12.2006,  16:00 Найти цитируемый пост)
скрипт не юзабелен если загружает проц более чем на 10%
Тут некуда деваться. Имеем как факт "неюзабельный" скрипт, дающий перегрузку процессора. Имеем в скрипте способ регулировки нагрузки. И тогда, подключив вычисление перегрузки, можем настроить его так, чтобы на данной машине он работал на 50-60%. Обрати внимание - когда мы не имеем возможности этого делать, ты категорически заявляешь про 10% - и правильно, потому что 10% для 3ГГц - это 100% для 200 МГц - нижняя мыслимая граница мощности системы. Тут же появляется возможность поднять планку в 5-6 раз (при большом желании - в 8-10) и при этом не завалить все менее мощные системы.


Это сообщение отредактировал(а) 12345c - 3.3.2008, 12:53


--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
Sardar
Дата 26.12.2006, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



 smile 
12345c, ты бы лучше в геймдев или в разработку симуляторов подался, уж больно твои интересы чужды в мире JS'a и вообще вебтехнологий... smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
smartov
Дата 26.12.2006, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 7
Всего: 259



Цитата(12345c @  26.12.2006,  19:41 Найти цитируемый пост)
И вообще, зачем я это объясняю, ты график смотрел?

До меня просто не доходит каким макаром можно больше тормозить на меньшем количестве объектов %)
PM MAIL   Вверх
12345c
Дата 26.12.2006, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



17% и 100% - это к разным переменным относятся. Первое - к проценту перегруза, который вычисляется скриптом (dTimeMin+dTimeMax)*50-100, а значит, легко получим), второй - процент системной загрузки процессора, недоступный из скрипта. Написал их рядом, чтобы можно было видеть, как они соотносятся для разных бр. .
PM WWW   Вверх
Nicholas_S
Дата 26.12.2006, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 486
Регистрация: 12.10.2006
Где: Санкт-Петербург

Репутация: 5
Всего: 19



12345c, процессор 1-ядерный, но с технологией HT, сколько бы не увеличивал количество объектов - все равно 50%.
А ты пробовал расчитывать нагрузку с отставанием таймера при мат. вычислениях, не касаясь отрисовки объектов? Если будет время+желание, посмотри, мне интересно узнать твои результаты в данном вопросе и одновременно оценить корректность в своих.


--------------------
...все в мире относительно
PM   Вверх
12345c
Дата 27.12.2006, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Nicholas_S, если подумать, то эта загрузка 50% ведёт себя как 100%, и никак не сможем определить реальное число. И не надо - интересует только способность показывать перегрузку.

2. Проверить процесс выполнения скрипта без отрисовки достаточно просто, отменив скриптовую анимацию и оставив вычисления. Только хорошо бы сначала с одной задачей разобраться, а потом "растекаться мыслью". Применить вычисления перегрузки к реальному управлению скриптом - отдельная многоплановая задача, которая на очереди.

Sardar: интересно, попробуй запустить скрипт в 2 разных окнах на 2-ядерном процессоре - будет ли больше 50% загрузки. Если нет, то в 2 разных бр-рах с той же целью.

Добавил к Экселю диаграмму "загрузка - перегрузка" (изв. за каламбур). Она хорошо показывает, чётко ли работает скрипт с перегрузкой. Упомянутая особенность Гекко приводит к тому, что он отрабатывает режим перегрузки идеально - диаграммы имеют вид буквы "Г". Остальные начинают запаздывание таймеров задолго до перегруженности системы, с характерными "плато". Опера-9 героически стремится к букве "Г", у неё это почти получается. ;) Итого, в не-Гекко придётся искать точку достаточной загруженности скрипта, следя за 17%-перегрузкой, наверное. 


PM WWW   Вверх
12345c
Дата 28.12.2006, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Nicholas_S, сделал эксперименты по работе скрипта изменения перегрузок только с математическими рассчётами. Заодно, оценил, какая доля работы в браузере для данного скрипта занята рассчётами, а какая - выводом изображений. Здесь особо интересных результатов нет - просто скрипт подтверждает, что анимация происходит в паузы, а рассчёты - между паузами. Поэтому в промежутках между занятостью машины рассчётами видим пустую паузу на CPU Usage, ничем не занятую. Загрузка стремится к 100%, но не достигает их. Из этого несложно оценить долю рассчётов и анимации, подобрав такое количество "виртуальных" снежинок, чтобы нагрузка стала 50%. Приведу эти цифры для разных браузеров. (Вычисления были на другой машине примерно такой же мощности и скорости памяти (Athlon 2ГГц, DDR333), но 2-мониторная, с другой видеокартой. Вероятно, поэтому, или по другой причине, Опера и IE имели особенность, что всегда имели процент отставания таймера 10% при малых нагрузках. Примерно как Опера-7 на прежних графиках, но даже при 1 "снежинке" (несуществующей) - всё равно.

Как переделан скрипт. Убраны все обращения к объектам, связанным с DOM, а вместо них поставлены переменные (c,d). Таким образом, математические операторы сохранились. Образец для просмотра и экспериментов - http://js2.ru/example/xmp002/falling-snow-21a.htm .

Вот основной цикл:
Код
for (i=0;i<unitsNum;i++){
  if(!snow[i].present)continue;
    var d=(snow[i].posY+=snow[i].sink+lftRght[i]*Math.sin(crds[i])/3)+'px';
    crds[i] += x_mv[i];
    var b=snow[i].posX+lftRght[i]*Math.sin(crds[i]);
    var a=marginBottom+(snowOnScreen?0:scrlTop)/*-1.5*snow[i].size*/-snow[i].posY;
    //snow[i].size*=stepIncrease;
    var c=0;
    if(a<=0 || b>marginRight-c-25)
        {snow[i].style.visibility='hidden';newPosSnow(randomMaker((marginBottom-3*c)/2),i);continue;}
    var d=b+'px';
    if('IMG'=='IMG')d=d=c/1.6;
    else snow[i].style.fontSize=snow[i].size;
    if(a<=9.5*c){if(ie5)d=opac*a/(9.5*c)*100;
    else if(ns6||opera9)d=opac*a/(9.5*c);}
}


Таблица 50%-загрузки системы. (при числе "виртуальных" снежинок). При этом "Среднее" (процент отставания таймера) - 100, как и должно быть по описанной модели.

IE6 - 480
IE7 - 2100 (вычисления значительно быстрее)
Op7.54 - 2200 (но процент отставания таймера - 65. Корректирует?)
Op9.01 - 1500 (при проценте отставания - 37. Её поведение на этом графике при других процентах загрузки заслуживает внимания.)
FF1.07 - 1200 (процент отставания - 0. Этот точно корректно корректирует запаздывание таймера.)

(Интересно, если перейти с setInterval на setTimeout, коррекция сохранится?)

Смотрим на прежние графики, когда была 50%-загрузка.

IE6 - 27
IE7 - 30
Op7.54 - 170
Op9.01 - 135
FF1.07 - 18

Значит, отрисовка снежинок медленнее вычислений для отрисовки (с массивами и синусами) во столько раз:

IE6 - 34
IE7 - 140
Op7.54 - 24
Op9.01 - 20
FF1.07 - 130

Интереснее, конечно, 1-я таблица с реальной скоростью вычислений и 2-я с реальной скоростью отрисовки.

Добавление: на  1-й (упомянутой в теме) системе замеры 50%-й загрузки показали (условных снежинок):
IE6 - 750
Ie7 - 1750
Op7.54 - 1200 (из того же дистрибутива)
Op8.01 - 3100
Op9.10 - 1900
FF1.07 - 1100
FF2 - 1250

Это сообщение отредактировал(а) 12345c - 3.3.2008, 12:54


--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
JSman
Дата 29.12.2006, 01:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 279
Регистрация: 10.7.2006

Репутация: нет
Всего: 4



...мда.. вопрос не актуален.. sorry
анимация сейчас лежит только на flash, редко на Java.. а скрипты уже давно не в теме..
PM ICQ   Вверх
12345c
Дата 29.12.2006, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



...я так считал лет 5 назад smile. С ростом призводительности скриптов они могут занять скромное место в анимации. У них есть плюсы в доступности. Если отключить гиф- и флеш-анимацию, теряется только реклама и 1% непредусмотрительных флеш-деятелей. Если отключить скрипты, потеряются больше сайтов, на что немногие пойдут.

Добавлено @ 18:28 
(И Джаву, естественно, тоже отключают из-за глючности.)
PM WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0932 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.