Перейти к контенту

Производительность 1.3 vs 2.x


Рекомендуемые сообщения

FatCat, по скрину у вас 6 метров именно на PHP(и phpmail соответственно), а MySQL это отдельный вопрос.

 

GiV, каким образом парсинг XML может так координально увеличивать нагрузку, если он необходим только для некоторого количества действий админа, которые не так часто делаются?

Ссылка на комментарий
Поделиться на других сайтах

Аякс не должен снижать нагрузку на сервер, там же идет запрос к тому-же самому индекс.пхп, в котором делаются все те же загрузки тех же дурацких кешей и переменых.
Ссылка на комментарий
Поделиться на других сайтах

Аякс не должен снижать нагрузку на сервер, там же идет запрос к тому-же самому индекс.пхп, в котором делаются все те же загрузки тех же дурацких кешей и переменых.

 

Так может надо было сделать по другому)). И кеши все же это не плохо, хоть и память занимают, просто в 2.х их перерасход.

 

Если правильно сделать, то ajax наоборот должен снижать количество операций и ОП

Ссылка на комментарий
Поделиться на других сайтах

Т.е. то, что итак уже в оперативной памяти заносят в оперативную память снова когда достают этот кеш в переменную )...

Боюсь что вы плохо понимаете механизм кешей в IPB, если пишете такое.

 

А ajax'ом можно наоборот оптимизировать многое).

С удовольствием почитаю про революционную оптимизацию приложений с использованием ajax.

 

каким образом парсинг XML может так координально увеличивать нагрузку

большинство проблем с недостатком памяти возникает в трех случаях:

1. Парсинг XML ресурсов при обновлении и установке.

2. Обработка большого количества текста при существовании пользовательского бб-кода

3. Работа модулей системы порождающее большое количество объектов (например профиль пользователя, главная страница портала)

 

Пункты 1,2,3 отсутствуют в версиях 1.х.

Ссылка на комментарий
Поделиться на других сайтах

2. Обработка большого количества текста при существовании пользовательского бб-кода

3. Работа модулей системы порождающее большое количество объектов (например профиль пользователя, главная страница портала)

 

Пункты 1,2,3 отсутствуют в версиях 1.х.

Пункт 2 наверное все же присутствует.

Когда было 5 Мб, портал и профиль пользователя открывались без проблем, а вот страница с большим количеством текста отдавала 502-й эррор.

Ссылка на комментарий
Поделиться на других сайтах

Парсер bb Кода в 2.х отличен от 1.х и 2.0. Там вообще другая идеология теперь.

 

Портал и профиль имеются ввиду для версий 2.2 и 2.3

Ссылка на комментарий
Поделиться на других сайтах

Боюсь что вы плохо понимаете механизм кешей в IPB, если пишете такое.

 

С удовольствием почитаю про революционную оптимизацию приложений с использованием ajax.

 

Сильно углубляться не надо, что-бы это понять.

 

По поводу кеширования. Ну, например, версия 2.2. Смотрим файлы /ips_kernel/class_cache_*.php

 

Например, еакселератор, функции do_put и do_get:

 

function do_put( $key, $value, $ttl=0 )

{

eaccelerator_lock( md5( $this->identifier . $key ) );

 

eaccelerator_put( md5( $this->identifier . $key ),

$value,

intval($ttl) );

 

eaccelerator_unlock( md5( $this->identifier . $key ) );

}

 

function do_get( $key )

{

$return_val = eaccelerator_get( md5( $this->identifier . $key ) );

 

return $return_val;

}

 

В функции do_get у нас достается значение из ОП и возвращается новую переменную. Если бы не дублировалось, то $return_val было бы чем-то в роде ссылки на то место из ОП и любое изменение в этом $return_val было бы и в оперативной памяти. Допустим так.

 

Далее смотрии в ipsclass

function update_cache( $v=array() )

 

В конце функции:

$this->cachelib->do_remove( $v['name'] );

$this->cachelib->do_put( $v['name'], $value );

 

Т.е. мы перезаписываем кеш в ОП из переменной.

 

Да и во всех описаниях функций *******_get(), пишут, что она возвращает значение того, что было закешировано при помощи *******_put().

 

Если действительно там используется всегда одно место ОП, то настойчивая просьба направить меня, не ведающего на путь истинный :D.

 

По поводу ajax. Тоже идея совсем очевидная. Обычно аякс используют для того, чтобы изменить какую-то часть на странице или отослать какую-то команду на сервер, ничего не меняя. Думаю понятно, что генерация маленькой части происходит быстрее, чем генерировать всю страницу заново, с ее запросами. Я уже объяснял в другой теме как можно даже избежать запроса к таблице мемберов и сессий. А для таких действий как препросмотр можно вообще к БД не подключаться, а вызвать только post_parser.

Ссылка на комментарий
Поделиться на других сайтах

предпросмотр поста на аяксе?

в 21х вроде нет такого)

кстати над этим надо подумать

Sannis у нас любит аякс..

 

Я уже объяснял в другой теме

ссылку плиз

Ссылка на комментарий
Поделиться на других сайтах

предпросмотр поста на аяксе?

в 21х вроде нет такого)

кстати над этим надо подумать

Sannis у нас любит аякс..

Есть там некорректность некоторая с правами, но в целом... есть и более серьёзные трудности.

 

На чистом 2.х такое сложно сделать, ибо для принятия поста нужен xmlout.php и конвертирование кодировок, которое идёт в том числе через ipsclass.php. И без БД в большинстве случаев не получится, ибо большинство кеш бб-кодов из БД тянут. Да и все функции по работе с кешами тоже в том числе через него проходят. Так что лучше почитать по той ссылке, как Hostem предлагает сэкономить. В 1.3 это бы прокатило, а вот в 2.1 и выше — без многочисленных корректировок основного кода не выйдет.

 

А вот написать предпросмотр через AJAX обычным способом можно.

Ссылка на комментарий
Поделиться на других сайтах

Уже не помню где писал)). Но если надо проверить имеет ли пользователь читать определенное сообщение не обязательно делать запросы к таблице мемберов и сессий, чтобы сравнить sid или пароль. Можно воспользоваться контрольной суммой передав в будущий запрос ajax некоторые параметры, которые нужны для просмотра данной страницы или вывода ссылки на какую-то команду. С генерацией этой же страницы нужно сформировать контрольную сумму от этих параметров.

 

Например, мы хотим, чтобы при наведении на ссылку темы с главной страницы аяксом подгружался последний ответ. Чтобы не могли таким образом прочитать посты скрытого масками форума нужно сформировать ключ например, таким образом: "md5($ibforums->perm_id."e3b^3+*-/*");". $ibforums->perm_id - это маска для чтения форума. Этот ключ вместе с параметром $ibforums->perm_id передаем через ajax при наведении на ссылку темы.

 

На стороне аякс выполняется проверка ($checksum, $perm_id входные параметры):

 

if ($checksum!=md5($perm_id."e3b^3+*-/*"))

{

echo "ОШИБКА ДОСТУПА";

}

 

Далее нужны запросы для сообщения в топике и форума, в котором это сообщение (чтобы его маски сравнить с $perm_id).

 

Естественно md5($perm_id."e3b^3+*-/*") надо выделить в одну функцию ).

 

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

 

------------------------

 

В принципе если для предпросмотра используются такие запросы, которые закешированы МуСКЛом в ОП, то это все же лучше чем загружать много чего другого. А если нет запроса к базе то в случае если БД выдает ошибку предпросмотр будет работать).

Ссылка на комментарий
Поделиться на других сайтах

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

 

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

Мы тут как раз с Архаром на днях критиковали хранение пароля от запороленного форума в куках, http://www.ibresource.ru/forums/blog/arhar...hp?showentry=66

Ссылка на комментарий
Поделиться на других сайтах

В топку эту двуху. Я сегодня ковырял ips_text_editor.js думал все мозги сломаю.
Ссылка на комментарий
Поделиться на других сайтах

В топку эту двуху. Я сегодня ковырял ips_text_editor.js думал все мозги сломаю.

Зато RTE, хотя он и не используется часто. Мозги сломать на какомнибудь редакторе для CMS сломать можно, когда там кнопки десятками исчисляются и таблицы на ходу генерятся(в лучшем случае таблицы). Но файлик зло, не спорю.

Ссылка на комментарий
Поделиться на других сайтах

Всё там ухудшается его "сжатостью". Это надо ж так поиздеваться IPS над своими клиентами, просто пипец.
Ссылка на комментарий
Поделиться на других сайтах

Эээ...) Для клиентов есть папочка /Development/javascript_uncompressed/ в дистрибутиве :D Думаю тебе будет несложно её достать.

 

P.S. К слову сказать: ips_text_editor.js — 3721 строка, ipsclass.php — 5504 строк. Вот блин наваяли кода для Мозиллы

Ссылка на комментарий
Поделиться на других сайтах

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

Я пока его копал людя в резудьтате стал меньше напоминать =)
Ссылка на комментарий
Поделиться на других сайтах

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.