Friday, August 24, 2007

So sánh về kích thước của ODF và OOXML

Trên một trang blog của anh Lê Trung Nghĩa có phản ánh ý kiến của một "nạn nhân" của OOXML, dường như OOXML khi lưu trữ sẽ cần không gian lưu trữ lớn hơn rất nhiều ODF. Thật đáng tiếc, anh đã giải một bài toán số học rất đơn giản nhưng vô nghĩa về tin học khi viết:

Đoạn tài liệu XML trên có độ dài 1847 bytes! Như vậy cần nhiều hơn 1487/20 = 92.35 lần so với lượng thông tin (bytes) để mô tả một đoạn văn bản có 3 từ tiếng Việt (13 bytes) và 1 từ tiếng Anh (7 byte).

Sự thật là nếu chỉ để viết một câu 'Hội thảo tại Softmart' như anh nói, thì chúng ta chỉ cần dùng notepad như ý kiến của anh Mai Văn Quân trên vnexpress.net

Lời bàn: nếu cực đoan hơn ta có thể gõ lệnh 'echo "Hội thảo tại Softmart" > byhlminh.txt' thì đúng là chỉ cần 20 bytes. - Các nhà công nghệ phần cứng sẽ phản đối: bởi vì để lưu trữ 20 bytes, chúng ta cần 1 sector 512 bytes.- Các nhà công nghệ hệ điều hành sẽ phải đối: để lưu trữ 1 sector chúng ta cần sắp xếp nó vào một cluster nhiều hơn một sector. và để đọc ghi một file chúng ta đọc theo các block cỡ Kilobytes - :)

Tôi đã thử làm thí nghiệm với 3 file cùng một nội dung, cùng một kiểu trình bày bao gôm 38 câu Kiều trên một trang A4, với 3 khuôn dạng: Microsoft Word 2007 OOXML .docx, Sun StarOffice 8 (distributed by Google) ODF .odt và file binary Word 97-2003. Kết quả là:

Ở dạng nguyên thủy:

99,840 Truyen Kieu.doc
29,138 Truyen Kieu.docx
18,234 Truyen Kieu.odt


Lưu ý rằng dạng .docx và .odt là dạng nén theo chuẩn zip, ta có thể unzip dễ dàng và đọc được các tệp XML chứa nội dung của 'Truyen Kieu.docx' và 'Truyen Kieu.odt' lần lượt là

docx\word
7,822 document.xml

odt\
7,005 content.xml


bỏ qua những file xml khác bao gồm nhiều định dạng bổ sung khác ta dễ dàng nhận thấy sự khác nhau về kích thước tệp XML là không đáng kể, sau đây là nội dung của document.xml (OOXML) và content.xml (ODF)

OOXML (document.xml)


ODF (content.xml):

Đoạn chữ được lựa chọn trong cả 2 văn bản là 4 câu đầu tiên:

"Trăm năm trong cõi người ta
Chữ tài chữ mệnh khéo là ghét nhau
Trải qua một cuộc bể dâu
Những điều trông thấy mà đau đớn lòng"

Chúng ta có thể dễ dàng nhận thấy độ dài của mã XML là gần như nhau. Sự khác biệt do cú pháp của 2 chuẩn là khác nhau. Sự ảnh hưởng đến kích thước lưu trữ của định dạng OOXML (nếu phải tăng thêm) là do sử dụng nhiều các thẻ đặc tả khác để thể hiện các tính năng riêng của OOXML mà không có trong ODF.

No comments: