我基本上试图将一个大文件(大约10G)读入一个行列表.该文件包含一个整数序列,如下所示:
0x123456
0x123123
0x123123
.....
Run Code Online (Sandbox Code Playgroud)
我使用下面的方法默认为我的代码库读取文件,但事实证明在这种情况下退出缓慢(~12分钟)
let lines_from_file (filename : string) : string list =
let lines = ref [] in
let chan = open_in filename in
try
while true; do
lines := input_line chan :: !lines
done; []
with End_of_file ->
close_in chan;
List.rev !lines;;
Run Code Online (Sandbox Code Playgroud)
我想我需要将文件读入内存,然后将它们分成几行(我使用的是128G服务器,因此内存空间应该没问题).但是我仍然不明白OCaml在这里搜索文件后是否提供这样的设施.
所以这是我的问题:
鉴于我的情况,如何快速将文件读入字符串列表?
怎么用stream?但我需要调整相关的应用程序代码,这可能会导致一些时间.
| 归档时间: |
|
| 查看次数: |
1100 次 |
| 最近记录: |