这是情况。如何在有多个线程时减少文件写入次数?
在我被分配到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