這是情況。如何在有多個線程時減少文件寫入次數?
在我被分配到mantain的Java Web App中,我被要求改進QA期間壓力測試的一般響應時間。這個網絡應用程序不使用數據庫,因爲它應該是輕而易舉的。 (並且我不能改變這個決定)
要持久化配置,我發現每次你對它做出改變時,一個包含config對象列表的通用對象被序列化爲一個文件。
使用Jmeter我發現在給定的測試用例中,有2個請求佔用大部分時間。這兩個請求都添加或更改了一些配置對象。由於必須對文件進行訪問,因此許多用戶在更改配置時,文件必須在幾秒鐘內完成多次寫入,並且請求正在等待寫入文件的發生。
我認爲所有這些序列化根本就沒有必要,因爲我們一次又一次地重寫大部分對象,每個請求中的更改都是針對一個對象,但是整個文件都是作爲一個整體寫入的時間。
那麼,有沒有辦法減少真正的文件寫入的數量,但仍然保證所有的更改最終序列化?
任何建議表示讚賞
爲什麼您將配置存儲爲序列化對象? – Kaj 2011-05-25 17:02:14
這不是我的選擇,設計者認爲它會很好很簡單,不幸的是,他沒有看到結果,我負責「爲QA球員做足夠快」......任何方式我都可以'在不久的將來會改變這種情況,因爲設計已經被批准並且功能測試已經結束。改變其根源以使用[db4o](http://db4o.com/)或JavaDB將使我們回到根據政治的發展階段......並且至少延遲3周。我討厭現在爲這樣一個糟糕的設計負責。 – rsinuhe 2011-05-25 18:01:26