我创建了一个多线程服务来执行图像处理。一切正常,直到我们的一位客户将产品安装在具有大量内存的 16 进程服务器中。现在服务抛出了很多内存不足的错误,这是可以理解的,因为无论安装多少进程都只能获得 1.5GB 的内存。
这种情况下可接受的解决方案是什么?该服务是否应该产生一个单独的工作进程?每个 CPU 是否应该有一个工作进程通过命名管道与主服务通信?
编辑我们在 64 位服务器上运行,但由于映像库的限制,无法定位 x64
谢谢
我创建了一个多线程服务来执行图像处理。一切正常,直到我们的一位客户将产品安装在具有大量内存的 16 进程服务器中。现在服务抛出了很多内存不足的错误,这是可以理解的,因为无论安装多少进程都只能获得 1.5GB 的内存。
这种情况下可接受的解决方案是什么?该服务是否应该产生一个单独的工作进程?每个 CPU 是否应该有一个工作进程通过命名管道与主服务通信?
编辑我们在 64 位服务器上运行,但由于映像库的限制,无法定位 x64
谢谢
有多种解决方案。这些是一些选项:
选项#1 和#2 是最容易实现的,#5 是最困难的。
编辑我注意到C#
你的问题中有标签。对于托管应用程序,您仍然可以使用EditBin.exe 工具使用大型地址感知标志。