![]() |
Oптимизaция cкpиптoв [пapa вoпpocoв]
Haчинaю изyчaть PHP и xoтeлocь бы yзнaть, кaк cильнo нa пpoизвoдитeльнocть (в чacтнocти нa cкopocть paбoты cкpиптa) влияют yдaлeниe кoммeнтapиeв, лишниx пpoбeлoв и пepeвoдoв cтpoк, нeнyжныx cимвoлoв, иx зaмeнa (нaпp., <?php нa <?) и т.п.?
2) Для paбoты oднoй oпции в cкpиптe иcпoльзyeтcя пpoвepкa нa нaличиe фaйлa, тaк вoт, кaк лyчшe (кoppeктнee) этo peaлeзoвaть, чтoбы пpoвepялocь нa нaличиe фaйлa file_exists или нa eгo oтcyтcтвиe !file_exists? Или этo aбcoлютнo нe имeeт никaкoгo знaчeния? |
действие выполняется одно file_exists
какая разница... А зачем пробелы удалять в пхп ? Пробелы в хтмл надо убивать, чтоб быстрее страница грузилась, правда это ужасно... Зато поисковики любят без лишних пробелов -) Тебя такие странные вопросы интересуют... Надеешься сервак сильно загрузить поситителями? |
Все это абсолютно не влияет на скорость работы...
Не парся над такой мелочью.... Вот если у тебя запрос к базе на 30 строк, то это может повлиять на быстродействие... |
Если важна скорость, тогда лучше писать на асемблере :d
|
Это экономия на туалетной бумаге.
|
нее коменты конечно не влияют, но для некоторых функций можно сделать оптимизацию - в хелпе по пхп это сразу написано. качай с офф сайта.
|
Цитата:
Чем их меньше - тем хуже. При изменении кода. |
2 Zaco:
Надо разделять понятия: оптимизация алгоритма и удаление лишних пробелов :-) |
2nerezus может я конечно заблуждаюсь.. меньше - хеже это в смысле читабельности кода, но разьве каменты влияют сильно на скорость?
2fucker"ok я сказал про лишнее пробелы и каменты - никак это не влияет (сильно не влияет!) |
Цитата:
http://tony2001.phpclub.net/doc/standard/ |
Цитата:
На нескольких десятитысячных секунды не сэкономишь. |
<?php лучше использовать, так как бывают серверы где апач не считает короткую запись (<?)за пхп...
Цитата:
1)Взять строку. 2)Анализировать строку Если из пунтка два можно получить комманды то: 3)Интерпритировать код 4)Выполнить комманды , которые получились из пункта три. Так вот это конечно все только приблизительно,но все же,помыслим: Интересное начинается во 2 пункте... Интрерпритатору нужно просмотреть взятую строку,если это не коментарий,то анализировать синтаксис.Значит интерпритатору нужно еще определять коментарий ли это,если например в предыдущей части взятого кода встречается "/*" то интерпритатору нужно найти символ закрывающий коментарий "*/", а это занимает процессорное время и память(нужно ведь запомнить откуда начинается коментарий). То есть теоритически,коментарии замедляют выполнение скрипта,но естественно это замедление незначительное.Но это только мое мнение,возможно ошибочное, т.к. нужно знать алгоритм работы компилятора,мы же можем только предпологать. Вопще оптимизация скриптов дело тонкое,мало что зависит от коментариев,пробелов и т.п намного больше оптимизация зависит от используемых функций зы Все выше-перечисленное ИМХО |
все перечисленное выше - ничто по сравнению с оптимизацией алгоритма ;)
|
Все, говорящие, про экономию на туалетной бумаге - идут лесом и стоят раком =) Без обид, просто есть несколько НО.
1) Оптимизация алгоритма и убирание лишних пробелов - почти одинаковое понятие, линия не четкая и не ровная между ними. Инь-Янь епть. 2) Практически у каждой функции есть ее альтернатива. Нарпимер содержание текстового файла в браузер можно вывести практически 10-ю способами. И практически никто не знает что статику намного эффективнее юзать file_get_contents() если файловая система поддерживает контенты и memory mapping или же readfile, которая не получает содержание файла, а сразу кладет его в буфер, т.е. отдает в браузер. Все же юзают include. На 1000 инклудов файла в 2 кила file_get_contents() экономит 3 секунды серверного времени. А это писек как не мало. Вот и попробуйте проверсить тут границу между оптимизацией кода и алгоритма. Использование оптимальных функций впринципе это издержки кода, но точно так же могут быть оговорены и в алгоритме. Поэтому про туалетную бумагу тут очень загнуто. Не надо путать Программирование с Web-программированием! Это 2 разные вещи! В обычном программировании вы не задумываетесь о меловчах, но в вебе вашим софтом НА ОДНОЙ ТАЧКЕ будут пользоваться миллионы пользователей. Если вы купите туалетную бумагу для себя на 10 рублей ороже чем обычно - разницы не почуете. Если же вам нужно купить туалетной бумаги на всю российскую армию, тот разница 10 рублей в цене бумаги будет очень существенной, она будет огромной!!! 3) Попробуйте в конце скрипта поставить 10 000 переносов строк. Даже самый простой скрипт будет выполняться секунд 5. Если убрать все комментарии, все лишние переносы и проьелы экономия будет, поверьте. Да и потом это просто хороший тон. Комментировать нужно не код, а алгоритм, который до этого пишется в тетради. Все равно что на машину писать аэогрофом ее характеристики. Макс скорость и прочее. Зачем? Они один раз указаны в ее документах и более не понребуются. Впринципе я могу писать еще долго, но смысла не вижу. Просто отвечу на вопрос. Если речь идет о web-программировании, то да. Даже совершенно мелкая оптимизация кода играет очень большую роль. Не стоит о этом забывать. Приведу очень простой пример. Система статистики сайтов. mail.ru, у них поряка 20 серваков все это считают и отображают. клиентов мало. Rax.ru, 1 800 000 клиентов, немеренно количество просмотров ежедневно. 1 слабенький сервак с 800 Mhz процом на борту ее обеспечивает. Поймите, я не хочу никого обидеть, не хочу ни с кем спорить. Просто если бы речь шла о правильной реализации XSS - и бы и пчку бы свою не открывал. А когда тут вот так бессмысленно и необосновано пишут про туалетную бумагу - это бред. Еще посчет file_exists(). Я тараюсь это не юзать, я делаю примерно так. if(@readfile('cash/123.html')){ echo 'Фал загружен'; }else{ echo 'Файл отсутствует на серваке.'; } Таким образом я и проверяю наличие файла и сразу елаю действие над ним. вот что это в данном случае? Оптимизация алгоритма или кода? Это моифицирование алгоритма для оптимизации кода полчается. Вообще все вопросы оптимизации - очень тонкие и нуждаются в тестировпнии. Даже я могу быть в чем то не прав, но твержо утверждать что экономить на туалетной бумаге глуппо в web масштабах - точно так же глупо =) Надеюсь, меня правильно поймут. |
А вообще задавайте вопросы и даже просто обсуждениям я любым буду рад. Сам я не бог и далеко не все знаю, а общее обсуждение одного вопроса, даже оптимизаци, разные мнения и споры - это всегда полезно! Бывает мне отец, который вообще гениколог и не имеет отношения к компам никакого, а подстказывает элементарные вещи по оптимизации или по юзабилити проекта. Просто элементарные вещи, на которые я не обраащл внимания.
|
Цитата:
Цитата:
Цитата:
почему про него не сказано? =) ведь человек экономит на том, чего кже нету, а следовательно на этом съэкономить нельзя(т.к. нету)! |
нет такого слова "нету". Это, во-первых. Во-вторых, мы говорим о web-программировании. Если на одном хостинге есть Zend optimizer а на другом нет? Да и наличие пистолета не дает тебе права полить по всем почем зря. Ты уж извени, но если у хостера есть Zend Optimizer, это еще не пово "пачкать" код лишними пробелами и переносами. Работа Zend Optimizer`а это тоже рабочее время сервера, он убирает эти пробелы, но он тоже тратит на это ресурсы сервера.
|
Цитата:
Цитата:
Цитата:
|
Погоди, погоди. nerezus. Ты не прав. Ты сейчас ведешь себя как тупой php программист, который всю жизнь работает только на Zend`овых проуктах, прочитавший какие-то книги про PEAR и прочее. Забудь ты о Zend, не существует их, она как компанияю появилась 10 лет назад от силы, что, до них не существовало программирования и web-программирования в частности? А ты видел сколько стоят их продукты? про PEAR забудь, он писал для того, чтобы ламерообразные программеры писали более-менее понятный для вопсприятия код. Другими словами чтобы в нем было легче копаться. Я не хочу тобы в моем коде кто-то копался, пишу я только для себя и знаю все свои скрипты, весь свой софт практически наизусть. мне не нужны комментарии. Если я что-то забываю и не помню зачем ставил тут проверку - открываю тетрадь и ищу запись о этом, засорять код программы местными комментами глупо. Все равно что записывать телефоны друзей на своей рубашке, так как она ближе. Есть для этого специальное место - записнуха. И вообще глупо отталкиваться от того что Zend за тебя все сделает. Автоматизация - он очень важна, сомнений ноль, но не до той степени, когда она делает людей тупыми. Я не в коем случае не говорю о тебе. Я говорю вообще. Коворю о том, что америкосы считают что картошка изначально имеет форму вытнутого прямоугольгника, что Суши растут на деревьях в японии и что великую отечественную войну побеили именно американцы и именно они взяли Берлин и лично застрелили Гитлера.
А насчет хостинга, зачем покуать русскую 9-ку, если можно купить Bmw последней моификации? |
Цитата:
Цитата:
ну оптимайзер халявный, например. Цитата:
Цитата:
Цитата:
|
cgi так же не компилился. Да и потом продукаты зендовые последние свет увидели не так давно. Не забывай. Люди ты мы, конечно, русские и Zend Optimizer, конечно, бесплатный, но вот Encoder стоит 2500 бачей. PEAR позволяет любому программеру читать твой код. Я не работаю в комманде, но планирую работать, так как сам не железный, только мне не нужны комменты той или иной строки, я и так вижу что она делает и ачем нужна. А если не понимаю - спрошу у программера. Спички давно уже изобрели, и ICQ тоже. Хватит уже из камней добывать огонь.
а и потом вообще я не понимаю причину спора? Не существует Zend`а, не существует сторонних разработок, классов, шабланизаторов. Этого всего нет. Есть только ты и полет твоей мысли, которую ты реализуешь на том или другом языке программирования. Учитывая оссобенности того или иного языка программировани/платформы разработки. В данном случае речь идет о web программировании на php, не идет речи о программировании на php под Zend платформы. Я обсалютно точно могу сказать что даже лишние пробелы влияют на скорость оброботки кода. Попробуй это мне возврази, только что-нибудь по убедительнее, чем примера с туалетной бумагой. |
Цитата:
Цитата:
Цитата:
|
Цитата:
Далее: Цитата:
|
Блин нерезус, поверь, я люблю спорить, но тут спор скушный. Ты упертся в Zend. Пойми, они не боги, они точно такие же люди, у них 2 ноги и 2 руки и разрабатывают они точно такой же софт, что ты я и Вася с третьей полки. Просто на них лейбл "Zend" и ты бросаешься на колени и тупо поклоняешься им. Бред. Я не говорю что они уроды - отличные ребята, спасибо им за их деятельность. Только вот Zend и php делают разные люди. Говоря о cgi я не имел введу именно c++ или ты хочешь сказать что c++ == cgi?? Бред. Скажи, а если закачик попросит тебя на asp написать сайт, что ты ответишь? Попросишь установить Zend optimizer??? Тебе не кажется что это бред? То, о чем ты говоришь (Оптимизеры, другие зендовые проги, классы сторонних производителей и пр.) актуально только для программеров на php. ТОЛЬКО! А то что я тебе говорю, та оптимизация, о которой я рассказываю - будет актуально для любого web языка программирования. В том числе и php. И то что на php ты можешь халатно расставлять пробелы и переносы коретки, зная что за тебя их уберет бот, это еще не значит так надо. Это значит что ты разбалован системой, которая когда-нить умрет. как и все живое. Если она умрет до тебя, то и ты умрешь, так как ты к ней привязан. Не в прямом смысле умрешь, а как программер.
|
Цитата:
|
Цитата:
Цитата:
Цитата:
Цитата:
в крайнем случай, буду юзать питон или ASP.NET, а они компилируемые. |
Цитата:
Цитата:
|
Цитата:
Есть 2 марки автомобилей. BMW и РолсРойс. И та и другая - дорогие, красивые автомобили. Только первая - это серийное производство, доступность и всеобщее распространение. А вторая - это ручная работа, собирается руками, есть далеко не у каждого и считается элитой. Понимаешь, для меня дело даже не в элите. Мне не хочется делать быстро. Мне хочется делать самому и качественно. Пусть это будет дольше, но я буду знать что я сделал это сам. Уж лучше я постаринке со своей женой сделаю ребенка одной темной ночью. Пусть он не бует отличаться золотыми волосами или неземной красотой, что уже могут делать ученые в биологически лабороториях, но это будет мой ребенок. Я не хочу выкидывать на рынок ПО выкидыши, которых миллионы, я хочу делать уникальные проекты, неповторимые. Кстати, именно поэтому, nerezus, я живу в Москве, могу позволить снимать себе двушку , кушать копченую колбаску итп. Именно поэтому у меня есть работа и заказчики стоят в очереди. Именно поэтому меня и ценят, не потому что я использую чижие наработки чтобы делать быстрее, а потому что я делаю качественно и могу ответить и поручится за свой скрипт. Ты можешь полностью поручиться за свой сойт, который построен на шаблонизаторе SMARTY, к которому прикручен поискови mnogoSearch и прочее. Ты можешь с уверенностью сказать что все будет работать при любых условиях? Я не уверен. А я могу, так как я знаю кажый сивол своего кода, я знаю при каких нагруках софт будет работать, при каких нет. А так же я с уверенностью могу сказать что даже лементарная оптимизция кода существенно может снять нагрузку с сервера. |
Цитата:
Но насчет пробелов - их же нет ;) |
А вот и я включаюсь в спор =)
Код:
if(@readfile('cash/123.html')){Код:
if(@readfile('cash/123.html')){Код:
if(!file_exists("data.txt")){die("can't find file");}Цитата:
Настчет зенда енкодера - зенд не на всех хостингах установлен. То что нерезус говорит что vds дешевый это все относительно,например я не могу себе из-за моей хаупаги покупать vds да и зачем,всего лишь из-за зенда??? Я конечно получу некоторые преймушества в скорости,но потеряю в мобильности кода,то есть на другом сервере без зенда я уже свой сайт не смогу заставить работать. Тут уже все зависит от вкуса(ТЗ) твоего\заказчика. Цитата:
Ну вроде и все что я хотел сказать,за этим прошу откланится от тупых споров =) |
Цитата:
Цитата:
|
Насчет @ - то их не рекоммендуют ставить новичкам. Неновички же сами разберутся.
Насчет плохого кода - пытался я переделать minibb - так вот там плохой код =)) никаких отступов и т.д. |
Так, qBiN, ты конечно, молодец что подключешься, но дай уже отцам разобраться, а? =)))
А насчет твоего Цитата:
2 nerezus У меня тоже былло хобби, потом оказалось что это сейчас в цене и хобби плано переросло в работу. Тогда да - притензий нет. А начет пробелов - поставть 10 000 пробелов и запусти скрипт без всяких энкодеров - вот и проверишь, есть они или нет =)) |
Цитата:
Zend и в редакторы влез =) |
Цитата:
Цитата:
Цитата:
зы а где вступать в "отцы"??? а то бабушкой не хота быть... |
Для того чтобы вступить в отцы - ман прочти для начала =))) Насчет грамотности кода... Использовать ручной тормоз в автомобиле для осуществления трюков - тоже трюки, а не безграмотное управление автомобилем. Считай что использование трюков - это высший пилотаж. Хотя да, ты прав =) Многие обычные автомобилисты считают что это все гавно и безграмотное вождение =)
|
Цитата:
Но ты не ответил на главный вопрос: разве с таким "трюком" код не становится "запутанее"? |
Цитата:
|
Трюки не придумываются просто так. Просто катаясь на работу, ты никогда не научишься делать резкий разворот ручником - оно действительно тебе не надо. Но когда нужно экстримальное вождение (например погоня или какие соревнования) - то чем больше трюков ты знаешь - тем выше твои шансы. В данном примере я избавляюсь от проверки наличия файла на диске file_exists(). Представь что у тебя лимон хитов на такую страницу ежедневно, данный трюк поможет тебе не слабо сохранить ресурсы тачки
|
Цитата:
|
| Время: 00:36 |