我正在使用db4o
groovy(实际上是 griffon)。我将十几个对象保存到db4o
objectSet 中,看到 .yarv 文件大小约为 11Mb。我检查了它的内容,发现它metaClass
与所有嵌套字段一起存储到每个对象中。这是浪费空间。
寻找避免存储metaClass
并因此减小结果 .yarv 文件大小的方法,因为我将使用db4o
存储数百万个实体。我应该尝试callConstructors(true)
db4o
配置吗?认为这会有所帮助吗?任何帮助将不胜感激。
问问题
228 次
2 回答
1
作为替代方案,您可以只存储“Groovy”-beans实例。这些被编译成常规的 Java 类,没有附加特殊的 Groovy 特定代码。
像这样:
class Customer {
// properties
Integer id
String name
Address address
}
class Address{
String street;
}
def customer = new Customer(id:1, name:"Gromit", address:new Address(street:"Fun"))
于 2011-07-11T15:55:59.953 回答
0
我不知道 groovy,但根据您的描述,每个 groovy 对象都带有元数据,您想跳过存储这些对象。
如果是这种情况,安装“空翻译器”(TNull 类)将导致“已翻译”对象不被存储。
PS: Call Constructor configuration has no effect on what gets stored in the db; it only affects how objects are instantiated when reading from db.
希望这可以帮助
于 2011-07-08T12:22:45.907 回答