За последние 24 часа нас посетили 20508 программистов и 1635 роботов. Сейчас ищут 978 программистов ...

опять оптимизация php

Тема в разделе "Прочее", создана пользователем antonn, 26 авг 2008.

Статус темы:
Закрыта.
  1. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    Код (Text):
    1. for($i=0; $i<count($data); $i++){
    2.     include("./11.php");
    3. }
    вопрос - при каждой итерации будет выполнено чтения файла с диска и собсно его "инклуд", или пхп один раз проинклудит и потом "запомнит" это? :)
    собсно вопрос вылился из того, что есть некий код, который в теле цикла производит одни и те же операции над входящим массивом, не хочется копипастить по разным скриптам одно и тоже, тем более, при правке придется править везде, вот и подумал над кодом выше.
     
  2. Vitas

    Vitas Активный пользователь

    С нами с:
    7 фев 2006
    Сообщения:
    595
    Симпатии:
    0
    Адрес:
    Новосибирск, Академгородок
    Ай-яй-яй.
     
  3. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    include_once
     
  4. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    Vitas
    что "ай-ай-ай"?

    Sergey89
    опять повторяется все та же ситуация :)
    я не прошу подсказать мне решение, я спрашиваю конкретно по той ситуации :) мож кто знает ответ :)
     
  5. Anonymous

    Anonymous Guest

    опять повторяется все та же ситуация :)

    что тебе мешает проверить? :)

    сделай динамически генерируемый php :)
     
  6. decoder

    decoder Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    469
    Симпатии:
    0
    antonn
    Могу ошибаться, но вроде при таком коде каждый раз инклудится.
    Вообще проверить несложно - добавь себе во включаемый файл вывод чего-нибудь (upd. динамически изменяющегося :)) и прогони цикл.
     
  7. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    как показали эксперименты, include_once() честно инклудится один раз, и так же срабатывает только один раз :) Сергею "Фи" %)

    decoder
    да, файлмоном глянул - каждый раз инклудит, сволочь :(
     
  8. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    antonn
    Оформи этот код как функцию или класс, и напиши require_once. Пусть файл подключится один раз, это нормально, а вот нужную тебе функцию/метод хоть завызывайся потом.

    *закатывает глаза* Если тебя это так напрягает - поставь акселератор. Но уверен, затраты на чтение/парсинг файла по сравнению затратами на выполнение твоего кода, находящегося внутри, ничтожны. Файловые операции кстати, тоже кешируются, только не на уровне похапэ, а на уровне файловой системы.
     
  9. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    инклудящийся код нельзя оформить функций, там слишком много параметров и они определяются при написании самого тела цикла, как параметры функции перечислять их все будет затруднительно.

    думаю "напрягает" - это несколько не подходящее определение. Я бы сказал "мне интересно".

    писал когда нибудь свой скрипт-движек? ручками, не используя всякие обертки над lua, регулярки...
    вот тогда бы понял, что там далеко не "просто чтение файла".

    тему можно закрыть :)
     
  10. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    antonn
    В подпись мне посмотри ;) 100% свой код.
    Чтение и парсинг, как я написал выше... а что еще?

    Оформить функцией (или набором функций, или классом) можно все, что угодно - собственно, все программисты предпочитают так и делать, вместо того, чтобы создавать PHP-файлы, выполняющие код в момент инклюда и принимающие аргументы непонятно откуда... это банально чревато проблемами с безопасностью. Ну и проблемы, как у тебя, тоже появляются ;)
     
  11. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    Dagdamor
    я особо уточнил - ручками. не всякие готовые пхп/lua/регулярки, а ручками, самому обрабатывать текстик, самому выделять и инициализировать переменные, все самому. А не юзать готовый и простой как швабра ПХП. Не хочу обижать ПХПшников, но скажу, что по сравнению с Си и Дельфи этот ПХП - просто сказка, я пока на нем писал - обленился неслабо, тут многое уже сделано, все просто, никаких низкоуровневых ковыряний и приведений типов, регулярки применяются тока в путь, текстовые файлы могут быть прочитаны и выполнены(!), за памятью слетит само, все просто и легко. То, что у тебя в подписи - простая "СМСка на ПХП", не более. Сделаешь на Си в CGI - поверю, что там мега сложно и опыт есть. А так - извини, ты меня не понял. И не поймешь, пока не оторвешся от "сверхвысокоуровнего" языка ПХП.
    И да - делать парсеры в ПХП - это просто и легко (по сравнению с теми же Си/дельфи), ПХП и создан для работы с текстом, это его стезя, он - почти готовый парсер, остается только употребить правильно.
     
  12. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    antonn
    Не вижу преимуществ в твоем подходе. Это все равно что сказать музыканту "вот у тебя рояль, готовый и простой как швабра, садись и играй, просто сказка. А у меня орган на паровом приводе, мало того, что его сначала самому построить надо, так потом все время смазывать, подкручивать, уголь в топку кидать". Системное программирование я прошел в прошлом. Был и Си, и ассемблер. Вся эта головная боль со слежением за памятью, ручным разбором выражений и обработке протоколов мне, по большому счету, неинтересна. Мне интереснее сконцентрироваться на логике работы приложения, на структуре таблиц, на удобстве пользовательского интерфейса, на внутренней красоте системы. Постоянно спотыкаясь о грабли и недостатки языка, это просто невозможно сделать.
     
  13. nimistar

    nimistar Активный пользователь

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    Dagdamor +1 - и позволю себе заметить тут форум по ПХП, к вопросу о "Сделаешь на Си в CGI ..." :)
    я ещё и админки писал на дельфах :) и сервак пытался собрать (аля CGI)- вспоминать страшно!

    зачем, как говорится, изобретать велосипед ?



    ПХП сказка для веба - танцуй от задачи и используй тот инструмент который лучше подходит - наверное в этом основное отличие программера от кодера
     
  14. Anonymous

    Anonymous Guest

    Тема закрыта.
     
Статус темы:
Закрыта.