我運行一個系統需要更新存儲在數據庫中的數據的各種XML文件。該腳本通過服務器端php文件運行,該文件由守護程序監視,以便執行,完成釋放資源,然後重新啓動。需要PHP超快速xml更新
我在腳本中有一些基準測試,當我需要更新100個xml文件時,需要大約15秒才能完成。一個典型的xml文件是在6kb左右 - 我使用php的dom創建xml,並使用dom-> save進行編寫。數據庫是完全規範化的,並且正確的索引已到位,我需要執行的3個查詢獲得必要的數據,我需要更新xml只需要大約0.05秒。因此,瓶頸似乎是通過dom實際創建xml並寫入文件本身。
有沒有任何想法,我真的可以加快這個過程?我已經考慮過使用crc檢查來查看xml是否需要重寫,但是這仍然會要求我讀取我將要更新的xml文件,並且此刻我不這樣做,所以肯定它同樣糟糕只是將一個新文件保存在舊文件的頂部?此外,我不認爲它有可能編輯XML的某些部分,因爲結構不是統一的,節點的順序可能會更改,取決於更新後哪些數據不爲空。
真的很感謝你對此的看法!
你完全重建每個100個文件嗎?你應該鏈接到幾個示例文件,以便人們可以瞭解工作量。對於只有100個文件來說,15s似乎有點太過分了,但由於我們不知道它運行在哪種服務器上,所以很難說清楚。嘗試使用XDebug + WinCacheGrind/KCachegrind分析代碼。 –
我同意。看起來這可能是一個簡單的preg_replace可行的,但真的有nei。 – cwallenpoole