为什么 Directory.GetFiles() 在后续运行中运行得更快?

2023-12-10

我不太确定是什么原因造成的,所以如果我在搜索中找不到所需的信息,请原谅我。这是一个例子:

假设我们有一个包含 1,000,000 个文件的文件夹。运行 Directory.GetFiles() 需要几分钟的时间。然而,之后再次运行它只需要几秒钟。为什么会出现这种情况?对象是否缓存在某处?如何才能以原来的时间运行呢?


硬盘驱动器具有内部缓存,有助于加快后续读取速度。尝试读取完全不同扇区中的一堆其他目录信息以清除缓存。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 Directory.GetFiles() 在后续运行中运行得更快? 的相关文章

  • 为什么在连接两个字符串时 Python 比 C 更快?

    目前我想比较 Python 和 C 用来处理字符串的速度 我认为 C 应该比 Python 提供更好的性能 然而 我得到了完全相反的结果 这是 C 程序 include
  • 如何从 C# 中的 dataTable.Select( ) 查询中删除单引号?

    所以我有一个经销商名称列表 我正在我的数据表中搜索它们 问题是 一些傻瓜必须被命名为 Young s 这会导致错误 drs dtDealers Select DealerName dealerName 所以我尝试替换字符串 尽管它对我不起作
  • Swift 使用哪种通用排序算法?它在排序数据上表现不佳

    我一直在挑选和探索 Swift 标准库sort 其函数为Array类型 令我惊讶的是 我注意到它在已经排序的数据上表现不佳 对数组进行排序Int打乱顺序似乎比对已经排序的同一个数组进行排序快 5 倍 对已打乱顺序的对象数组进行排序比对已按排
  • 如何在C(Linux)中的while循环中准确地睡眠?

    在 C 代码 Linux 操作系统 中 我需要在 while 循环内准确地休眠 比如说 10000 微秒 1000 次 我尝试过usleep nanosleep select pselect和其他一些方法 但没有成功 一旦大约 50 次 它
  • 如何判断计算机是否已重新启动?

    我曾经使用过一个命令行 SMTP 邮件程序 作为试用版的限制 它允许您在每个 Windows 会话中最多接收 10 封电子邮件 如果您重新启动计算机 您可能还会收到 10 个以上 我认为这种共享软件破坏非常巧妙 我想在我的应用程序中复制它
  • 从同一个类中的另一个构造函数调用构造函数

    我有一个带有两个构造函数的类 C 这是代码片段 public class FooBar public FooBar string s constructor 1 some functionality public FooBar int i
  • unordered_map 中字符串的 C++ 哈希函数

    看起来 C 标准库中没有字符串的哈希函数 这是真的 在任何 c 编译器上使用字符串作为 unordered map 中的键的工作示例是什么 C STL提供模板专业化 http en cppreference com w cpp string
  • 将 Long 转换为 DateTime 从 C# 日期到 Java 日期

    我一直尝试用Java读取二进制文件 而二进制文件是用C 编写的 其中一些数据包含日期时间数据 当 DateTime 数据写入文件 以二进制形式 时 它使用DateTime ToBinary on C 为了读取 DateTime 数据 它将首
  • 为什么可以通过ref参数修改readonly字段?

    考虑 class Foo private readonly string value public Foo Bar ref value private void Bar ref string value value hello world
  • 类型约束

    我有以下类层次结构 class Header IEnumerable
  • 打破 ReadFile() 阻塞 - 命名管道 (Windows API)

    为了简化 这是一种命名管道服务器正在等待命名管道客户端写入管道的情况 使用 WriteFile 阻塞的 Windows API 是 ReadFile 服务器已创建启用阻塞的同步管道 无重叠 I O 客户端已连接 现在服务器正在等待一些数据
  • 在视口中查找 WPF 控件

    Updated 这可能是一个简单或复杂的问题 但在 wpf 中 我有一个列表框 我用一个填充数据模板从列表中 有没有办法找出特定的数据模板项位于视口中 即我已滚动到其位置并且可以查看 目前我连接到了 listbox ScrollChange
  • 如何在 C 中安全地声明 16 位字符串文字?

    我知道已经有一个标准方法 前缀为L wchar t test literal L Test 问题是wchar t不保证是16位 但是对于我的项目 我需要16位wchar t 我还想避免通过的要求 fshort wchar 那么 C 不是 C
  • 在mysql连接字符串中添加应用程序名称/程序名称[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在寻找一种解决方案 在连接字符串中添加应用程序名称或程序名称 以便它在 MySQL Workbench 中的 客户端连接 下可见 SQL
  • 针对约 225 万行的单表选择查询的优化技术?

    我有一个在 InnoDB 引擎上运行的 MySQL 表 名为squares大约有 2 250 000 行 表结构如下 squares square id int 7 unsigned NOT NULL ref coord lat doubl
  • 高效列出目录中的所有子目录

    请参阅迄今为止所采取的建议的编辑 我正在尝试使用 WinAPI 和 C 列出给定目录中的所有目录 文件夹 现在我的算法又慢又低效 使用 FindFirstFileEx 打开我正在搜索的文件夹 然后我查看目录中的每个文件 使用 FindNex
  • 正则表达式库基准

    我最近一直想知道正则表达式实现的性能 并且很难想出很多有用的信息 它很容易对浏览器 javascript 正则表达式性能进行基准测试 网上有很多工具 Chrome 和 Opera 中的 javascript 正则表达式实现几乎摧毁了所有其他
  • String.Empty 与 "" [重复]

    这个问题在这里已经有答案了 可能的重复 String Empty 和 有什么区别 https stackoverflow com questions 151472 what is the difference between string
  • 堆栈是向上增长还是向下增长?

    我在 C 中有这段代码 int q 10 int s 5 int a 3 printf Address of a d n int a printf Address of a 1 d n int a 1 printf Address of a
  • 是否可以在不连接数据库的情况下检索 MetadataWorkspace?

    我正在编写一个需要遍历实体框架的测试库MetadataWorkspace对于给定的DbContext类型 但是 由于这是一个测试库 我宁愿不连接到数据库 它引入了测试环境中可能无法使用的依赖项 当我尝试获取参考时MetadataWorksp

随机推荐

  • 使用的目的是什么? [复制]

    这个问题在这里已经有答案了 DUPE C 中 using 的用法 我看到人们使用以下内容 我想知道它的目的是什么 是不是对象在被垃圾回收使用后就被销毁了 例子 using Something mySomething new Somethin
  • Laravel 4 嵌套资源控制器 Route::resource('admin/photo', 'PhotoController');不工作

    在 Laravel 4 中 我尝试设置嵌套资源控制器 in 路线 php Route resource admin photo Controllers Admin PhotoController in 应用程序 控制器 管理 PhotoCo
  • 访问 iframe 功能

    这个问题似乎只发生在chrome中 这是 iframe 代码 p lalalalallalala p 这就是我创建 iframe 的方式
  • Google Appengine 上的 Google Guice:使用工作 _ah 进行映射

    我有一个 Google Appengine Guice Wicket 应用程序 我的问题是 由于映射 我无法再访问 ah admin 页面 我的 Servlet 模块说 serve with WicketServlet class getW
  • Flutter 蓝牙外部条码扫描器

    我需要使用通过蓝牙连接到我的设备的外部条形码扫描仪 它被识别为键盘 它运行良好 我可以获取文本字段内条形码的内容 问题是我需要将焦点设置到 TextField 才能获取条形码的内容 有没有办法让当前屏幕监听键盘事件 这样我就可以获取数据而无
  • 如何缩放整个div?

    我现在正在玩一个函数这一页 如果您单击 who 部分 div 就会旋转 我希望它能够缩放并使用页面 这可能吗 如何才能做到这一点 旋转后 将其宽度和高度设置为页面的宽度和高度 who rotate angle 90 bind click f
  • 列表中的前 n 项(包括重复项)

    尝试找到一种有效的方法来获取一个非常大的列表中的前 N 个项目 可能包含重复项 我首先尝试了排序和切片 这很有效 但这似乎没有必要 如果您只想要前 20 名成员 则不需要对非常大的列表进行排序 所以我写了一个递归例程来构建 top n 列表
  • 无法让 document.execCommand('undo') 在浏览器中以相同的方式工作

    我有一些在文本框上实现上下文菜单的代码 上下文菜单有一个Undo and Redo通过使用调用浏览器本机方法的项目document execCommand undo 这段代码在基于 Chromium 的浏览器上按照我的要求运行 但在 Fir
  • 如何在 Hive 中按原始顺序选择行?

    我想从 mytable 中选择具有确定数字的原始行中的行 众所周知 关键字 limit 将随机选择行 mytable 中的行是按顺序排列的 我只想按原始顺序选择它们 例如 选择 10000 行 即从第 1 行到第 10000 行 如何实现这
  • 对象“_Global”的方法“Range”失败

    我试图循环遍历三个下拉列表中的项目 其中包含命名范围 A B 和 C 摘要输出根据所选下拉列表中的项目而变化 我想复制每个摘要输出 19 行 x 15 列的表格 并将它们粘贴到新工作表 表 3 中 例如 如果列表 A 中有 3 个项目 列表
  • 在 VueJS 中写入全局变量

    我在用 使用 VueJs 2 的全局数据作为我的起点 因为我只想读 写一个变量 我已在现有代码中添加了 click 事件来修改变量 但收到 未捕获的引用错误 myGlobalStuff 未定义 谁能看到我做错了什么 HTML div myG
  • %%F 变量始终引用 FOR 循环中的最后一项而不是当前项

    这看起来应该相当简单 但我在 DOS 中使用 FOR 循环来正确报告它正在评估的当前项目时遇到困难 我有一个简单的 DOS 批处理文件 它循环遍历目录中的所有文件并重命名它们 假设我的目录包含以下文件 File1 txt File2 txt
  • 模拟器无法连接互联网

    我的机器使用 WiFi 连接上网 并且 LAN 卡处于空闲状态 它不在代理或防火墙后面 但不知何故 我的模拟器的浏览器没有加载任何页面 这意味着模拟器无法连接到互联网 我搜索了很多但没有运气 可能的原因是什么 请帮忙 提前致谢 我在 OS
  • 为什么下面的代码会导致死锁

    我有以下课程 public class LockTester implements Runnable private static Locker locker new Locker public static void main Strin
  • JaxB 重命名具有重复名称的类

    我必须使用一个包含以下代码片段的架构 其中名称object是重复的
  • 如何使用 Maven 构建 Spark 1.2(给出 java.io.IOException:无法运行程序“javac”)?

    我正在尝试使用 Maven 构建 Spark 1 2 我的目标是在 Hadoop 2 2 上使用 PySpark 和 YARN 我发现这只能通过使用 Maven 构建 Spark 来实现 首先 这是真的吗 如果是的话 下面的日志有什么问题呢
  • 并行运行行为测试(在两个浏览器窗口中)

    我跟着这个博客作为一个例子并阅读平行跑者信息 当我打电话时bin behat命令后 将打开一个浏览器窗口并使用以下设置成功运行所有测试 symfony behat yml default context class Site CommonB
  • 在 OSX 10.10 Yosemite 中安装 JDK 1.5

    我使用 OS X Yosemite 10 10 2 并且必须使用 JDK 1 5 进行遗留应用程序开发 我发现this帖子指的是this在 Lion 和 Mavericks 中安装 JDK 4 5 6 的脚本 在评论中我发现这两行 usr
  • 分析 DLL/LIB 膨胀

    我在VS2005中继承了一个相当大的C 项目 它编译成大约5MB的DLL 我想缩小库的大小 以便对于从慢速网络共享使用它的客户端来说 它可以通过网络更快地加载 我知道如何通过分析代码 包含内容和项目设置来做到这一点 但我想知道是否有任何可用
  • 为什么 Directory.GetFiles() 在后续运行中运行得更快?

    我不太确定是什么原因造成的 所以如果我在搜索中找不到所需的信息 请原谅我 这是一个例子 假设我们有一个包含 1 000 000 个文件的文件夹 运行 Directory GetFiles 需要几分钟的时间 然而 之后再次运行它只需要几秒钟