Hi,
One more update. Sorry When I created a code sample that I shared. I put
StringBuilder under the setup function but actually it was on the start
bundle function. So far I tested below scenarios
- with StringWriter construct object every processElement call
- with StringBuilder construct object
You may be able to get some additional insight if you configure Dataflow to
save a heap dump before killing the JVM
(--dumpHeapOnOOM, --saveHeapDumpsToGcsPath) and inspecting the dump. There
are directions for that (and a lot of other advice about memory issues) at
[1].
Another question - is this
Is it possible that you only need more memory per worker?
Have you tried using a `workerMachineType` with more memory [1] and lower
the `numberOfWorkerHarnessThreads` [2]?
[1]
https://cloud.google.com/compute/docs/machine-types#n1_standard_machine_types
[2]
https://cloud.google.com/dataflow/docs