инклюдим класс

  • Автор темы Данил
  • Дата начала

Данил

Guest
инклюдим класс

Господа, возникла следующая проблема.

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

я померял, вообщем время исполнения маленького скрипта значительно возрастает только от того, что я include этот большой скрипт.

Что можно поделать? (не знаю, может в пямять как-нибудь этот класс поместить, или еще что - чтобы каждый раз его не прогонять ... )

-~{}~ 07.06.04 03:53:

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

как с этим разбираться?
 

Данил

Guest
ок, спасиба, буду разбираться...

Вообще я немного удивился - уж могли бы сделать .чтобы хттп серевер сам как-нибудь кэшировал классы....

я согласен, может 70 кб и немного, но тормозит выполнение скрипта значительно :о(
 

neko

tеam neko
и что характерно, причина торможения не в размере...
 

Данил

Guest
гммм - посмотрел так.. Вроде эти акселераторы вещь полезная, но требуют установки на сервере...

У меня возник более конкретный вопрос - можно ли "руками" собрать нужные пхп файлы, и уже инклюдить не как текст?
 

Demiurg

Guest
Данил
раняя оптимизация - зло.
Перед тем, как что то оптимизировать надо убедиться, что это узкое место.
 

Данил

Guest
гмм - ну я вижу, что без инклюда скрипт прогоняется з 0.01 сек, а с ним - 0.04 -

-- стоит задуматься, что что-то не так делаю....
 

Demiurg

Guest
Данил
то есть без инклюда он работает ? зачем тогда этот инклюд ?
 

Данил

Guest
ну, если закомментить чуть, то работает.....


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

Но спрошивается зачем тогда в ПХП классы реализованы? Хотелось бы все таки оставить существующую структуру - один большой файл с описанием класса, и скрипты, которые используют объекты этого класса...

Возникает вопрос - как это оптимальней сделать....
 

Demiurg

Guest
подожди, так у тебя класс - это просто сборище функций ?
 

Данил

Guest
ну я в общем говорю - у меня куча классов и куча наборов функций. Они инклюдятся в нужные скрипты...
 

Demiurg

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

Данил

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

Данил

Guest
ну, разные исполняемые скрипты - /.... там, где нужны методы этого класса....
 

Demiurg

Guest
Ну они же не все вместе нужны ?
Разбить его все равно можно.
 

_RVK_

Новичок
Данил что за класс, что делает? Может сам класс разбить на несколько маленьких?
 

Данил

Guest
Можно , конечно, разбить - но это как то....

сейчас приведу примерную схему того, что у меня есть (очень примерную)....

итак, файлы
//player.php-------------------------
class Player
{
здесь много всего ......
function ShowInfo()
{
blah....blah....blah...
}
здесь еще больше всего (в сумме 70кб)
}
//--------------------------------

//shop.php--------------------------
class Shop
{
......
function SellGood(...){.....}
......
}
//-------------------------------

//s_functions.php--------------------
здесь куча функций для работы со строками
//-------------------------------


итак, теперь скриптики, кторые исполняются

//script1.php------------------------
include_once("player.php");
$player = new Player(...);

$player->ShowInfo(....);
........
//--------------------------------

//script2.php-----------------------
include_once("s_functions.php");
include_once("shop.php");

$shop = new Shop(...);
$shop->SellGood(....);

.........
//------------------------------

и т.д и т.д и т.д..........


получается небольшие скриптики инклюдят в себя огромные файлы и из-за этого сильно тормозят

можно, конечно player.php разбить на много маленьких плеериков, но с тем же успехом можно вообще набор функций сделать. Зачем классы тогда?

В общем - как с этим разобраться?
 

_RVK_

Новичок
Зачем классы тогда?

Про наследование слышал? Создаешь маленький базовый класс. А в потомках уже реализуешь нужную функциональность, под конкретную задачу. Не факто что так сделать можно в твоем случае, но попробовать стоит.

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

Данил

Guest
гмм - про наследование слышал - здесь неприменимо ...

может дело и не в классе, просто возникает жуткая разница во времени лишь при include("player.php");

....
 
Сверху