php: require vs require_once

09.07.2009. 14:25:49 sagatavoja iinuu

Esot pamanīts, ka require_once ir līdz pat 4 reizēm lēnāks nekā require.

Domājams, agri vai vēlu veidojot PHP programmiņas rodas vēlme daļu koda glabāt citā failā. Šādā veidā rodas gan koda pārskatāmība, gan loģisko struktūra. Labs jautājums cik smalki sadalīt. Un šeit viennozīmīgas atbildes nav.

include('file.php') – php komanda, kas iekļauj failu file.php. Tas nozīmē, ja failā file.php glabāsies funkcija x(), tā būs pieejama un izmantojama pēc šīs komandas izpildes. Ja fails file.php nav atrasts, tik parādīts warning tipa brīdinājums, savukārt, ja šādā gadījumā nepieciešams "lai pasaule apstājas" lietojam require.

Jo sarežģītāks kods, jo lielāka varbūtība, ka esošās funkcijas būs atkarīga no citām funkcijām, kuras visticamāk glabāsies citos failos. Šādiem gadījumiem, php izdomājuši funkciju include_once('file.php').

function A() { 
  return 123; 
} 

require_once('fails_A.php');
function B() { 
  return A(); 
}

Tad nu, lūk, esot pamanīts, ka require_once() ir līdz pat 4 reizēm lēnāks nekā require(). Googlē atrodami dažādi skaitļi un mērījumi, dažkārt arī pretrunīgi. Vairākkārtēja faila iekļaušana pati par sevi nav laba, jo fails tiek nolasīts un tur esošais kods analizēts un izpildīts.

lv.php.net/manual/en/function.require-once.php#62838
peter.mapledesign.co.uk/weblog/archives/writing-faster-php-code-1-require_once

Gan vienu gan otru procesu var paātrināt, ja izmanto absolūto nevis relatīvo adresi. T.i. require('/var/www/user1/file1.php') nevis require('../../file.php'); Nelielos projektiņos atšķirību var arī nepamanīt, jo izrādās relatīvās adreses kešojas:
us2.php.net/manual/en/ini.core.php#ini.realpath-cache-size


Alternatīvas?

  1. izmantot include() (vai require()) tikai vienreiz;
  2. __autoload() funkcijas izmantošana;
  3. class_exists('myClass') || require('path/to/myClass.class.php');
  4. function_exists('functionInFile') && return; vai class_exists('ClassInFile') && return;
  5. @include('file.php');

Pēdējais – kļūdas apspiešana (error suppression), kā zināms, ir salīdzinoši laikietilpīgs process, bet par to kādā citā rakstā.

www.techyouruniverse.com/software/php-performance-tip-require-versus-require_once

P.S. Es pieminēju, ka statiskās metodes izsaukšana ir ātrāka?

 

Raksts pārpublicēts no IINUU bloga ar autoru piekrišanu.


8 komentāri Komentēšana pieejama visiem.
xyzzy komentēja 09.07.2009. 18:09:55 (ip:84.237.143.31)
Komentāra reitings: 0

"Esot pamanīts, ka require_once ir līdz pat 4 reizēm lēnāks nekā require" - benchmark or didn't happen.

deni2s komentēja 21.02.2010. 22:41:32
Komentāra reitings: 0

http://www.techyouruniverse.com/software/php-performance-tip-require-versus-require_once

KennethZen (be.st.@seobest.website) komentēja 30.03.2018. 14:24:46 (ip:85.195.116.66)
Komentāra reitings: 0

Как часто Ваша партнёрша кричит в постели и рвёт Вам спину, изнемогая от оргазма?
Сайт: https://eroctive2.blogspot.ru/

KennethZen (b.e.st.@seobest.website) komentēja 08.04.2018. 07:22:08 (ip:87.236.195.22)
Komentāra reitings: 0

ВСЕГО ОДНА КАПСУЛА В ДЕНЬ
и ты будешь заниматься сексом ежедневно по 2-3 часа!
В любом возрасте и без побочных эффектов

ОСТАЛОСЬ: 14 УПАКОВОК

Гарантирует мощную, устойчивую эрекцию в любом возрасте
Продлевает половой акт до 2-х часов
В 3 раза увеличивает количество спермы при эякуляции
Продлевает твой оргазм на 15-20 секунд

Сайт: http://cpagetti2.com/ZvOV/

SylviaAstex (ad@marketsaletoday.com) komentēja 30.04.2019. 21:41:20 (ip:93.177.73.42)
Komentāra reitings: 0

Удаленная Работа В Тинькофф Банке На Дому, Отзывы Операторов Колл-центра

-----------------------------------
Что опять цифры двоятся? К ним относятся счета «Амортизация», «НДС», «Расчеты с поставщиками» и прочие. Заполните предложенные поля и нажмите на кнопку "Далее". Вводим пароль, который получаем на телефон. Ведь заполнение и отправка анкеты — это просто запрос, на который вы можете получить ответ. Ваш платеж проведен успешно. Гаджеты от этого производителя выгодно отличаются хорошей производительностью, большим количеством функций, удобством в эксплуатации и множеством поддерживаемых приложений. Счет бухгалтерского учета 50 "Касса" - счет общего плана счетов, предназначен для обобщения информации о наличии и движении денежных средств в кассах организации. Можно видеть существенный прогресс в распространении платежной системы за пределами страны. Их называли оккупационными злотыми «генерал-губернаторства». Зарплату всегда платят вовремя. Микрозаймы онлайн, без отказа. Наш интернет-магазин ishtuki предлагает только качественные и оригинальные комплектующие. Во избежание просрочек, следует учитывать сроки прохождения платежей. В общем разобрался, все просто! Сотрудники предоставят клиентам профессиональную консультацию. Если оплата производится через бухгалтерию, тогда обязательно надо уточнить сроки внесения средств по кредиту.|Пластиковая карта Мир работает c национальной платежной системой Мир, аналогом международных платежных систем Visa и MasterCard. Если опасения, что карта украдена, будут ложными, то ее разблокируют. Если вы уже заказывали страховку в этой компании, некоторые поля заполнятся автоматически. Если Вы имели вивду как расчитать дебитовый и кредитовый обороты, то для этого нужно отразить по счету хозяйственные операции за месяц. Если возникнут вопросы про невозможность застраховать ОСАГО в другой СК и придется страховать в Росгосстрахе с "допом", могу предложить помощь советом как потом от этого "допа" отказаться на законном основании. Таким образом, фактически есть противоречие электронного полиса ОСАГО Правилам дорожного движения. После этого автоводитель получает расчет, где указана цена электронного полиса ОСАГО. По итогам 2014 года "Росгосстрах" заключил больше 18 млн договоров ОСАГО. Сведения для заполнения этого раздела следует взять из предыдущего полиса ОСАГО. Сущность кредитного договора ( договора банковской ссуды ) – кредитор обязуется предоставить денежные средства ( кредит ) заемщику в размере и на условиях, предусмотренных договором, а заемщик обязуется возвратить полученную денежную сумму и уплатить проценты за нее. В списке примерно поровну – наших самых крупных банков и «дочек» иностранных компаний. При создании наших цифровых сервисов, будь то Сбербанк Онлайн для персонального компьютера или мобильных устройств, мы руководствуемся, помимо прочего, практиками организаций, занимающих лидирующее положение на рынке.


Перейдите ниже по ссылке, чтобы получить кредит:

http://v.ht/wCz3

TerrellDiuro (bog.d.an.usi.kow.@inbox.ru) komentēja 14.05.2019. 12:37:13 (ip:185.189.115.118)
Komentāra reitings: 0

Пантогор - гель для суставов быстро избавит от боли в суставах без вреда для здоровья.
Полная потеря дееспособности и жизнь без надежды на будущее - вот, что вам грозит, если вы не позаботитесь о своих суставах!
Жить полноценной жизнью или провести остаток своих дней в инвалидном кресле - решать вам!
По данным Всемирной организации по борьбе <b>с болезнями суставов</b>, 80% людей в мире имеют проблемы с суставами. Самое страшное, что заболевания суставов приводят <b>к параличу и инвалидности</b>. На сегодняшний день есть одно единственное средство, которое отличается от всех существующих до этого средств. Это средство Пантогор.
Основной компонент Пантогора - <b>панты канадского марала</b>. Панты канадского марала <b>активируют</b> природные <b>силы организма и запускают</b> процесс его <b>самовосстановления</b>. Все остальные компоненты действуют <b>синергически - дополняют и усиливают</b> действие друг друга. <b>Прием</b> средства Пантогор <b>гарантирует</b> вам <b>избавление от боли в суставах</b> всего <b>за 1 курс</b>.
Внимание! Акция действует только на территории России и стран СНГ!
Успейте оформить заказ по выгодной промо-цене!
Заказать Пантогор Здесь --> http://c.trktp.ru/ud6b

TerrellDiuro (b.og.da.nusi.ko.w.@inbox.ru) komentēja 15.05.2019. 11:21:53 (ip:93.177.73.242)
Komentāra reitings: 0

Пантогор - гель для суставов быстро избавит от боли в суставах без вреда для здоровья.
Полная потеря дееспособности и жизнь без надежды на будущее - вот, что вам грозит, если вы не позаботитесь о своих суставах!
Жить полноценной жизнью или провести остаток своих дней в инвалидном кресле - решать вам!
По данным Всемирной организации по борьбе <b>с болезнями суставов</b>, 80% людей в мире имеют проблемы с суставами. Самое страшное, что заболевания суставов приводят <b>к параличу и инвалидности</b>. На сегодняшний день есть одно единственное средство, которое отличается от всех существующих до этого средств. Это средство Пантогор.
Основной компонент Пантогора - <b>панты канадского марала</b>. Панты канадского марала <b>активируют</b> природные <b>силы организма и запускают</b> процесс его <b>самовосстановления</b>. Все остальные компоненты действуют <b>синергически - дополняют и усиливают</b> действие друг друга. <b>Прием</b> средства Пантогор <b>гарантирует</b> вам <b>избавление от боли в суставах</b> всего <b>за 1 курс</b>.
Внимание! Акция действует только на территории России и стран СНГ!
Успейте оформить заказ по выгодной промо-цене!
Заказать Пантогор Здесь --> http://c.trktp.ru/ud6b

https://make-my-link-longer.glitch.me/show/dlkjfhgaljkdghjtrhgLKAJASDLAhkj1239856fhAHOSfho2ihfp212085g802p3dhlslkdhfp31083g24g21kjehglewkjrhglekjhedlkjfhgaljkdghjtrhgLKAJASDLAhkj1239856fhAHOSfho2ihfp212085g802p3dhlslkdhfp31083g24g21kjehglewkjrhglekjhedlkjfhgaljkdghjtrhgLKAJASDLAhkj1239856fhAHOSfho2ihfp212085g802p3dhlslkdhfp31083g24g21kjehglewkjrhglekjhedlkjfhgaljkdghjtrhgLKAJASDLAhkj1239856fhAHOSfho2ihfp212085g802p3dhlslkdhfp31083g24g21kjehglewkjrhglekjhehttp8fh0208rhflaifh20r8Kja0dSasfHAAS13ufAFfHqo47vbaoe82024ug1fhAISIGOUQEF1381313fffHqo47vbaoe82024ug1fhAISIGOUQEF1381313ffvvbo2yu1397vbSAOSUfg2048aksdhASLDASdhtfHqo47vbaoe82024ug1fhAISIGOUQEF1381313ffNDQWdlkjfhgaljkdghjtrhgLKAJASDLAhkj1239856fhAHOSfho2ihfp212085g802p3dhlslkdhfp31083g24g21kjehglewkjrhglekjhedlkjfhgaljkdghjtrhgLKAJASDLAhkj1239856fhAHOSfho2ihfp212085g802p3dhlslkdhfp31083g24g21kjehglewkjrhglekjhedlkjfhgaljkdghjtrhgLKAJASDLAhkj1239856fhAHOSfho2ihfp212085g802p3dhlslkdhfp31083g24g21kjehglewkjrhglekjhedlkjfhgaljkdghjtrhgLKAJASDLAhkj1239856fhAHOSfho2ihfp212085g802p3dhlslkdhfp31083g24g21kjehglewkjrhglekjhe?utm_source=facebook&utm_medium=main&utm_campaign=THIS_TOTALLY_UNOBTRUSIVE_CAMPAIGN_NAME&utm_content=some_sad_place_on_the_internet&more_ridiculous_things_in_your_links=because_why_not&maybe_we_can=write_poetry_in_utm_links&utm_utm_utm_utm_utm_param=bye&oh_and_dont_forget_the_facebook_click_id=thanks&fbclid=IwAR0fgPKx3ebuM5dpH3FG8MlCITeSVkGFFeNlQX31Tiu4pmNvAoi_Sw44Knk

Daviddom (brat.i.s.hhe.w.aek.a.teri.n.a@bk.ru) komentēja 19.05.2019. 10:05:59 (ip:169.57.0.241)
Komentāra reitings: 0

«Папиловит» — быстро и безопасно избавит от любых папиллом и бородавок.
Наш сайт: https://lcokbhlw.bestseller-super.ru

Komentāra pievienošana

Ar * atzīmētie lauciņi ir jāaizpilda obligāti.





[ uz rakstu sarakstu ]

Reklāma
Par web.hc.lv

web.hc.lv ir vortāls, kurā tiek aplūkoti mājaslapu veidošanas un mārketinga aspekti, no idejas līdz gandarījumam.

[Valid RSS] Valid XHTML 1.0! Valid CSS!

RSS 2.0 ziņu barotne (news feed)  Twitter

reģistrēties