[erlang-questions] Erlang vs IO
Bengt Kleberg
bengt.kleberg@REDACTED
Wed Sep 3 17:09:08 CEST 2008
Greetings,
If you are reading a file (as opposed to stdin) you can use
file:read_file/2 (if you have enough RAM) or file:read/2 (after using
the flag 'raw' when doing file:open/2).
bengt
On Wed, 2008-09-03 at 17:27 +0300, Imre Palik wrote:
> Hi,
>
> It is me messing up something, or the IO in erlang is quite slow? I run the following program on a largish file:
>
> -module(intest).
> -export([run/0]).
>
> problem_loop(0, _, Acc) ->
> io:fwrite("~w~n", [Acc]),
> void;
> problem_loop(I, D, A) ->
> {ok, [V]} = io:fread([], "~d"),
> if
> 0 == V rem D ->
> problem_loop(I - 1, D, A + 1);
> true ->
> problem_loop(I - 1, D, A)
> end.
>
>
> run() ->
> {ok, [Iter, Div]} = io:fread([], "~d ~d"),
> problem_loop(Iter, Div, 0).
>
> Then both of my cores started to run at 100%, which I find weird in itself with an IO bound problem. Also, I compared the runtime with the following program written in scheme
>
> #!/usr/bin/guile -s
> !#
>
> (define (intest iter div acc)
> (if (= iter 0)
> (display acc)
> (if (= 0 (remainder (read) div))
> (intest (- iter 1) div (+ acc 1))
> (intest (- iter 1) div acc))))
>
> (intest (read) (read) 0)
>
>
> The scheme implementation was 10 times as fast as the erlang, and it only used one of the cores.
>
> How can I get a decent IO performance out of erlang? Am I making some mistakes in my erlang code? Should I upgrade my erlang system? (I am running R12B on windows)
>
> Thx.
>
> ImRe
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://www.erlang.org/mailman/listinfo/erlang-questions
More information about the erlang-questions
mailing list