2011-03-17 51 views
1

由於通知在我的php配置中關閉,因此它不會在網站上顯示通知。 但是我可以在服務器日誌/ php日誌中看到很多未定義的索引/未定義變量執行太多未定義索引或未定義變量錯誤會影響服務器性能

這會對系統性能產生任何影響嗎?

如果我decalre這些變量並將null賦值給這些,錯誤將會消失。 按照定義。

另一個疑問是,在某些情況下,這些變量將不會被使用。

所以我聲明和分配somany變量,如果我不使用這些變量。這會影響性能嗎?

+1

通知本身不會在配置文件中產生blip,但日誌記錄會。避免在生產系統上使用E_ALL(=調試設置)啓用error_reporting。 – mario 2011-03-17 18:55:34

+0

@mario'...運行糟糕的遺留代碼'應添加到您的評論 – 2011-03-17 18:57:16

+3

請參閱我給這個問題的答案:http://stackoverflow.com/questions/1868874/does-php-run-faster-without-警告 – 2011-03-17 19:00:39

回答

5

沒有。

您的擔心與性能無關。

性能不是唯一需要關心的事情。

我注意到最近這種類型的其他問題(1),(2),它嚇壞了我。
因爲這些問題缺乏非常基本的東西:某種意義。

在這個世界上的每一件事情不僅是成本,而且也是有意義的。
而且我會說這種感覺是偏好一件事而不是另一件事的主要原因。

說,有2種菜,一堆,髒兮兮的,與乾淨,健康,味道,但更昂貴的一個。你會一直只喜歡便宜的,只是因爲它的成本?我很懷疑。
散步是拯救汽車的好方法。無論距離,障礙和目的地,你總是走路嗎? 成本是你考慮的唯一原因?我很懷疑。
有時你會乘坐某些車輛,只是因爲它在某些情況下更可靠。所以,你選擇我的感覺,而不是成本。

同樣在這裏。
如果你的代碼中有一些錯誤,這些錯誤應該是你關心的,而不是相關的性能。 如果您的日誌充斥着浪費錯誤,模糊了真正重要的日誌,您必須關閉這些小日誌。不是因爲系統的性能,而是因爲程序員的表現,讓他與網站心跳取得聯繫。

感覺,這件事的意思應該是你關心的問題。不是抽象的「表演」。 有些語言顯然比PHP更快,比如彙編語言。所以,只關心性能,你只能使用匯編語言。但是你選擇PHP的可靠性。所以,要保持一致,從他們的意義上選擇事物,而不是想象(!)的表現。

當您詢問代碼結構時,應該關注可靠的代碼結構,而不是虛構的性能問題。這不明顯嗎?

+7

通知確實對性能有影響 - 實際上請參閱http://stackoverflow.com/questions/1868874/does-php-run-faster-without-warnings瞭解一些數字;-) – 2011-03-17 19:02:32

+0

@Pascal你知道我稱之爲毫無用處的「測試」就是「毫無價值的重複」。當你面臨錯誤時,這不應該是你關心的表現,而是錯誤本身。 – 2011-03-17 19:07:24

+1

當然,如果有錯誤,那就是重要的錯誤;但是,考慮到這個問題,「這是否會影響表演」* ... – 2011-03-17 19:12:17

1

記錄總是會引起開銷,如果你能避免一些工作不需要錯誤日誌記錄,爲什麼不去做呢?它不會顯着影響系統性能,但通常不希望將未定義變量的警告與日誌空間混淆。

如果你用這樣的東西填充你的日誌,真正的錯誤將更難以發現。

另一個疑問是,在某些情況下,這些變量將不會被使用。

儘快申報他們爲你知道你需要他們。沒有必要在腳本的開頭聲明所有變量...

2

這會影響系統性能嗎?

是的。

但是您應該在使用它們之前聲明所有變量和索引,因爲下次拼寫變量名稱時,您會注意到錯誤立即,而不是在噪音中迷失。

您保存跟蹤這樣一個愚蠢的錯誤的時間可以用來編碼重要的東西,比如更優化的算法,這將節省更多的時間。

這種間接的「系統性能增益」比直接保存更有價值。

所以我聲明和分配somany變量,如果我不使用這些變量。這會影響性能嗎?

未能聲明你的變量不會改變你實際使用的數字!在適當的地方申報。讓您的示波器僅限於手頭的任務,並且易於管理。