生成されたファイルのサイズは?

ちなみに、先ほどのサンプルで生成されたファイル(person.data)のサイズはどれくらいだろうか。確認したところ、たったの10バイトであった。

Protocol Bufferで生成されたファイルサイズは10バイト

ちなみに、Java標準のシリアライズを使用した以下のようなコードでは、生成されるファイルのバイト数は102バイトであった。

import java.io.*;

public class ReadWritePersonSerializable {
    static class Person implements java.io.Serializable {
        String name;
        int age;
    }
    public static void main(String[] args) throws Exception {
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("person.serialized"));
        Person shiraishi = new Person();
        shiraishi.name = "白石";
        shiraishi.age = 30;
        oos.writeObject(shiraishi);
        oos.close();
    }
}

Javaの標準APIで生成されたファイルのサイズは102バイト

完全に等価なコードとは言えないので、比較対象として適しているかどうかは疑問だが、Protocol Bufferが非常にコンパクトなバイナリ形式を採用しているということはおわかりいただけたかと思う。