-
Notifications
You must be signed in to change notification settings - Fork 222
Open
Description
The problem with current method like net.datafaker.transformations.JsonTransformer#generate(net.datafaker.transformations.Schema<IN,?>, int)
it generates the whole String and then returns it. As a result for bigger numbers it consumes larger amount of memory and e.g.
such test fails with OutOfMemory
@Test
void test2() {
BaseFaker faker = new BaseFaker(new Random(10L));
Schema<Object, ?> schema = Schema.of(
field("Text", () -> faker.name().firstName()),
field("Bool", () -> faker.name().lastName())
);
JsonTransformer<Object> transformer = JsonTransformer.builder().build();
String json = transformer.generate(schema, 50_000_000);
System.out.println(json);
}There is not so much we can do about this method since anyway with such approach we need somehow to store that giant string value.
Another approach is instead of generation the final string value we could generate a stream of values and return it.
Metadata
Metadata
Assignees
Labels
No labels