.Net HTTPClient 第一次请求新客户端很慢,是否可以提高性能

问题描述 投票:0回答:0

2023-03-30 20:48:52:获取标题所需的时间:501

2023-03-30 20:48:52:获得标题所需的时间:78

2023-03-30 20:48:52:获得标题所需的时间:68

2023-03-30 20:48:52:获得标题所需的时间:63

2023-03-30 20:48:52:获得标题所需的时间:63

2023-03-30 20:48:52:获得标题所需的时间:95

                    test.Start();
                headerResponse = await client.GetFromJsonAsync<ResponseHeaderViewModel>($"GenericSync/GetHeaders?tableName={tableName}&ProjectRef={projectRef}");
                test.Stop();
                logger.Log("The duration it took to get headers: " +test.ElapsedMilliseconds);
                test.Reset();
                test.Start();
                headerResponse = await client.GetFromJsonAsync<ResponseHeaderViewModel>($"GenericSync/GetHeaders?tableName={tableName}&ProjectRef={projectRef}");
                test.Stop();
                logger.Log("The duration it took to get headers: " + test.ElapsedMilliseconds);
                test.Reset(); test.Start();
                headerResponse = await client.GetFromJsonAsync<ResponseHeaderViewModel>($"GenericSync/GetHeaders?tableName={tableName}&ProjectRef={projectRef}");
                test.Stop();
                logger.Log("The duration it took to get headers: " + test.ElapsedMilliseconds);
                test.Reset(); test.Start();
                headerResponse = await client.GetFromJsonAsync<ResponseHeaderViewModel>($"GenericSync/GetHeaders?tableName={tableName}&ProjectRef={projectRef}");
                test.Stop();
                logger.Log("The duration it took to get headers: " + test.ElapsedMilliseconds);
                test.Reset(); test.Start();
                headerResponse = await client.GetFromJsonAsync<ResponseHeaderViewModel>($"GenericSync/GetHeaders?tableName={tableName}&ProjectRef={projectRef}");
                test.Stop();
                logger.Log("The duration it took to get headers: " + test.ElapsedMilliseconds);
                test.Reset(); test.Start();
                headerResponse = await client.GetFromJsonAsync<ResponseHeaderViewModel>($"GenericSync/GetHeaders?tableName={tableName}&ProjectRef={projectRef}");
                test.Stop();
                logger.Log("The duration it took to get headers: " + test.ElapsedMilliseconds);
                test.Reset();

从上面的数据可以看出,同一个请求,第一次执行需要500ms+,不算长,但是我的程序对时间很敏感。是否有可能让第一个请求与所有其他请求相同? Client是由IHTTPClientFactory生成的httpclient。被调用的 api 在 IIS 下工作。

.net performance request httpclient
© www.soinside.com 2019 - 2024. All rights reserved.