Hello,
I have observed high memory usage (>10G) during root search using the command line when the PID is provided: ./read-memory-64-bit.exe read-memory-eve-online --pid {pid} --output-file {output_file}. I believe this might be related to how the program samples the process during root search (here).
I took a stab at it to improve the memory usage by changing these lines to:
if (processId.HasValue)
{
var possibleRootAddresses = 0 < rootAddressArgument?.Length ? ImmutableList.Create(ParseULong(rootAddressArgument)) : EveOnline64.EnumeratePossibleAddressesForUIRootObjectsFromProcessId(processId.Value);
return (new MemoryReaderFromLiveProcess(processId.Value), possibleRootAddresses);
}
it reduces the memory (<2G) as it does not "read content" when calling ReadCommittedMemoryRegionsFromProcessId.
This change also sped up the root search step by a little. Also, there is no longer dependency on the screenshots, so the command does not error even when the window is not focused.
Hello, I have observed high memory usage (>10G) during root search using the command line when the PID is provided:
./read-memory-64-bit.exe read-memory-eve-online --pid {pid} --output-file {output_file}
. I believe this might be related to how the program samples the process during root search (here). I took a stab at it to improve the memory usage by changing these lines to:it reduces the memory (<2G) as it does not "read content" when calling
ReadCommittedMemoryRegionsFromProcessId
. This change also sped up the root search step by a little. Also, there is no longer dependency on the screenshots, so the command does not error even when the window is not focused.