I created a multithreaded service to perform image processing. Everything worked fine until one of our clients installed the product in a 16 process server with lots of memory. Now the service throws lots of out of memory errors, which is understandable because processes can only get 1.5GB of memory regardless of how much is installed.
What is the accepted solution for this situation? Should this service instead spawn off a separate worker process? Should I have one worker process per CPU talking via named pipes to the main service?
EDIT we are running on a 64bit server, but can’t target x64 because of imaging libraries limitations
Thank you
There are multiple solutions for this. These are some of the options:
Options #1 and #2 are the easiest to implement, #5 is most difficult.
EDIT
I noticed
C#tag in your question. For managed apps you can still use Large Address Aware flag using EditBin.exe tool.