小编Sal*_*rit的帖子

Erlang:以有效的方式从输入流中读取

我正在编写一个从输入流中读取的程序,即

erl -run p main -noshell -s erlang halt < input
Run Code Online (Sandbox Code Playgroud)

问题是使用这个读取函数需要花费大量时间来读取它(输入流很大):

read_input(L) ->
    case io:get_line("") of
        eof ->
            lists:reverse(L);
        E0 ->
            read_input([E0|L])
    end.
Run Code Online (Sandbox Code Playgroud)

我一直在寻找更有效的替代方案,但我一无所获.我试过用它来读取文件

{ok, Binary} = file:read_file("input")
Run Code Online (Sandbox Code Playgroud)

这远远高效得多.问题是我必须在名称未知的平台上运行此程序,所以我需要一些替代方法来执行此操作.另外,我无法选择运行时使用的标志,例如,标志-noinput无法添加到命令行.

无论您给予什么帮助,都会受到欢迎.

io erlang performance inputstream processing-efficiency

5
推荐指数
2
解决办法
731
查看次数