gpt4 book ai didi

c# - 线程会提高性能吗?

转载 作者:行者123 更新时间:2023-12-03 12:49:42 24 4
gpt4 key购买 nike

我有一个这样设置的程序。它是一个 .Net Framework 4 控制台应用程序。该程序用于从每台服务器上的每个日志文件(上周)收集 sc-bytes 和 cs-bytes。该程序已完成,但需要很长时间才能运行。

foreach (string server in servers)
{

foreach (string website in Directory.GetDirectories(server))
{

foreach (string file in Directory.GetFiles(website))
{

我只是想知道是否可以使用诸如线程或 PLINQ 之类的东西来加速这个过程?如果这会提高性能,我不确定实现它的最佳方法,因为为每个日志文件(甚至每个网站)创建一个新线程似乎不合逻辑,因为拥有那么多线程显然不会提高性能。

如果您需要查看更多代码,请询问,但该程序基本上读取最近 7 天内创建的每个文件的每一行,添加字节数,然后使用目录条目获取网站名称(来自ID),然后将每个网站的名称和总字节数输出到一个文本文件(最终将成为一个数据库)。我不需要任何实际代码,只需要有关提高性能的最佳方法(如果可能)的建议。

谢谢。

最佳答案

在像这样的 IO 绑定(bind)任务中(遍历目录和文件并读取它们),瓶颈是磁盘 IO,而不是 CPU。

并行化(?)这不太可能有助于加快速度,甚至可能会损害性能。

关于c# - 线程会提高性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10954340/

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