gpt4 book ai didi

c# - 限制进程的CPU使用率

转载 作者:可可西里 更新时间:2023-11-01 08:34:25 24 4
gpt4 key购买 nike

我有一项服务正在运行,它会定期检查文件夹中的文件,然后对其进行处理。 (读取它,提取数据,存入sql)

所以我在测试盒上运行了它,它花费的时间比预期的要长一点。该文件有 160 万行,6 小时后仍在运行(然后我回家了)。

问题是它运行的机器现在完全瘫痪了——远程桌面超时所以我什至不能在它上面停止进程,或者附加一个调试器来查看有多远等等。它稳定地使用 90% 以上的 CPU,并且所有其他正在运行的服务或应用程序都受到影响。

代码是(凭内存,可能无法编译):

List<ItemDTO> items = new List<ItemDTO>();
using (StreamReader sr = fileInfo.OpenText())
{
while (!sr.EndOfFile)
{
string line = sr.ReadLine()
try {
string s = line.Substring(0,8);
double y = Double.Parse(line.Substring(8,7));

//If the item isnt already in the collection, add it.
if (items.Find(delegate(ItemDTO i) { return (i.Item == s); }) == null)
items.Add(new ItemDTO(s,y));
}
catch { /*Crash*/ }
}
return items;
}

-所以我正在努力改进代码(感谢任何提示)。

但它仍然可能是一件缓慢的事情,这很好,只要它不会杀死我的服务器,我对它花费很长时间没有问题。

所以我想从你们这些好人那里得到的是:1) 我的代码是否严重未优化?2) 我可以限制我的代码块可能使用的 CPU 数量吗?

大家好

最佳答案

与其限制它的 CPU 使用率,不如将它设置为闲置优先级,这样它只会在盒子无事可做时运行。其他人已经提到了优化的可能性,所以我不会尝试进入那部分。

关于c# - 限制进程的CPU使用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2960677/

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