two*_*wer 16 asp.net iis asp.net-web-api
我有一个像这样的简单动作方法:
public class TestApiController : ApiController
{
[Route("api/string"), HttpGet]
public string GetString(int length)
{
return new string('x', length);
}
}
Run Code Online (Sandbox Code Playgroud)
响应时间(由Fiddler观察):
GET /api/string?length=1186
0.008
0.007
0.007
...
GET /api/string?length=1187
0.208
0.212
0.205
...
Run Code Online (Sandbox Code Playgroud)
也就是说,通过向响应添加单个字节,处理时间增加了40倍.
这种行为绝对一致,我在Visual Studio的Web服务器和IIS 8.5中都观察到它(但是,特定的响应大小阈值略有不同).
为什么它会像这样?
编辑:在我的情况下,ESET NOD32防病毒检查HTTP协议是罪魁祸首.
防病毒软件正在扫描您的 PC 传入/传出的数据。
它们被编程为知道如何理解标准类型的数据,并且不会使扫描变得简单strings ints datatable。当您直接操作这些数据时,您是在告诉给定的防病毒软件“嗨,我很奇怪,请检查我”,防病毒“规则”是隐藏的,但我确信有一些“大小”,“格式”等.这取决于软件。就您而言,它速度较慢,它必须执行额外的扫描工作才能确保您的安全。对于运行发送一些自定义数据的自定义应用程序的 Intranet 解决方案来说,这是一个众所周知的问题。
| 归档时间: |
|
| 查看次数: |
206 次 |
| 最近记录: |