Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Влияние кол-ва переменных на производительность? 
V
    Опции темы
anurbol
Дата 16.4.2010, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 30.5.2007
Где: Алматы, Казахстан

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



В общем влияет ли количество объявленных переменных, массивов, объектов, на производительность, на время отдачи контента и т.д. ? Недавно в своем движке вывел get_defined_vars и обалдел, страница больше мегабайта получилась. С одной стороны это очень удобно, раз переменные объявлены в главном файле, всегда можно обратиться к ним сразу где бы то ни было, но... влияет ли это как то на быстродействие сайта???
PM MAIL   Вверх
bars80080
Дата 16.4.2010, 19:31 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(anurbol @  16.4.2010,  19:18 Найти цитируемый пост)
В общем влияет ли количество объявленных переменных, массивов, объектов, на производительность, на время отдачи контента и т.д. ?

однозначно да.

насколько сильно? в общем случае очень слабо.
хотя бывают случаи, когда туда-сюда таскают гигантские объёмы данных, да ещё и непрестанно копируют их


Цитата(anurbol @  16.4.2010,  19:18 Найти цитируемый пост)
С одной стороны это очень удобно, раз переменные объявлены в главном файле, всегда можно обратиться к ним сразу где бы то ни было

вот следовало бы очень хорошо подумать над эти "очень удобно". насколько часто у тебя требуется из конца кода обратиться к переменной объявленной в начале?

обычно тянется всего небольшая группа данных, составляющих страницы. а вот всё остальное?
PM MAIL WWW   Вверх
anurbol
Дата 16.4.2010, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 30.5.2007
Где: Алматы, Казахстан

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



Цитата

вот следовало бы очень хорошо подумать над эти "очень удобно". насколько часто у тебя требуется из конца кода обратиться к переменной объявленной в начале?

 Очень удобно! smile Просто в главном файле инклюдятся все классы, функции, объявляется массив с данными о пользователе и т.д. и т.п. С другой стороны, есть страницы, где вообще показывается только пару строк текста, но тем не менее, если вывести get_defined_vars, то там будет несколько тысяч строк с переменными, что очень пугает, хотя вроде и не чувствуется (обычно генерация страницы не превышает 0.2 сек.) 

Альтернатива как я понимаю - в каждом отдельном файле инклюдить только то, что нужно. но так как система уже настолько навороченная, это такая ж*па, и собственно хочется спросить стоит ли овчинка выделки?
PM MAIL   Вверх
IgorIV
Дата 16.4.2010, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 2
Всего: 8



Цитата(anurbol @  16.4.2010,  20:58 Найти цитируемый пост)
и собственно хочется спросить стоит ли овчинка выделки?

А ты потести siege, увидишь... 
PM MAIL   Вверх
LeoK
Дата 17.4.2010, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(anurbol @  16.4.2010,  19:18 Найти цитируемый пост)
С одной стороны это очень удобно, раз переменные объявлены в главном файле, всегда можно обратиться к ним сразу где бы то ни было, но... влияет ли это как то на быстродействие сайта???

видимо у вас много переменных, объявленных в globals... имхо это зло
Данные нужно генерировать в соответствии с контекстом и не таскать за собой кучу ненужного на данный момент
PM MAIL   Вверх
MoLeX
Дата 17.4.2010, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Цитата(LeoK @  17.4.2010,  09:49 Найти цитируемый пост)
видимо у вас много переменных, объявленных в globals... имхо это зло

Ээ, от куда такой вывод???

Цитата(anurbol @  16.4.2010,  19:58 Найти цитируемый пост)
если вывести get_defined_vars, то там будет несколько тысяч строк с переменными, что очень пугает, хотя вроде и не чувствуется (обычно генерация страницы не превышает 0.2 сек.) 

Плохо спроектировано у вас.

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


Цитата(bars80080 @  16.4.2010,  19:31 Найти цитируемый пост)
обычно тянется всего небольшая группа данных, составляющих страницы. а вот всё остальное? 

 smile 


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
LeoK
Дата 17.4.2010, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(MoLeX @  17.4.2010,  10:21 Найти цитируемый пост)
Ээ, от куда такой вывод???

Ну как правило get_defined_vars вызывают в глобальном контексте и никак не в контексте функции либо метода
Насчет проектировки - действительно плохо спроектировано
PM MAIL   Вверх
nerezus
Дата 18.4.2010, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


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

Репутация: 12
Всего: 43



Не влияет.
На производительность влияют СУБД, косяки в алгоритмах, отсутствие кеширования, тормоза ФС, тормоза сети, кривая настройка сервера, отдача статики неасинхронным сервером и хреновое железо.
Остальные факторы много меньше погрешности и не имеют значения.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
nerezus
Дата 18.4.2010, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


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

Репутация: 12
Всего: 43



Цитата

С одной стороны это очень удобно, раз переменные объявлены в главном файле, всегда можно обратиться к ним сразу где бы то ни было
 Ах да. Самые ужасные ошибки - ошибки проектирования. Ваш код просто отвратителен.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
krundetz
Дата 19.4.2010, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

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



Цитата(anurbol @  16.4.2010,  19:58 Найти цитируемый пост)
Просто в главном файле инклюдятся все классы

посмотрите в сторону заложенной в php возможности автоматически подключать нужные файлы используя функцию __autoload()
в какой то степени она позволит избавиться от:
Цитата(anurbol @  16.4.2010,  19:58 Найти цитируемый пост)
такая ж*па

при переделки системы.

Цитата(nerezus @  18.4.2010,  18:41 Найти цитируемый пост)
Остальные факторы много меньше погрешности и не имеют значения. 

ещё бывает такая вещь как ограничение размера оперативной памяти, вот тогда размер памяти необходимой при выполнение скрипта имеет большое значение, просто сейчас легче купить у хостинга тариф с большим размером выделяемой оперативной памяти



Это сообщение отредактировал(а) krundetz - 19.4.2010, 08:47


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
anurbol
Дата 21.4.2010, 05:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 30.5.2007
Где: Алматы, Казахстан

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



Цитата

Не влияет.
На производительность влияют СУБД, косяки в алгоритмах, отсутствие кеширования, тормоза ФС, тормоза сети, кривая настройка сервера, отдача статики неасинхронным сервером и хреновое железо.
Остальные факторы много меньше погрешности и не имеют значения. 


Такой ответ я и хотел услышать  smile 
Спасибо nerezus ))) 

насчет проектирования - 

Цитата

Цитата


Цитата(anurbol @  16.4.2010,  19:58 Найти цитируемый пост)
если вывести get_defined_vars, то там будет несколько тысяч строк с переменными, что очень пугает, хотя вроде и не чувствуется (обычно генерация страницы не превышает 0.2 сек.) 


Плохо спроектировано у вас.

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


А кстати 0.2 это много?? это если учесть что 0.2 сек. это на 2-ядерном локалхосте-денвере с 2 ГБ озу. 

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

MoLex, и Вам спасибо, давно уважаю Вас!

Это сообщение отредактировал(а) anurbol - 21.4.2010, 05:06
PM MAIL   Вверх
MoLeX
Дата 21.4.2010, 05:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Цитата(anurbol @  21.4.2010,  05:05 Найти цитируемый пост)
А кстати 0.2 это много?? это если учесть что 0.2 сек. это на 2-ядерном локалхосте-денвере с 2 ГБ озу.

денвер? под виндовс? тогда не много


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
nerezus
Дата 21.4.2010, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


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

Репутация: 12
Всего: 43



anurbol, в любом случае сведи количество общеглорбальных переменных к 0.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
lukas
Дата 20.9.2010, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 3
Всего: 15



Я думаю на скорость это не влияет абсолютно, потому что один фиг - хеш таблицы (не те что в языке, а те что внутри реализации языка) настолько быстрые, что там хоть миллион переменных будет, все равно поиск будет мгновенный вне зависимости от кол-ва элементов. Это конечно не говорит о том, что большое количество глобальных переменных это хорошо, надо объединять их в массивы, создавать объекты и т.п.

Хех, не заметил  дату поста. Форум по пхп умер?

Это сообщение отредактировал(а) lukas - 20.9.2010, 22:23


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
MoLeX
Дата 21.9.2010, 06:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Цитата(lukas @  20.9.2010,  22:20 Найти цитируемый пост)
Форум по пхп умер?

нет жив


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




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


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

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