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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Использования памяти. Классы 
:(
    Опции темы
Oflashp
Дата 4.8.2007, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Собственно есть класс, назовём core, который имеет набор методов.
При запуске метода core->load, скрип обходит папку modules/ в папке подпапки с модулями. Например games и music. Соотвественно заходит в папки и инклудит(include()) файл index.php из каждой подпапки. То-есть в данном случае инклудит:
modules/music/index.php
modules/games/index.php
Каждый файл содержит класс с названием music и games соотвественно, который при вызове инклудит все остальные файлы .php из своей директории. Ну, а далее по параметрам которые переданны методу core->load запускается нужный класс.
Собственно вопрос:
Насколько будет такой метод губителен для быстродействия и использования памяти. Или 
Интересуют ответы для PHP 4 и 5, если конечно метод хранение классов изменялся в PHP в данных версиях.
Вопрос стоит для меня ребром, т.к корректное использование памяти стоит очень жестко в разрабатываемом проекте.
PM MAIL ICQ   Вверх
pento
Дата 4.8.2007, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Oflashp, так а что мешает самому потестировать/попрофилировать с помощью XDebug например?
PM MAIL   Вверх
Oflashp
Дата 4.8.2007, 17:31 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Времени не хватает, чтоб тестировать и разрабатывать.
Просто вопрос сводится к тому, что заносятся классы в память полностью или только их обьявление.

Добавлено через 5 минут и 36 секунд
Интересные данные нашёл в доках. Т.к вызов подружаемых методов в классах делается функцией call_user_func, то:
Цитата

Variable functions took 0.125958204269 seconds.
call_user_func took 0.485446929932 seconds.
eval took 2.78526711464 seconds.

This was run on a Compaq Proliant server, 180MHz Pentium Pro 256MB RAM.  Code is as follows:

Код

<?php

function fa () { return 1; }
function fb () { return 1; }
function fc () { return 1; }

$calla = 'fa';
$callb = 'fb';
$callc = 'fc';

$time = microtime( true );
for( $i = 5000; $i--; ) {
    $x = 0;
    $x += $calla();
    $x += $callb();
    $x += $callc();
    if( $x != 3 ) die( 'Bad numbers' );
}
echo( "Variable functions took " . (microtime( true ) - $time) . " seconds.<br />" );

$time = microtime( true );
for( $i = 5000; $i--; ) {
    $x = 0;
    $x += call_user_func('fa', '');
    $x += call_user_func('fb', '');
    $x += call_user_func('fc', '');
    if( $x != 3 ) die( 'Bad numbers' );
}
echo( "call_user_func took " . (microtime( true ) - $time) . " seconds.<br />" );

$time = microtime( true );
for( $i = 5000; $i--; ) {
    $x = 0;
    eval( '$x += ' . $calla . '();' );
    eval( '$x += ' . $callb . '();' );
    eval( '$x += ' . $callc . '();' );
    if( $x != 3 ) die( 'Bad numbers' );
}
echo( "eval took " . (microtime( true ) - $time) . " seconds.<br />" );

?>


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


Опытный
**


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

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



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

Это сообщение отредактировал(а) Anarki - 5.8.2007, 15:32


--------------------
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0621 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


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

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