gpt4 book ai didi

c# - Web服务调用的多线程性能问题

转载 作者:太空狗 更新时间:2023-10-29 23:59:38 32 4
gpt4 key购买 nike

这是我的 Web 服务服务器端和客户端示例程序。我遇到了一个strnage性能问题,就是即使我增加调用web服务的线程数,性能也没有提高。同时,任务管理器性能面板的CPU/内存/网络消耗低。我想知道瓶颈是什么,如何改进?

(我的测试经验,线程数加倍几乎会使总响应时间加倍)

客户端:

class Program
{
static Service1[] clients = null;
static Thread[] threads = null;

static void ThreadJob (object index)
{
// query 1000 times
for (int i = 0; i < 100; i++)
{
clients[(int)index].HelloWorld();
}
}

static void Main(string[] args)
{
Console.WriteLine("Specify number of threads: ");
int number = Int32.Parse(Console.ReadLine());

clients = new Service1[number];
threads = new Thread[number];

for (int i = 0; i < number; i++)
{
clients [i] = new Service1();
ParameterizedThreadStart starter = new ParameterizedThreadStart(ThreadJob);
threads[i] = new Thread(starter);
}

DateTime begin = DateTime.Now;

for (int i = 0; i < number; i++)
{
threads[i].Start(i);
}

for (int i = 0; i < number; i++)
{
threads[i].Join();
}

Console.WriteLine("Total elapsed time (s): " + (DateTime.Now - begin).TotalSeconds);

return;
}
}

服务器端:

    [WebMethod]
public double HelloWorld()
{
return new Random().NextDouble();
}

提前致谢,乔治

最佳答案

虽然您创建的是多线程客户端,但请记住 .NET 有一个可配置的瓶颈,即 2 个同时调用单个主机。这是设计使然。请注意,这是在客户端而不是服务器上。

尝试在客户端中调整您的 app.config 文件:

<system.net>
<connectionManagement>
<add address=“*” maxconnection=“20″ />
</connectionManagement></system.net>

this short article 中有更多相关信息:

关于c# - Web服务调用的多线程性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/507089/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com