[英]Does php "requires" and "includes" methods take up memory/time/performance each and every time?
[英]Will reducing number of includes/requires increase performance?
什么是更好的腳本性能調優實踐?
這個?
require_once("db.php");
if (!is_cached()) {
require_once("somefile.php");
require_once("somefile2.php");
//do something
} else {
//display something
}
還是這一個?
require_once("db.php");
require_once("somefile.php");
require_once("somefile2.php");
if (!is_cached()) {
//do something
} else {
//display something
}
是否值得將包含/要求放入流量控制結構或不?
謝謝
包含和要求的設計部分允許您組織代碼並使維護軟件更容易。 雖然從技術上講,使用包含性能會受到影響,但它可以忽略不計,然后通過提高軟件的可維護性來抵消。 特別是如果您使用操作碼緩存。 我不擔心這一點,並將其歸結為過早優化。
如果所需的文件很大,並且沒有可用的字節代碼緩存,那么它有時是值得的。
然而,問題實際上並不是include()
語句的數量,而是包含的數據量。 您在請求中包含的未使用的代碼越少越好。 單片包含的一個很好的補救措施是將代碼庫拆分為較小的代碼庫,或者,如果您的應用程序主要面向對象,則使用PHP的自動加載功能。
我已經看到共享托管軟件包,其中非糾結的單片包可以節省多達半秒 - 這是很多 。
此外,包含的PHP代碼會被解析並占用內存,無論它是否被執行。 具有精益物體的清潔結構通常是最佳方式。
是的,它會提高性能,與其他人所說的相反,影響可能不可忽視。
當您包含/ require文件時,PHP將檢查所有已定義的include_paths,直到找到該文件或者沒有其他內容可供檢查。 根據包含的pathes數量和要包含的文件數量,這將對您的應用程序產生嚴重影響,尤其是在預先包含每個文件時。 懶惰包括(比如在你的第一個例子中)或 - 甚至更好 - 建議使用Autoloader。
相關閱讀更詳細地解決了這個問題:
*
那里給出的建議適用於任何應用程序或框架
是的,它會提高性能,但它非常小,所以不值得。
使用包含文件的絕對路徑將顯着提高性能。 使用Apache Benchmark進行測試,看看它是否沒有。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.