如何改善以下情况的性能?提高C#代码的性能
我有一个应用程序接受跨网络的多个连接。该应用程序使用C#编写,并接受Socket连接。每五分钟,应用程序需要执行一个函数调用,以更新应用程序并将信息报告给套接字。截断代码如下
...
{
new Thread(Loop).Start();
}
public Loop()
{
...
while (true)
{
...
string line = user.Read();
...
}
...
}
上面的代码是当一个套接字连接到服务器什么是运行。 以下代码是每五分钟运行一次的代码。
...
{
new Thread(TryTick).Start();
}
public void TryTick()
{
while(true)
{
Tick();
Thread.Sleep(new TimeSpan(0, 5, 0));
}
}
Tick()执行一些文件I/O操作以及解析一组非常有限的(小于1MB)XML数据。但是,这段代码会使我的处理器税收超过我原先想象的那样。一旦发生勾号,系统似乎会占用我双核心开发机器的整个Core,并且不会放过。这似乎是相当简单的事情,但也许我正在以简单的方式而不是快速的方式。
该系统意味着可以处理多达100个用户,更多的数据并且在加载过程中的响应时间小于1秒,因此性能是一个问题。
我很抱歉。我手动重写了错误的代码。 – 2009-02-16 22:04:41
“new Thread(Loop).Start();” - 如果这是你真的在做什么,那你为什么不使用线程池? – 2009-02-16 22:33:53