簡體   English   中英

減少包括/需要增加性能的數量?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM