Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Общие вопросы > Внесите ясность |
Автор: Predator199 12.12.2012, 18:48 |
Бегаю туда, сюда. Есть список серверов, постр навигация все информеры и тп. По началу я писал циклы и тд, в 1 скрипте. Потом для удобства решил циклы и тп перенести в функции(отдельный скрипт). После чего разделял, переписывал. Решил посмотреть на скорость выполнения скрипта. Разницу не могу установить, в среднем 03 сек. Щас вновь перенес, то есть все в 1 скрипте без всяких функции передач массивов (переменных). Только постраничную навигацию сделал через функцию, она мне нужнa не для одного списка. Кто знает и испытал на себе, скажите как лучше.По мне так сразу писать и не передавать туда суда переменные, массивы (как я понимаю, так еще и озу затрагивает больше) Еще вопрос. Поставил с самого начала смарти. Теперь не понимаю для чего я его поставил. Он по-моему как то помогает кешировать страницы пользователю, но ведь браузер тоже кеширует их. Посмотрел содержание файлов, папки templates_c. Никаких плюсов не увидел. Если я его уберу, будит ли хуже? |
Автор: Predator199 12.12.2012, 21:31 |
Код я стараюсь писать правильно, не один раз переписывал. Без конца. Бегаю ,читаю, пытаюсь сделать лучше и все ни как не могу остановиться. Я собираюсь удалить смарти, зачем нагружать сайт. Скажите пожалуйста для чего он мне, в чем плюс для меня будит? |
Автор: Arantir 12.12.2012, 21:59 |
А вы уверены, что не нагрузите сайт больше, если будете все там писать сами без фреймворка? |
Автор: Predator199 12.12.2012, 22:22 |
Ну не знаю... Зачем подгружать шаблон через смарти, когда проще и быстрей вывести (без всяких шаблонов) на прямую из php скрипта в браузер. Поизучаю про это еще. Спс. |
Автор: Predator199 13.12.2012, 09:29 |
Убрал шаблонизатор, результат: Потребление озу снизилось с 1.95mb до 810кб. Время выполнения скрипта 1,8-2.0 сек. Шаблонизатор вовсе не нужен, смарти это огромный ненужный код. |
Автор: Aliance 13.12.2012, 10:13 |
![]() ![]() ![]() |
Автор: Predator199 13.12.2012, 10:42 |
Ой, не так=) 0.018-0.020 ![]() |
Автор: Guedda 13.12.2012, 11:33 | ||
Ну на всякий случай поставь тогда все доступные в сети библиотеки. Я тебе советую, как и многие выше - программирование - это не твое. Найми специалиста. Тебе вроде уже 18 лет (на сколько я умею пользоваться гуглом). Может, пока не поздно, выберешь другую специальность? |
Автор: Predator199 13.12.2012, 14:17 |
Автомеханик моя специальность=). Зачем все ставить, одной хватит ![]() В гугле у каждого свое мнение.На форуме более точно узнаешь. |
Автор: Arantir 13.12.2012, 15:08 |
Ничего себе увлечение. Тысячи серверов, тысячи посетителей, сотни тысяч ip... Как если бы программист попытался отремонтировать истребитель. Больше похоже на попытку срубить деньжат =) Да, в наши дни это совсем не сложно, особенно в интернете. Ну никто вам не судья, но самому все содержать без опыта в этой сфере может оказаться непосильным. Ладно бы еще программист сам крупный проект делал. Но вот так на пустом месте замок не выстроить. Впрочем, если вы будете успешно с этого получать неплохие деньги, то какая вам будет разница что тут люди говорят, правда? |
Автор: Predator199 13.12.2012, 16:00 |
Ну как сказать. Сперва так интересно было html писать и смотреть то что сделал. Далее надоел ucoz после 2 мес, перешел на постор cms. Не прошло и 3-х месяцев, как надоело пользоваться готовым. По началу делал не ради денег, а ради того : -В первую очередь ради интереса и увлечения -Ради того ,чтоб занять себя чем то в свободное время. -Создать такой проект где будит постоянное общение. Увлечение (заинтересованность) в тематике сайта. -Мне интересно смотреть на мою работу, интересно развивать. -Еще большее стремление дает то, когда знаешь и сможешь делать то что хочешь. В принципе я и щас делаю не ради денег, а ради знаний (выше перечисленного). Cделать то чего нет в нете, или хотя б сделать более быструю и мощную систему. Постоянно стремиться и делать лучше чем у других(в пане быстроты и оптимизации). Когда в нете сотни таких проектов и среди этих сотен продвигать свой, постоянно с кем то соперничать. Ну разве не интересно? Я учусь на своих ошибках ![]() |
Автор: baldina 13.12.2012, 16:33 |
Predator199, все же поменьше надо думать об оптимизации, больше - об архитектуре проекта. профессиональное программирование отличается от дилетантского вовсе не фенечками и производительностью, а масштабом: размер проекта, время жизни, число изменений. когда этого много, на первый план выходит удобство сопровождения. с другой стороны, грамотная архитектура обычно рождает хорошие продукты, в т.ч. с точки зрения производительности. ну и наконец, относительно web вообще и php в частности: есть различные методы повышения производительности, не связанные напрямую с устройством серверного скрипта, среди которых основной подход - кеширование (фронт-сервер типа ngnix, memcached, кэширование байткода). например, если используется кэширование байткода, разница в исполнении плоского скрипта и скрипта с функциями крайне незначительна. а если используется кэш готовых страниц, то все еще быстрее и менее зависимо от скрипта. и т.д. плюс распределение нагрузки, но для этого архитектура проекта должна быть на это рассчитана. так что архитектура много важнее локальной оптимизации. |
Автор: Arantir 13.12.2012, 20:01 | ||
Вы сейчас изобретаете велосипед. Причем не очень хорошо. Программирование - это не знание языка программирования. Это способ мышления. Вы можете себе представить, каким образом был придуман бинарный алгоритм поиска? Он ведь совершенно не удобен для использования человеком. Делить пополам и сравнивать быстрее, чем пересматривать по очереди, может только компьютер. И тот, кто придумал алгоритм, прекрасно это понимал. Вам нужно не на форумах лазить, а умные книжки читать. Есть целая куча очень толковых книг по программированию. Причем не по какому-то языку, а по программированию в целом - по алгоритмам, шаблонам, концепциям и подходам. Сходите в ближайшую библиотеку и возьмите =) А язык программирования - это мелочь, просто инструмент. Язык только реализует в себе уже существующие принципы, а не порождает их. Зная эти принципы выучить сам язык не представляется чем-то сложным. Не начинайте строить дом без фундамента. Если сейчас создадите себе неправильное понимание сути того, что делаете, то ничего путнего потом не получится. |
Автор: Predator199 14.12.2012, 23:26 |
Раз решил не использовать шаблонизаторы. Возникла мысль. Если пользователь обновляет чаще 3 раз в секунду, тогда создать кеш в котором бут храниться тот html код страницы. Закрываем часть скрипта , отдаем код с кеша. Активность продолжается с выше 3 мин, признать досом и блокировать фаерволом. Бред? |
Автор: Arantir 15.12.2012, 00:12 |
А если раз в 4 секунды, то кеш не создавать? А если 1000 пользователей одновременно на сайте и каждый каждые 10 сек грузит какую-то страницу? Во всех нормальных фреймворках все шаблоны кешируются в построенном состоянии. То есть одна страница - это один целый файл, со всеми уже включенными в него подшаблонами и т.п. И при выводе получается парсинг только одного файла. Абсолютного кеширования все равно не сделаешь. На страницах ведь есть динамические данные вроде новостей. А так же одна и та же страница может выводить разные данные гостю, админу, пользователю... Просто надо грамотно уменьшить количество любых лишних операций. Например, проверять только дату файлов, которые должны бы были быть задействованы для шаблона. Проверка даты - не ресурсоемкая операция. Если дата не менялась, то выдавать кеш. То же для шаблонов в БД. Сделать таблицу-лог изменений. Один запрос покажет, стоить ли грузить шаблоны из БД или они и так актуальны в локальном кеше. |
Автор: Predator199 15.12.2012, 07:38 |
Спс |
Автор: Sentox 17.12.2012, 09:02 |
Всё зависит от первоначальных требований и выбор фреймворка ой как не всегда правильный выбор. Подключение файлов и их обработка для high load системы это так же очень важный фактор, так как работа на физическом уровне считается одним из важных бутылочных горлышек в оптимизации. На то в фреймворках и кэшей много, что много универсализации. Ещё раз, всё зависит от первоначальных требований и будущего проекта. |