X-Git-Url: https://git.xandkar.net/?a=blobdiff_plain;f=003%2Fsrc%2Flife.erl;h=ddb5115c578ce6d3c433df0aaef859911f352042;hb=af47aa3763380022a5f39d7f8c2c662db9f03766;hp=74868da09e63fe754a3bb5938080eead4d11e432;hpb=1332e0c3c23643c3eeac5e3d7a64dcac4591e488;p=cellular-automata.git diff --git a/003/src/life.erl b/003/src/life.erl index 74868da..ddb5115 100644 --- a/003/src/life.erl +++ b/003/src/life.erl @@ -61,7 +61,12 @@ life_loop( end ), - {NewTime, NewBoard} = timer:tc(fun() -> next_generation(X, Y, Board) end), + {NewTime, NewBoard} = timer:tc( + fun() -> + next_generation(X, Y, Board) + end + ), + NewState = State#state{board = NewBoard ,gen_count = GenCount + 1 ,gen_duration = NewTime @@ -89,6 +94,9 @@ do_print_status(Bar, X, Y, N, GenCount, TimeMic, PrintTimeMic) -> do_print_board(Board) -> + % It seems that just doing a fold should be faster than map + to_list + % combo, but, after measuring several times, map + to_list has been + % consistently (nearly twice) faster than either foldl or foldr. RowStrings = array:to_list( array:map( fun(_, Row) ->