Erlang dosyası i/o ile ilgili iki sorum var; Erlang File I/O: Büyük ikili dosyalar ve gzip akışı
teşekkürler decompressed akışı olarak gzip'li ikili dosyası okunurken belleğin
- : Ne iyi Erlang elde etmek yoludur !
Erlang dosyası i/o ile ilgili iki sorum var; Erlang File I/O: Büyük ikili dosyalar ve gzip akışı
teşekkürler decompressed akışı olarak gzip'li ikili dosyası okunurken belleğin
file:pread/2,3
için file:read/2
bakınız.file:open/2
numaralı telefondan compressed
seçeneğine bakın.Tecrübelerime göre, dosyası: read_ahead
ve raw
rağmen, bir miktar veri ile sık aradığınız takdirde/2 yalnız çok yavaş olacaktır okuyun. Bunun üzerine bir ikili arabellek uygulamalısınız. Eğer bu blok yönelimli işlemden ibaretse, kabul ediyorum.
Birkaç saatlik çalışma zamanlarıyla ilgili olarak (dosyasıyla: salt okunur/2) 2 dakikalığına (arabelleğe almada saf Erlang uygulamasında) bahsediyorum. İşte
benim bir seferde bir kaç 10 bayt okumak için ölçümlerdir: okuyun: Bu örnekte
%% Bufsize vs. runtime [ns]
%% 50 169369703
%% 100 118288832
%% 1000 70187233
%% 10000 64615506
%% 100000 65087411
%% 1000000 64747497
dosyası için göreli havai çünkü, performans gerçekten 10 KB tampon boyutu üzerinde artmaz yeterince küçük olur.
Üretim için daha yüksek performansa sahip bir şey bulmak zorundayım, ancak bu prototipleme için çok iyi çalışıyor. – Erlang
Ölçtünüz ya da tahmin ediyor musunuz? Dosyayı [raw, binary, read_ahead] 'i kullanarak ve blok yönelimli işlemeyi kullanarak açtığınızda dosya: read/2' ile oldukça memnunum. Beklediğiniz performans nedir? –