我正在构建一个网络服务器,并在请求被路由到的服务器上启动大量AppDomains。向AppDomains之一发送请求有效负载以进行处理的最快方法是什么?
解码主要创建不可变对象,用于确定如何满足客户端请求,然后AppDomain创建响应并将其封送回主机AppDomain,后者通过套接字将其发回。
与较少的CPU相比,该方法更倾向于更少的内存。
WCF不是一种选择。
发布于 2009-05-04 03:38:04
TCP二进制远程处理当然是快速的,我不知道它比原始套接字快多少,它可能是最快的,但是是皇家的PIA。
我在生产中使用HTTP二进制远程处理在两个盒子之间每秒运行1500到2000 req。在同一个框中,使用TCP或名称管道通道应该具有很高的性能,这取决于处理数据所需的CPU周期。
发布于 2009-05-04 03:49:01
如果我是您,我会看看卡西尼是如何实现的。它做的和你说的差不多。
实际上,Cassini已经被Webhost取代了,这是Visual现在附带的内置with服务器。请看菲尔·哈克博客上的这个职位,了解更多信息。
发布于 2009-05-04 04:49:38
很好的问题。如果我要解决这个问题,我可能会使用缓冲的流/内存流,并将流封送到消耗对象的AppDomain中,以减少在不同的AppDomain中创建的许多对象图的封送或序列化。
但是,听起来您几乎完全复制了IIS的功能,所以我将查看/反射到System.Web.Hosting命名空间中,看看他们如何处理它和它们的WorkerThreadPool等等……
https://stackoverflow.com/questions/818681
复制相似问题