我目前有2个暴露的端点.第一个是WebAPI(.NET 4.6).第二个是WCF(.NET 3.5).它们都能够执行相同的计算,但是WCF平均慢10倍.有问题的计算代码包含在dll中,我们称之为core.dll.此dll还公开WCF端点,并由ASP.NET站点使用.webapi dll,我们称之为api.dll引用core.dll,并由SPA使用.计算可以由任一客户端触发.平均而言,使用我的测试数据,WCF服务大约需要4.5秒来执行计算,其中WebAPI大约需要450毫秒(或大约快10倍).
我应该注意,所有数据库调用都是在测量的时间范围之外完成的.事先检索所有数据,并在计算完成后进行所有更新.
在所有条件相同的情况下,我有什么理由可以看到纯处理速度的巨大差异?
我100%确定两个客户端的数据是相同的,并且它们都收到相同的结果.
WEBAPI Controller
Service
GRAB DATA
start timer
Process(DATA) -- the same code/class as below
end timer
UPDATE DATA
Service return
WEBAPI Controller return
WCF Endpoint
Service
GRAB DATA
start timer
Process(DATA) -- the same code/class as above
end timer
UPDATE DATA
Service return
WCF Endpoint return
Run Code Online (Sandbox Code Playgroud)
编辑:为清晰起见添加图表(希望如此)
编辑2:感谢您的回答/评论.不幸的是,这个问题似乎没有任何结论.我和我的同事最终选择相信这只是Framework版本效率的纯粹差异.我们最终重组了Web服务,以便只在WebAPI中进行计算.