.net - 为高性能编程 HttpClient
问题描述
我设置了一个仅返回默认页面的 Azure 网站。从 .Net Core 2.1 调用此链接的响应时间为几毫秒。然后我尝试使用 HttpClient 发送 1000 个并发请求。该批次平均在 27 秒内完成。
class Program
{
static void Main(string[] args)
{
Task.WhenAll(Enumerable.Range(0, 1000).Select(i => Get(i)));
}
static HttpClient client = new HttpClient();
static async Task Get(int i)
{
var response = await client.GetAsync("http://testinghttpclient.azurewebsites.net/");
var content = await response.Content.ReadAsStringAsync();
}
}
每 1000 个请求 27 秒对我来说似乎太慢了。我正确使用 HttpClient 吗?如果是这样,您能否帮助我了解在这种情况下我的限制资源是什么?
解决方案
问题是从 IDE 运行它。以发布模式发布它并从命令行运行它使执行时间不到一秒钟。
推荐阅读
- python - 打包带有pylucene依赖的python软件
- java - MyBatis,根据环境动态改变数据库类型
- mysql - 错误的 MYSQL 查询
- ios - iOS看门狗在杀死应用程序之前让主线程挂起多长时间?
- java - 如何在 Android Studio 中查看布局编辑器而不是 XML 代码?
- node.js - loopback 4 命令模型挂起
- javascript - 如何预加载在 JS 中调用的 css
- javascript - 有没有更好的基于 HTMLmenu 的方法来做到这一点?
- model-checking - 如何检查决策树是否满足不变量?
- linux - 对 mariadb::account::create() 的未定义引用