我做了这样的Kryo测试,代码如下:
public class Some implements KryoSerializable {
private static final long serialVersionUID = 8212888201641460871L;
private static final RecordCodec lazyCodec = new RecordCodec();
private Record record;
public Record get() { return record; }
public void set(Record r) { record = r; }
/* Kryo */
@Override
public void read(Kryo kryo, Input input) {
lazyCodec.setInputStream(input);
record = lazyCodec.decode();
}
@Override
public void write(Kryo kryo, Output output) {
final RecordCodec codec = new RecordCodec();
codec.setOutputStream(output);
codec.encode(record);
}
}
我已经实现了KryoSerializable接口,代码如下:
RecordCodec
** write
类用于压缩记录数据。
但我发现,中间输出文件比原始加载文件大得多! (加载文件:220m,中间输出文件:870m)我想如果Kryo调用Some
类中的http://localhost/test/index.php/test_con
方法,中间输出文件应该是大约300-400m,而不是870m。
所以我想问一下,如果Kryo会在特定的类中调用read和write方法吗?我认为它看起来并不紧凑,我是否犯了一些错误?