2011/7/8 Nguyen Vu Hung (VNC) <vuh...@vinicorp.com.vn>:
> IMO, nén/giải nén nhanh hay chậm phụ thuộc nhiều vào thuật toán,
> chứ không phải là pass từ tar sang compression app bằng cách nào
> (như pipe chẳng hạn)

Em có đọc được từ tác giả của bsdtar ở đây:

http://code.google.com/p/libarchive/wiki/LibarchiveAddingReadFilter

But there are two good reasons why you might want to directly handle
the filtering within libarchive rather than call out to an external
program:

* It's often faster. Shuffling data to and from an external program
adds significant overhead. Especially for formats that can be decoded
very efficiently (such as base64 or lzo), it's likely fastest to do it
directly in the library.

* It's often more portable. If the filter implementation can be
entirely within libarchive, then it will be available even on
platforms that lack the external executable.

Em chưa bao giờ đo là việc dùng stdin/out có ảnh hưởng đến tốc độ như
thế nào, nhưng với những thuật toán tốt như lzo, snappy hay lz4 chắc
chắn việc này sẽ ảnh hưởng nhiều đến tốc độ.

Các thuật toán chậm hơn như gzip và tất cả các tác vụ bình thường nó
phụ thuộc nhiều vào khả năng tính toán của CPU, cho nên việc copy ra
pipe một hai lần không ảnh hưởng lắm, cho nên mình không để ý, em đồ
rằng như thế.

Thực ra lz4 executable có thể dùng 1 lần pipe, chỉ pipe in không pipe
out (lz4 -c std outfile.tar.lz4) nhưng vì gzip chỉ có thể hoặc là 2
lần pipe hoặc là không lần nào cho nên em cảm thấy đó sẽ là một so
sánh không được khách quan.

Đấy là lý do vì sao 2 cái sh script ở trên nó dùng 2 lần pipe cả in lẫn out.
_______________________________________________
POST RULES : http://wiki.hanoilug.org/hanoilug:mailing_list_guidelines
_______________________________________________
HanoiLUG mailing lists: http://lists.hanoilug.org/
HanoiLUG wiki: http://wiki.hanoilug.org/
HanoiLUG blog: http://blog.hanoilug.org/

Trả lời cho