为什么 GoLang 中的文件加载一开始需要很长时间?然后需要最少的时间?

问题描述 投票:0回答:1

goProgram 是一个简单的实用程序,它在文件中搜索给定的字符串并得出 true/false

尝试使用 data.log 时,第一次大约需要 160 毫秒,后来大约需要 20 毫秒

I:\Study\GO> .\goProgram.exe I:\data.log "BUILD SUCCESS"
true
Execution time : 156.4336ms

I:\Study\GO> .\goProgram.exe I:\data.log "BUILD SUCCESS"
true
Execution time : 19.1512ms

I:\Study\GO> .\goProgram.exe I:\data.log "BUILD SUCCESS"
true
Execution time : 19.5516ms

I:\Study\GO> .\goProgram.exe I:\data.log "BUILD SUCCESS"
true
Execution time : 18.5528ms

尝试使用 data1.log 时,第一次大约需要 180 毫秒,后来大约需要 20 毫秒

I:\Study\GO> .\goProgram.exe I:\data1.log "BUILD SUCCESS"
true
Execution time : 178.5104ms

I:\Study\GO> .\goProgram.exe I:\data1.log "BUILD SUCCESS"
true
Execution time : 17.5497ms

I:\Study\GO> .\goProgram.exe I:\data1.log "BUILD SUCCESS"
true
Execution time : 21.0613ms

data.log 和 data1.log 约为 24MB。

它是否构建某种缓存?或者它对加载的文件进行一些索引?

file go caching memory-management
1个回答
1
投票

操作系统将从磁盘读取的数据缓存在内存中一段时间,这样重复访问相同的数据会更快。这与使用的特定程序或编程语言无关。

© www.soinside.com 2019 - 2024. All rights reserved.