如何提高以下情况的性能?
我有一个应用程序接受跨网络的多个连接。该应用程序是用 C# 编写的,并接受套接字连接。每五分钟,应用程序需要执行一次函数调用来更新应用程序并将信息报告回套接字。截断代码如下
...
{
new Thread(Loop).Start();
}
public Loop()
{
...
while (true)
{
...
string line = user.Read();
...
}
...
}
上面的代码是当 Socket 连接到服务器时运行的代码。 以下代码每五分钟运行一次。
...
{
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 秒,因此性能是一个问题。
最佳答案
在决定做什么之前,您确实需要分析这段代码。 . .如果您无权访问分析器,请添加简单的检测以确定瓶颈所在。从计时 Tick() 开始以验证它是问题的根源(而不是程序中的其他地方),然后根据需要重复 Tick() 的子部分。
您确实需要在此处进行剖析和测量。 . .假设您的性能问题出在哪里可能会导致您浪费大量时间。
关于c# - 提高 C# 代码的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/554729/