DB db = new MongoClient().getDB("test");
|
DBCollection c = db.getCollection("testLazyDotKeysPass");
|
c.drop();
|
|
DBObject obj = new BasicDBObject();
|
ArrayList<Integer> arr = new ArrayList<Integer>();
|
for (int i = 0; i < 20000; i++) {
|
arr.add(i);
|
}
|
|
obj.put("largeArray", arr);
|
obj.put("randomstr", "asdfasdfa");
|
|
long start = System.currentTimeMillis();
|
c.insert(Arrays.asList(obj), WriteConcern.UNACKNOWLEDGED);
|
System.out.println("Save obj: " + (System.currentTimeMillis() - start));
|
c.remove(new BasicDBObject());
|
|
//convert to a lazydbobject
|
DefaultDBEncoder encoder = new DefaultDBEncoder();
|
byte[] encodedBytes = encoder.encode(obj);
|
|
LazyDBDecoder lazyDecoder = new LazyDBDecoder();
|
DBObject lazyObj = lazyDecoder.decode(encodedBytes, c);
|
|
start = System.currentTimeMillis();
|
c.insert(Arrays.asList(lazyObj), WriteConcern.UNACKNOWLEDGED, new LazyDBEncoder());
|
System.out.println("Save lazy obj: " + (System.currentTimeMillis() - start));
|
c.remove(new BasicDBObject());
|
|
//convert lazy to a regular DBObject and save
|
start = System.currentTimeMillis();
|
LazyDBEncoder lazyEncoder = new LazyDBEncoder();
|
BasicOutputBuffer outputBuffer = new BasicOutputBuffer();
|
lazyEncoder.writeObject(outputBuffer, lazyObj);
|
|
DefaultDBDecoder defDecode = new DefaultDBDecoder();
|
DBObject normalObject = defDecode.decode(outputBuffer.toByteArray(), c);
|
|
c.insert(Arrays.asList(normalObject), WriteConcern.UNACKNOWLEDGED);
|
System.out.println("Lazy to Basic and save " + (System.currentTimeMillis() - start));
|