erlang璇绘枃浠剁殑閫熷益涓哄暐杩欎箞鎱紵

erlang璇绘枃浠剁殑閫熷害涓哄暐杩欎箞鎱紵

聽 聽 聽 聽 浠婂ぉ鍏徃鎶€鏈瘮姝︼紝姣旇禌棰樼洰鏄粰涓€涓?.1g鐨勫ぇ鏂囨湰锛岀粺璁℃枃鏈腑璇嶉鏈€楂樼殑鍓嶅崄涓瘝銆傝姳浜嗕袱澶╃敤erlang鍐欏畬浜嗕唬鐮侊紝浣嗘槸鏀惧埌鍏徃16鏍哥殑鏈哄櫒涓婅繖涔堜竴璺戯紝缁撴灉涓嶆瘮涓嶇煡閬擄紝涓€姣斿悡涓€鏉°€俥rlang鍐欑殑浠g爜鎵ц鏃堕棿鑺变簡55绉掑乏鍙筹紝鍚屼簨浠湁鐨勭敤java锛屾湁鐨勭敤C锛岃繕鏈夌殑鐢–++锛岀敤C鏈€蹇竴涓€佸厔鍙姳浜?.6绉掞紝鐢╦ava鐨勪篃鍙敤浜?.2绉掋€傜浉姣斾箣涓媏rlang鐨勪唬鐮侊紝鐪熸槸涓€澶村ぇ铚楃墰锛屽お鎱簡銆?/p>

聽 聽 聽 聽 浣嗘槸鎴戞兂瀹為檯娴嬭瘯涓€涓嬶紝鍒殑閮戒笉娴嬶紝鍏堟祴璇曚竴涓嬬敤erlang閬嶅巻瀹屼竴涓?.1G鐨勬枃鏈埌搴曡鑺卞涔咃紙鍙亶鍘嗭紝鍏朵粬鍟ラ兘涓嶅仛锛夈€?/p>

聽 聽 聽 聽 浠g爜濡備笅锛?/p>

聽 聽 聽 聽 聽聽

-module(file_read).

-export([read/1]).


read(File)->
case file:open(File, [ raw, binary]) of
           {ok, Fd} ->
			   scan_file(Fd,file:read(Fd, 1024));
           {error, Reason} ->
                  {error, Reason}
end	.


scan_file(Fd, {ok, Binary}) ->
    scan_file(Fd, file:read(Fd, 1024));
scan_file(Fd,  eof) ->
    file:close(Fd);
scan_file(Fd,  {error, Reason}) ->
    file:close(Fd).

聽鍦ㄦ墦寮€鏂囦欢鐨勫湴鏂圭壒鍦扮敤浜唎ption鏄?span style="font-family: monospace; font-size: 1em; line-height: 1.5;">[ raw, binary]锛岃繖鏍峰彲浠ヤ繚璇佸湪鎵撳紑鏂囦欢erlang涓嶄細璧蜂竴涓澶栫殑杩涚▼锛屽苟涓旀槸浠ヤ簩杩涘埗娴佺殑鏂瑰紡鍘绘墦寮€鏂囦欢,搴旇鏄渶蹇簡銆?/span>

聽 浣嗘槸缁忚繃娴嬭瘯锛?/span>

timer:tc(file_read,read,["d:\\download\\doc\\doc.txt"]).

聽缁撴灉纭槸锛?/span>

{26286000,ok}

聽鏁存暣鑺变簡26绉掞紝灏辩畻鍦?6鏍哥殑鏈哄櫒涓婏紝鎶婃枃浠跺垏鎴?6浠斤紝鐢?6鍚勮繘绋嬪幓璇绘枃浠讹紝璇诲畬鏂囦欢涔熻鑺?26/16=1.6绉掞紝杩欒繕鍙槸鍏夎鏂囦欢鎵€瑕佽姳鐨勬椂闂达紝娌℃湁绠椾笂鍏朵粬璁$畻璇嶉鎵€鐢ㄧ殑鏃堕棿銆?/span>

聽 聽

聽 璨屼技erlang鍦ㄨ绠楀瘑闆嗗瀷鐨勮绠椾笂纭疄姣斿叾浠栬瑷€娌℃湁鍟ヤ紭鍔?/span>