我有一个这样的程序。它是一个 .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) ,然后将每个网站的名称和总字节数输出到一个文本文件(最终将是一个数据库)。我不需要任何实际代码,只需建议(如果可能的话)提高性能的最佳方法。
谢谢。