mirror of
https://github.com/OpenHFT/Chronicle-Map.git
synced 2021-09-13 01:26:12 +00:00
HCOLL-217 Add Deflator compression for JDK Serialized values.
This commit is contained in:
@@ -20,10 +20,7 @@ package net.openhft.chronicle.map;
|
||||
|
||||
import net.openhft.lang.Jvm;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.StringWriter;
|
||||
import java.io.*;
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
@@ -35,14 +32,16 @@ import java.util.Arrays;
|
||||
public class OSResizesMain {
|
||||
public static void main(String[] args) throws IOException, InterruptedException {
|
||||
File file = File.createTempFile("over-sized", "deleteme");
|
||||
ChronicleMap<String, String> map = ChronicleMapBuilder.of(String.class, String.class)
|
||||
int valueSize = 1000 * 1000;
|
||||
ChronicleMap<String, ByteArray> map = ChronicleMapBuilder.of(String.class, ByteArray.class)
|
||||
.entrySize(50 * 1024 * 1024)
|
||||
.entries(1000 * 1000)
|
||||
.valueSize(valueSize + 16)
|
||||
.createPersistedTo(file);
|
||||
for (int i = 0; i < 10000; i++) {
|
||||
char[] chars = new char[i];
|
||||
Arrays.fill(chars, '+');
|
||||
map.put("key-" + i, new String(chars));
|
||||
byte[] chars = new byte[valueSize];
|
||||
Arrays.fill(chars, (byte) '+');
|
||||
ByteArray ba = new ByteArray(chars);
|
||||
for (int i = 0; i < 1000; i++) {
|
||||
map.put("key-" + i, ba);
|
||||
}
|
||||
long start = System.currentTimeMillis();
|
||||
System.gc();
|
||||
@@ -77,3 +76,11 @@ public class OSResizesMain {
|
||||
return sw.toString();
|
||||
}
|
||||
}
|
||||
|
||||
class ByteArray implements Serializable {
|
||||
final byte[] bytes;
|
||||
|
||||
ByteArray(byte[] bytes) {
|
||||
this.bytes = bytes;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user