Oптимизaция cкpиптoв [пapa вoпpocoв]

Discussion in 'PHP' started by Chat.nm.ru, 18 Nov 2005.

  1. Chat.nm.ru

    Chat.nm.ru New Member

    Joined:
    15 Nov 2005
    Messages:
    12
    Likes Received:
    0
    Reputations:
    0
    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ния?
     
  2. Dmitro

    Dmitro Elder - Старейшина

    Joined:
    11 Dec 2004
    Messages:
    105
    Likes Received:
    10
    Reputations:
    13
    действие выполняется одно file_exists
    какая разница...
    А зачем пробелы удалять в пхп ? Пробелы в хтмл надо убивать, чтоб быстрее страница грузилась, правда это ужасно...
    Зато поисковики любят без лишних пробелов -)

    Тебя такие странные вопросы интересуют... Надеешься сервак сильно загрузить поситителями?
     
  3. Algol

    Algol New Member

    Joined:
    29 May 2002
    Messages:
    1,759
    Likes Received:
    4
    Reputations:
    0
    Все это абсолютно не влияет на скорость работы...
    Не парся над такой мелочью....
    Вот если у тебя запрос к базе на 30 строк, то это может повлиять на быстродействие...
     
  4. fucker"ok

    fucker"ok Elder - Старейшина

    Joined:
    21 Nov 2004
    Messages:
    580
    Likes Received:
    279
    Reputations:
    91
    Если важна скорость, тогда лучше писать на асемблере :d
     
  5. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    Это экономия на туалетной бумаге.
     
  6. ZaCo

    ZaCo Banned

    Joined:
    20 Jun 2005
    Messages:
    737
    Likes Received:
    336
    Reputations:
    215
    нее коменты конечно не влияют, но для некоторых функций можно сделать оптимизацию - в хелпе по пхп это сразу написано. качай с офф сайта.
     
  7. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    влияют.
    Чем их меньше - тем хуже. При изменении кода.
     
  8. fucker"ok

    fucker"ok Elder - Старейшина

    Joined:
    21 Nov 2004
    Messages:
    580
    Likes Received:
    279
    Reputations:
    91
    2 Zaco:
    Надо разделять понятия: оптимизация алгоритма и удаление лишних пробелов :)
     
  9. ZaCo

    ZaCo Banned

    Joined:
    20 Jun 2005
    Messages:
    737
    Likes Received:
    336
    Reputations:
    215
    2nerezus может я конечно заблуждаюсь.. меньше - хеже это в смысле читабельности кода, но разьве каменты влияют сильно на скорость?
    2fucker"ok я сказал про лишнее пробелы и каменты - никак это не влияет (сильно не влияет!)
     
  10. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    1 person likes this.
  11. NaX[no]rT

    NaX[no]rT Members of Antichat

    Joined:
    3 Sep 2005
    Messages:
    489
    Likes Received:
    201
    Reputations:
    202
    5 балов =))
    На нескольких десятитысячных секунды не сэкономишь.
     
    _________________________
  12. qBiN

    qBiN Вот такой вот я :(

    Joined:
    20 Jan 2005
    Messages:
    834
    Likes Received:
    73
    Reputations:
    33
    <?php лучше использовать, так как бывают серверы где апач не считает короткую запись (<?)за пхп...
    Все это НЕсильно влияют на работу скрипта,но если рассудить логически, что нужно сделать интерпритатору:
    1)Взять строку.
    2)Анализировать строку
    Если из пунтка два можно получить комманды то:
    3)Интерпритировать код
    4)Выполнить комманды , которые получились из пункта три.
    Так вот это конечно все только приблизительно,но все же,помыслим:
    Интересное начинается во 2 пункте...
    Интрерпритатору нужно просмотреть взятую строку,если это не коментарий,то анализировать синтаксис.Значит интерпритатору нужно еще определять коментарий ли это,если например в предыдущей части взятого кода встречается "/*" то интерпритатору нужно найти символ закрывающий коментарий "*/", а это занимает процессорное время и память(нужно ведь запомнить откуда начинается коментарий).
    То есть теоритически,коментарии замедляют выполнение скрипта,но естественно это замедление незначительное.Но это только мое мнение,возможно ошибочное, т.к. нужно знать алгоритм работы компилятора,мы же можем только предпологать.
    Вопще оптимизация скриптов дело тонкое,мало что зависит от коментариев,пробелов и т.п намного больше оптимизация зависит от используемых функций
    зы Все выше-перечисленное ИМХО
     
  13. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    все перечисленное выше - ничто по сравнению с оптимизацией алгоритма ;)
     
  14. Trinux

    Trinux Members of Antichat

    Joined:
    26 Nov 2004
    Messages:
    1,403
    Likes Received:
    296
    Reputations:
    364
    Все, говорящие, про экономию на туалетной бумаге - идут лесом и стоят раком =) Без обид, просто есть несколько НО.

    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 масштабах - точно так же глупо =) Надеюсь, меня правильно поймут.
     
    _________________________
  15. Trinux

    Trinux Members of Antichat

    Joined:
    26 Nov 2004
    Messages:
    1,403
    Likes Received:
    296
    Reputations:
    364
    А вообще задавайте вопросы и даже просто обсуждениям я любым буду рад. Сам я не бог и далеко не все знаю, а общее обсуждение одного вопроса, даже оптимизаци, разные мнения и споры - это всегда полезно! Бывает мне отец, который вообще гениколог и не имеет отношения к компам никакого, а подстказывает элементарные вещи по оптимизации или по юзабилити проекта. Просто элементарные вещи, на которые я не обраащл внимания.
     
    _________________________
  16. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    лишних пробелов не бывает... ведь есть Zend Optimizer и аналоги ;)

    почему про него не сказано? =)
    ведь человек экономит на том, чего кже нету, а следовательно на этом съэкономить нельзя(т.к. нету)!
     
  17. Trinux

    Trinux Members of Antichat

    Joined:
    26 Nov 2004
    Messages:
    1,403
    Likes Received:
    296
    Reputations:
    364
    нет такого слова "нету". Это, во-первых. Во-вторых, мы говорим о web-программировании. Если на одном хостинге есть Zend optimizer а на другом нет? Да и наличие пистолета не дает тебе права полить по всем почем зря. Ты уж извени, но если у хостера есть Zend Optimizer, это еще не пово "пачкать" код лишними пробелами и переносами. Работа Zend Optimizer`а это тоже рабочее время сервера, он убирает эти пробелы, но он тоже тратит на это ресурсы сервера.
     
    _________________________
  18. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    а зачем такой хостинг брать? причем VDS сейчас дешево стоят.

    я не знал, что оформлять код в соответствии с правилами PEAR - это значит "пачкать его".
    пробелов лишних нету - они убираются еще ZDE.
     
  19. Trinux

    Trinux Members of Antichat

    Joined:
    26 Nov 2004
    Messages:
    1,403
    Likes Received:
    296
    Reputations:
    364
    Погоди, погоди. nerezus. Ты не прав. Ты сейчас ведешь себя как тупой php программист, который всю жизнь работает только на Zend`овых проуктах, прочитавший какие-то книги про PEAR и прочее. Забудь ты о Zend, не существует их, она как компанияю появилась 10 лет назад от силы, что, до них не существовало программирования и web-программирования в частности? А ты видел сколько стоят их продукты? про PEAR забудь, он писал для того, чтобы ламерообразные программеры писали более-менее понятный для вопсприятия код. Другими словами чтобы в нем было легче копаться. Я не хочу тобы в моем коде кто-то копался, пишу я только для себя и знаю все свои скрипты, весь свой софт практически наизусть. мне не нужны комментарии. Если я что-то забываю и не помню зачем ставил тут проверку - открываю тетрадь и ищу запись о этом, засорять код программы местными комментами глупо. Все равно что записывать телефоны друзей на своей рубашке, так как она ближе. Есть для этого специальное место - записнуха. И вообще глупо отталкиваться от того что Zend за тебя все сделает. Автоматизация - он очень важна, сомнений ноль, но не до той степени, когда она делает людей тупыми. Я не в коем случае не говорю о тебе. Я говорю вообще. Коворю о том, что америкосы считают что картошка изначально имеет форму вытнутого прямоугольгника, что Суши растут на деревьях в японии и что великую отечественную войну побеили именно американцы и именно они взяли Берлин и лично застрелили Гитлера.

    А насчет хостинга, зачем покуать русскую 9-ку, если можно купить Bmw последней моификации?
     
    _________________________
  20. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    почти. А до этого был cgi, в котором на прбелы положить(в компилируемых случаях)

    мы русские люди или нет? ;)
    ну оптимайзер халявный, например.

    понятный код - это плохо?

    я же хочу работать в комманде.

    бумер дорогой, а VDS дешевый.