[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Производительность - много мелких файлов
VLK
Вопрос что будет более производительным, допустим есть сайт, на нем есть div в который мы вставляем или форму для входа или форму с пользовательскими данными (выглядит это примерно как на mail.ru)


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

как будет производительнее в данном случае, создать 3 класса и распихать их по трем файлам и использовать __autoload


файл auth.php
<?php
class
auth {

static function check() {

if ( /* пользователь авторизован */ )
{ user_form::get(); }

else { login_form::get(); }

}
}

?>


файл user_form.php
<?php
class
user_form {

static function get() {
?>
/* тут html форма пользователя со ссылками на редактирование профиля, личные сообщения и т.д. */

<?php
}
}

?>


файл login_form.php
<?php
class
login_form {

static function get() {
?>
/* тут html форма для входа пользователя */
<?php
}
}

?>



или держать это все одном файле, в одном классе?

Вопрос касается даже не данного кода выше, а вообще в целом.
Aeq
я делаю так: есть класс, экземпляры которого нужно создавать где-то, этот класс лежит в отдельном файле, если этот класс внутрях себя создает экземпляры других классов, которые больше нигде не используются и никогда не должны (типа как приватные классы-хэлперы), то эти классы складываются в тот же файл. Проблема подгрузки интерпретатором кучи файлов решается акселератором (все скрипты держатся в оперативе в скомпилированном виде), а с версии 5.5 опкэшер встроено прям в пхп, так что куча файлов - не проблема, и с автолоадом все получится удобно и структурировано.
VLK
Цитата (Aeq @ 15.12.2013 - 18:00)
я делаю так: есть класс, экземпляры которого нужно создавать где-то, этот класс лежит в отдельном файле, если этот класс внутрях себя создает экземпляры других классов, которые больше нигде не используются и никогда не должны (типа как приватные классы-хэлперы), то эти классы складываются в тот же файл. Проблема подгрузки интерпретатором кучи файлов решается акселератором (все скрипты держатся в оперативе в скомпилированном виде), а с версии 5.5 опкэшер встроено прям в пхп, так что куча файлов - не проблема, и с автолоадом все получится удобно и структурировано.

Спасибо конечно за ответ, но как лучше то в плане производительности?

Для меня лично (как разработчика) проще держать методы одного "поля" в одном классе, вот допустим в примере выше проще держать в одном классе в одном файле, но как говорится хотелось бы узнать мнение php в перрвую очередь, ему как быстрее будет.
Aeq
в плане производительности:
1. открытие файла = затраты по времени
2. интерпретация класса = затраты по времени.
чем меньше файлов, чем меньше классов, чем меньше функций, чем меньше кода, тем быстрее интерпретатор с этим всем справится. это же очевидно. Только вот нужно ли об этом беспокоиться? если задача вас приперла к тому что вы об этом беспокоитесь, то скорее всего проще запилить модуль на си для тех мест которые требуют такой высокой производительности.
mvg
Что если замеры произвести на конкретной модели?
sergeiss
VLK, а почему вообще такой вопрос возник? Сайт тормозит или просто интересно?
С практической точки зрения можно, конечно, "поиграться" с разным количеством файлов. Получить разницу в сотые-тысячные доли секунды. А потом можно всё это "профукать", сделав какой-нибудь один неоптимальный запрос, который затормозит всё на несколько секунд.

Я это к тому, что не стОит париться по поводу таких тонкостей, если только у тебя не 1 млн одномоментных юзеров.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
VLK
Цитата (sergeiss @ 15.12.2013 - 19:01)
VLK, а почему вообще такой вопрос возник? Сайт тормозит или просто интересно?
С практической точки зрения можно, конечно, "поиграться" с разным количеством файлов. Получить разницу в сотые-тысячные доли секунды. А потом можно всё это "профукать", сделав какой-нибудь один неоптимальный запрос, который затормозит всё на несколько секунд.

Я это к тому, что не стОит париться по поводу таких тонкостей, если только у тебя не 1 млн одномоментных юзеров.

Ну это как у всех новичков, пытаются изначально писать все правильно и самым оптимальным методом, сайта как такого нет, я как раз пишу свою CMS (для тестирования и пополнения своих знаний)
dr.nomore
Внезапно over9000 пользователей ломанутся регится и дергать классы за косички...

Так вот, пока там юзер будет думать какой у него логин, какое имя и все такое, можно еще сотню сайтов ему открыть.
VLK
Цитата (mvg @ 15.12.2013 - 18:40)
Что если замеры произвести на конкретной модели?

Каким образом?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.