我正在使用 db4o 作为一个看起来像语义 wiki 的项目的后端。我主要关心的是为什么性能这么低?
这是上下文:
该应用程序使用 openJdk6 和 db4o-v8.1。该模型大约有四个继承级别的二十个类,有可激活的集合、引用、uuid、索引等......
通过使用系统时间日志,我发现时间花在了操作对象的部分。对于 30 次激活或更新,应用程序平均花费 1.1 秒(提交时少于 1Kb 的数据)。我已经检查了内存(转储),图中只有一小部分是负载(我的数据库大约有 20K 对象和 20Mb),正如透明激活所预期的那样。我几乎从不使用查询,总是使用关系激活。
我在同一台主机上使用客户端服务器。db-server 是我们可以在 db4o 网站上找到的示例。客户端-服务器会降低一些性能,但需要并发性。主机依赖于启用大约 300iops 的 fc 存储。
- 可以做些什么来提高性能,减少延迟?
- 我错过了什么吗?
- 有什么我应该知道的技巧吗?