我建立一個網站,其配置數據由php file
舉行,變量不超過15行的配置文件中的表演。差異在PHP
一切運作良好,到目前爲止,但我現在面臨的定義更多的變量,並研究了一點,我發現一個article about Application Configuration in PHP,其結論指出php files
正在分析他們是如何擴展當wost選項(需要Databases
是更好的選擇)。
什麼是決定使用配置文件的格式時,最值得推薦的選擇嗎?
我建立一個網站,其配置數據由php file
舉行,變量不超過15行的配置文件中的表演。差異在PHP
一切運作良好,到目前爲止,但我現在面臨的定義更多的變量,並研究了一點,我發現一個article about Application Configuration in PHP,其結論指出php files
正在分析他們是如何擴展當wost選項(需要Databases
是更好的選擇)。
什麼是決定使用配置文件的格式時,最值得推薦的選擇嗎?
對不起,什麼?!分析時,他們如何擴展(數據庫是更好的選擇)
PHP文件是wost選項。
這只是很奇怪,因爲你可以很好地擴展PHP - 只需設置另一臺服務器,就是這樣,你已經擴展了你的PHP兩次。
也請記住,有指令優化,將繼續解析文件內容在內存中。
而縮放數據庫是火箭科學。擴展數據庫是一個棘手的過程,涉及良好的數據庫內部和操作系統知識。
所以我不會參考那篇文章。
PS:看了文章:
當腳本運行時,結果是平均約0.052640馬克,使這個迄今爲止最慢的方法至今。
我無法實現只是實例變量如何可以比從數據庫中讀取(其包括連接開銷,從表開銷讀取,發送數據的開銷和到底同一實例變量處理)比較慢。根據定義,X
不能超過X + Y
。
是的,我真的覺得和你一樣。這就是我選擇php文件來保存配置變量的原因。無論如何,當文章談論每種方法如何「縮放」時,它們指的是在增加變量數量時它的行爲方式,而不是在設置更多應用程序實例時。那是你的意思嗎? –
我能想到的唯一原因是PHP數組最慢的方法是解析大型PHP文件和數組。爲了解決這個問題,請使用opcode cacher,以便它不需要每次都解析配置,或解析配置,序列化並在可能的情況下使用序列化版本。 – drew010
在我看來,如果你可以存儲在數據庫中的配置,並在內存中緩存的結果,表現應該是非常非常好。
但是,如果配置存儲在數據庫中,它需要大量的加入得到它,沒有緩存,性能可能會比使用PHP文件最差。
在另一方面,如果你存儲在返回數組中的PHP文件配置:
//config.php
return array(
'configitem1' => 'xyz',
)
//then use
$config = require_once('config.php);
的表現應該不會太差。顯然,每個請求都會有磁盤IO,所以如果您需要大量文件,那麼您可能會遇到一些性能問題。如果需要調用大量文件,可以將結果緩存到memcached或APC中以消除磁盤IO性能問題。
最後,您可以使用XML或YAML文件。這些將是性能最低的,因爲您需要加載和讀取文件,然後解析它。
就個人而言,我認爲將是存儲在應用程序的用戶可能需要修改它的數據庫配置。例如:
總會有配置需要在文件存儲:
但是,存儲在文件中的配置可以緩存在memcached或APC中,所以您的應用程序仍應該是高性能的。
所以我的2美分:
這是爲什麼文章是錯誤的:
Type First Run Second Run
Ini File 0.000421 0.021381
XML File 0.000717 0.
PHP File 0.000450 0.052640
Database 0.005533 0.014184
說「第一次運行」和「第二輪」清楚地表明,這些都不是平均結果。作者只是跑了兩次,沒有一個真正的分析器,併發布了一個毫無意義的數字。
「規模」在哪個方向?文件中有更多條目?更多需要配置的服務器? – deceze
「縮放」與文件中的更多條目。 –