Содержание полей не имеет значения для большинства стратегий сериализации. esp Java Сериализация.
Однако для стратегий сериализации, где это имеет значение, случайные данные, вероятно, являются плохим выбором, поскольку это даст вам гораздо худшие результаты, чем вы могли бы получить в реальности.
Создание 10 Random
объектов для каждого фактического объекта стоит дорого (обратите внимание, что в Random также есть объект)
Способ обойти это - повторно использовать ThreadLocalRandom
или просто заполнить значения некоторыми данными, даже если они не слишком случайны.
static class TestClass implements Serializable {
private long a, b, c, d, e, f, g, h;
public TestClass(long i) {
a = i;
b = a * i;
c = b * i;
d = c * i;
e = d * i;
f = e * i;
g = f * i;
h = g * i;
}
}
public static void main(String[] args) {
for (int t = 0; t < 5; t++) {
long start = System.currentTimeMillis();
List<TestClass> list = LongStream.range(0, 100_000)
.mapToObj(TestClass::new)
.collect(Collectors.toList());
long time = System.currentTimeMillis() - start;
System.out.println("Created " + list.size() + " objects in " + time + "ms");
}
}
печать
Created 100000 objects in 64ms
Created 100000 objects in 6ms
Created 100000 objects in 6ms
Created 100000 objects in 5ms
Created 100000 objects in 4ms