SlideShare ist ein Scribd-Unternehmen logo
1 von 84
Java
Java        API
   public class Hoge implements Serializable{
XML
     wikipedia




to
Hello World!
                                     Java
→116
 ac   ed   00   05   73   72   00   26   62   65   6e   63   68   6d   61   72
 6b   2e   74   65   73   74   63   61   73   65   2e   62   65   61   6e   2e
 48   65   6c   6c   6f   57   6f   72   6c   64   42   65   61   6e   52   9a
 88   0d   cc   48   49   00   02   00   02   4a   00   04   74   69   6d   65
 4c   00   03   73   74   72   74   00   12   4c   6a   61   76   61   2f   6c
 61   6e   67   2f   53   74   72   69   6e   67   3b   78   70   00   00   01
 27   8a   dc   2a   e2   74   00   0c   48   65   6c   6c   6f   20   57   6f
 72 6c 64 21

                               JSON
→43
 {"str":"Hello World!","time":1269345080819}
Java RMI
EJB
      RPC(Remote Procedure Call)
Java




※ Java
✓
✓
✓
✓
{"str":"Hello World!","time":1269345080819}


JavaScript
Java                  JSON
• Json-lib(                            )
    http://json-lib.sourceforge.net/
• JSONIC
    http://jsonic.sourceforge.jp/
• FlexJson
    http://flexjson.sourceforge.net/
•
Java         API
               (writeExternal/readExternal)
   public class Hoge implements Externalizable{
     private String str;
     private long time;
     @Override public void writeExternal(ObjectOutput out) {
       out.writeObject(this.str);
       out.writeLong(this.time);
     }
     @Override public void readExternal(ObjectInput in) {
       this.str = (String)in.readObject();
       this.long = in.readLong();
     }
   }
public class Hoge implements Externalizable{
ac   ed   00   05   73   72   00   0d   ac   ed   00   05   73   72   00   1b
74   65   73   74   2e   54   65   73   74   65   73   74   2e   45   78   74
74   42   65   61   6e   20   e9   e2   65   72   6e   61   6c   69   7a   61
62   c4   df   79   42   02   00   03   62   6c   65   54   65   73   74   42
4a   00   02   69   64   4c   00   04   65   61   6e   a3   be   c9   30   53
74   69   6d   65   74   00   10   4c   4a   7a   f8   0c   00   00   78   70
6a   61   76   61   2f   75   74   69   77   08   00   00   00   00   00   00
6c   2f   44   61   74   65   3b   4c   00   01   74   00   04   74   65   73
00   05   76   61   6c   75   65   74   74   73   72   00   0e   6a   61   76
00   12   4c   6a   61   76   61   2f   61   2e   75   74   69   6c   2e   44
6c   61   6e   67   2f   53   74   72   61   74   65   68   6a   81   01   4b
69   6e   67   3b   78   70   00   00   59   74   19   03   00   00   78   70
00   00   00   00   00   01   73   72   77   08   00   00   01   27   74   e6
00   0e   6a   61   76   61   2e   75   d3   af   78   78
74   69   6c   2e   44   61   74   65
68   6a   81   01   4b   59   74   19
03   00   00   78   70   77   08   00
00   01   27   74   e6   d2   3c   78
74   00   04   74   65   73   74
Google                BigTable
                                 RPC



2008     7
 Apache Lisence Ver. 2.0)
IDL                DSL
IDL
(C++   Python   Java

package serializable.protobuf;

message TestBean{
        required int32 id = 1;
        required string value = 2;
        required int64 time = 3;
}
ac   ed   00   05   73   72   00   0d   08 01 12 04 74 65 73 74
74   65   73   74   2e   54   65   73   18 f6 e2 b3 e1 06
74   42   65   61   6e   20   e9   e2
62   c4   df   79   42   02   00   03
4a   00   02   69   64   4c   00   04
74   69   6d   65   74   00   10   4c
6a   61   76   61   2f   75   74   69
6c   2f   44   61   74   65   3b   4c
00   05   76   61   6c   75   65   74
00   12   4c   6a   61   76   61   2f
6c   61   6e   67   2f   53   74   72
69   6e   67   3b   78   70   00   00
00   00   00   00   00   01   73   72
00   0e   6a   61   76   61   2e   75
74   69   6c   2e   44   61   74   65
68   6a   81   01   4b   59   74   19
03   00   00   78   70   77   08   00
00   01   27   74   e6   d2   3c   78
74   00   04   74   65   73   74
Hadoop
      2009    4
                         RPC
 C    C++    Java    Python    Ruby

Hadoop Core       Hive   Pig
     RPC
JSON


            Java
{"type": "array", "items": "string"}
4f   62   6a   01   02   16   61   76   72   6f   2e   73   63   68   65   6d
61   ca   02   7b   22   74   79   70   65   22   3a   22   72   65   63   6f
72   64   22   2c   22   6e   61   6d   65   22   3a   22   50   72   69   6d
69   74   69   76   65   54   65   73   74   42   65   61   6e   22   2c   22
6e   61   6d   65   73   70   61   63   65   22   3a   22   74   65   73   74
22   2c   22   66   69   65   6c   64   73   22   3a   5b   7b   22   6e   61
6d   65   22   3a   22   69   64   22   2c   22   74   79   70   65   22   3a
22   6c   6f   6e   67   22   7d   2c   7b   22   6e   61   6d   65   22   3a
22   76   61   6c   75   65   22   2c   22   74   79   70   65   22   3a   22
73   74   72   69   6e   67   22   7d   2c   7b   22   6e   61   6d   65   22
3a   22   74   69   6d   65   22   2c   22   74   79   70   65   22   3a   22
6c   6f   6e   67   22   7d   5d   7d   00   0c   64   69   4e   57   ee   5f
83   7d   a0   a8   7f   b7   bb   60   33   02   18   02   08   74   65   73
74   f4   cf   b6   ce   ee   49   0c   64   69   4e   57   ee   5f   83   7d
a0   a8   7f   b7   bb   60   33
(Ruby   Python   Perl   C   C++   Java
Protocol Buffers


                                   zero-copy
serialize             C++   Ruby
•        JSON
    - {} []
    -
      ๏ 0xcc →unsigned 8-bit integer
•
    -
•
    -
•                      URL
    - http://d.hatena.ne.jp/viver/20100324/p1
JSON
ac   ed   00   05   73   72   00   0d   83   a2   69   64   a1   31   a4   74
74   65   73   74   2e   54   65   73   69   6d   65   ad   31   32   36   39
74   42   65   61   6e   20   e9   e2   34   31   32   30   39   34   36   36
62   c4   df   79   42   02   00   03   31   a5   76   61   6c   75   65   ac
4a   00   02   69   64   4c   00   04   48   65   6c   6c   6f   20   57   6f
74   69   6d   65   74   00   10   4c   72   6c   64   21
6a   61   76   61   2f   75   74   69
6c   2f   44   61   74   65   3b   4c
00   05   76   61   6c   75   65   74
00   12   4c   6a   61   76   61   2f
6c   61   6e   67   2f   53   74   72
69   6e   67   3b   78   70   00   00
00   00   00   00   00   01   73   72
00   0e   6a   61   76   61   2e   75
74   69   6c   2e   44   61   74   65
68   6a   81   01   4b   59   74   19
03   00   00   78   70   77   08   00
00   01   27   74   e6   d2   3c   78
74   00   04   74   65   73   74
✓
✓
✓
✓
-        1MB
- List 1KB        × 256
- Map key:256byte         / value:int ×256
- Java
-
-
-

    10000
-   Serializable
-   Externalizable
-   JSONIC
-   FlexJson
-   Protocol Bufferes
-   Hadoop Avro
-   Message Pack
Message Pack
-

ProtoBuf
-

Java   Serializable
Externalizable
-
✓
✓
✓
✓
bzip2
• Deflate
 - gzip zip
• QuickLZ
 -
gzip    zip


 gzip         = gzip       Deflate




LZ77 +                 (
Abraham Lempel   Jacob Ziv   1977




    LZ
    LZ77

※
Abraham Lempel   Jacob Ziv   1977
Abraham Lempel   Jacob Ziv   1977
Abraham Lempel   Jacob Ziv   1977
Abraham Lempel   Jacob Ziv   1977
Abraham Lempel   Jacob Ziv   1977
Abraham Lempel   Jacob Ziv   1977
Abraham Lempel   Jacob Ziv   1977
Abraham Lempel   Jacob Ziv   1977
Abraham Lempel   Jacob Ziv   1977
•
    DAEBCBACBBBC
•
•
    DAEBCBACBBBC
•
•
    DAEBCBACBBBC
•
•
    DAEBCBACBBBC
•
•
    DAEBCBACBBBC
•
•
    DAEBCBACBBBC
•
•
    DAEBCBACBBBC
•
•
    DAEBCBACBBBC
•
•
    DAEBCBACBBBC
•
•
    DAEBCBACBBBC
•
•
    DAEBCBACBBBC
•




                   →
                   →
- Message Pack
- Message Pack + Deflate
- Message Pack + QuickLZ
                           twitter
         (JSON)
-
-                  (
JSON     Message Pack


-              3/4


Deflate
✓
✓
✓
✓
Java

Message Pack
Java API Serializable
Externalizable

Deflate
おひろめ会:Javaにおけるデータシリアライズ手法

Weitere ähnliche Inhalte

Andere mochten auch

かまってちゃん小町
かまってちゃん小町かまってちゃん小町
かまってちゃん小町JubatusOfficial
 
Jubatus 新機能ハイライト
Jubatus 新機能ハイライトJubatus 新機能ハイライト
Jubatus 新機能ハイライトJubatusOfficial
 
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用JubatusOfficial
 
データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定
データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定
データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定JubatusOfficial
 
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化JubatusOfficial
 
Jubakit の紹介
Jubakit の紹介Jubakit の紹介
Jubakit の紹介kmaehashi
 
発言小町からのプロファイリング
発言小町からのプロファイリング発言小町からのプロファイリング
発言小町からのプロファイリングJubatusOfficial
 
地域の魅力を伝えるツアーガイドAI
地域の魅力を伝えるツアーガイドAI地域の魅力を伝えるツアーガイドAI
地域の魅力を伝えるツアーガイドAIJubatusOfficial
 

Andere mochten auch (15)

jubabanditの紹介
jubabanditの紹介jubabanditの紹介
jubabanditの紹介
 
かまってちゃん小町
かまってちゃん小町かまってちゃん小町
かまってちゃん小町
 
Jubatus 新機能ハイライト
Jubatus 新機能ハイライトJubatus 新機能ハイライト
Jubatus 新機能ハイライト
 
JubaQLご紹介
JubaQLご紹介JubaQLご紹介
JubaQLご紹介
 
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用
 
データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定
データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定
データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定
 
Jubaanomalyについて
JubaanomalyについてJubaanomalyについて
Jubaanomalyについて
 
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
 
Jubakit の紹介
Jubakit の紹介Jubakit の紹介
Jubakit の紹介
 
発言小町からのプロファイリング
発言小町からのプロファイリング発言小町からのプロファイリング
発言小町からのプロファイリング
 
銀座のママ
銀座のママ銀座のママ
銀座のママ
 
JUBARHYME
JUBARHYMEJUBARHYME
JUBARHYME
 
小町の溜息
小町の溜息小町の溜息
小町の溜息
 
Jubatus 1.0 の紹介
Jubatus 1.0 の紹介Jubatus 1.0 の紹介
Jubatus 1.0 の紹介
 
地域の魅力を伝えるツアーガイドAI
地域の魅力を伝えるツアーガイドAI地域の魅力を伝えるツアーガイドAI
地域の魅力を伝えるツアーガイドAI
 

Mehr von moai kids

中国最新ニュースアプリ事情
中国最新ニュースアプリ事情中国最新ニュースアプリ事情
中国最新ニュースアプリ事情moai kids
 
FluentdとRedshiftの素敵な関係
FluentdとRedshiftの素敵な関係FluentdとRedshiftの素敵な関係
FluentdとRedshiftの素敵な関係moai kids
 
Twitterのsnowflakeについて
TwitterのsnowflakeについてTwitterのsnowflakeについて
Twitterのsnowflakeについてmoai kids
 
Programming Hive Reading #4
Programming Hive Reading #4Programming Hive Reading #4
Programming Hive Reading #4moai kids
 
Programming Hive Reading #3
Programming Hive Reading #3Programming Hive Reading #3
Programming Hive Reading #3moai kids
 
"Programming Hive" Reading #1
"Programming Hive" Reading #1"Programming Hive" Reading #1
"Programming Hive" Reading #1moai kids
 
Casual Compression on MongoDB
Casual Compression on MongoDBCasual Compression on MongoDB
Casual Compression on MongoDBmoai kids
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBmoai kids
 
Hadoop Conference Japan 2011 Fallに行ってきました
Hadoop Conference Japan 2011 Fallに行ってきましたHadoop Conference Japan 2011 Fallに行ってきました
Hadoop Conference Japan 2011 Fallに行ってきましたmoai kids
 
HBase本輪読会資料(11章)
HBase本輪読会資料(11章)HBase本輪読会資料(11章)
HBase本輪読会資料(11章)moai kids
 
snappyについて
snappyについてsnappyについて
snappyについてmoai kids
 
第四回月次セミナー(公開版)
第四回月次セミナー(公開版)第四回月次セミナー(公開版)
第四回月次セミナー(公開版)moai kids
 
第三回月次セミナー(公開版)
第三回月次セミナー(公開版)第三回月次セミナー(公開版)
第三回月次セミナー(公開版)moai kids
 
Pythonで自然言語処理
Pythonで自然言語処理Pythonで自然言語処理
Pythonで自然言語処理moai kids
 
HandlerSocket plugin Client for Javaとそれを用いたベンチマーク
HandlerSocket plugin Client for Javaとそれを用いたベンチマークHandlerSocket plugin Client for Javaとそれを用いたベンチマーク
HandlerSocket plugin Client for Javaとそれを用いたベンチマークmoai kids
 
Yammer試用レポート(公開版)
Yammer試用レポート(公開版)Yammer試用レポート(公開版)
Yammer試用レポート(公開版)moai kids
 
掲示板時間軸コーパスを用いたワードトレンド解析(公開版)
掲示板時間軸コーパスを用いたワードトレンド解析(公開版)掲示板時間軸コーパスを用いたワードトレンド解析(公開版)
掲示板時間軸コーパスを用いたワードトレンド解析(公開版)moai kids
 
中国と私(仮題)
中国と私(仮題)中国と私(仮題)
中国と私(仮題)moai kids
 
不自然言語処理コンテストLT資料
不自然言語処理コンテストLT資料不自然言語処理コンテストLT資料
不自然言語処理コンテストLT資料moai kids
 
n-gramコーパスを用いた類義語自動獲得手法について
n-gramコーパスを用いた類義語自動獲得手法についてn-gramコーパスを用いた類義語自動獲得手法について
n-gramコーパスを用いた類義語自動獲得手法についてmoai kids
 

Mehr von moai kids (20)

中国最新ニュースアプリ事情
中国最新ニュースアプリ事情中国最新ニュースアプリ事情
中国最新ニュースアプリ事情
 
FluentdとRedshiftの素敵な関係
FluentdとRedshiftの素敵な関係FluentdとRedshiftの素敵な関係
FluentdとRedshiftの素敵な関係
 
Twitterのsnowflakeについて
TwitterのsnowflakeについてTwitterのsnowflakeについて
Twitterのsnowflakeについて
 
Programming Hive Reading #4
Programming Hive Reading #4Programming Hive Reading #4
Programming Hive Reading #4
 
Programming Hive Reading #3
Programming Hive Reading #3Programming Hive Reading #3
Programming Hive Reading #3
 
"Programming Hive" Reading #1
"Programming Hive" Reading #1"Programming Hive" Reading #1
"Programming Hive" Reading #1
 
Casual Compression on MongoDB
Casual Compression on MongoDBCasual Compression on MongoDB
Casual Compression on MongoDB
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
Hadoop Conference Japan 2011 Fallに行ってきました
Hadoop Conference Japan 2011 Fallに行ってきましたHadoop Conference Japan 2011 Fallに行ってきました
Hadoop Conference Japan 2011 Fallに行ってきました
 
HBase本輪読会資料(11章)
HBase本輪読会資料(11章)HBase本輪読会資料(11章)
HBase本輪読会資料(11章)
 
snappyについて
snappyについてsnappyについて
snappyについて
 
第四回月次セミナー(公開版)
第四回月次セミナー(公開版)第四回月次セミナー(公開版)
第四回月次セミナー(公開版)
 
第三回月次セミナー(公開版)
第三回月次セミナー(公開版)第三回月次セミナー(公開版)
第三回月次セミナー(公開版)
 
Pythonで自然言語処理
Pythonで自然言語処理Pythonで自然言語処理
Pythonで自然言語処理
 
HandlerSocket plugin Client for Javaとそれを用いたベンチマーク
HandlerSocket plugin Client for Javaとそれを用いたベンチマークHandlerSocket plugin Client for Javaとそれを用いたベンチマーク
HandlerSocket plugin Client for Javaとそれを用いたベンチマーク
 
Yammer試用レポート(公開版)
Yammer試用レポート(公開版)Yammer試用レポート(公開版)
Yammer試用レポート(公開版)
 
掲示板時間軸コーパスを用いたワードトレンド解析(公開版)
掲示板時間軸コーパスを用いたワードトレンド解析(公開版)掲示板時間軸コーパスを用いたワードトレンド解析(公開版)
掲示板時間軸コーパスを用いたワードトレンド解析(公開版)
 
中国と私(仮題)
中国と私(仮題)中国と私(仮題)
中国と私(仮題)
 
不自然言語処理コンテストLT資料
不自然言語処理コンテストLT資料不自然言語処理コンテストLT資料
不自然言語処理コンテストLT資料
 
n-gramコーパスを用いた類義語自動獲得手法について
n-gramコーパスを用いた類義語自動獲得手法についてn-gramコーパスを用いた類義語自動獲得手法について
n-gramコーパスを用いた類義語自動獲得手法について
 

おひろめ会:Javaにおけるデータシリアライズ手法

  • 2. Java API public class Hoge implements Serializable{
  • 3. XML wikipedia to
  • 4. Hello World! Java →116 ac ed 00 05 73 72 00 26 62 65 6e 63 68 6d 61 72 6b 2e 74 65 73 74 63 61 73 65 2e 62 65 61 6e 2e 48 65 6c 6c 6f 57 6f 72 6c 64 42 65 61 6e 52 9a 88 0d cc 48 49 00 02 00 02 4a 00 04 74 69 6d 65 4c 00 03 73 74 72 74 00 12 4c 6a 61 76 61 2f 6c 61 6e 67 2f 53 74 72 69 6e 67 3b 78 70 00 00 01 27 8a dc 2a e2 74 00 0c 48 65 6c 6c 6f 20 57 6f 72 6c 64 21 JSON →43 {"str":"Hello World!","time":1269345080819}
  • 5. Java RMI EJB RPC(Remote Procedure Call)
  • 6.
  • 7.
  • 10.
  • 12. Java JSON • Json-lib( ) http://json-lib.sourceforge.net/ • JSONIC http://jsonic.sourceforge.jp/ • FlexJson http://flexjson.sourceforge.net/ •
  • 13. Java API (writeExternal/readExternal) public class Hoge implements Externalizable{ private String str; private long time; @Override public void writeExternal(ObjectOutput out) { out.writeObject(this.str); out.writeLong(this.time); } @Override public void readExternal(ObjectInput in) { this.str = (String)in.readObject(); this.long = in.readLong(); } }
  • 14. public class Hoge implements Externalizable{
  • 15. ac ed 00 05 73 72 00 0d ac ed 00 05 73 72 00 1b 74 65 73 74 2e 54 65 73 74 65 73 74 2e 45 78 74 74 42 65 61 6e 20 e9 e2 65 72 6e 61 6c 69 7a 61 62 c4 df 79 42 02 00 03 62 6c 65 54 65 73 74 42 4a 00 02 69 64 4c 00 04 65 61 6e a3 be c9 30 53 74 69 6d 65 74 00 10 4c 4a 7a f8 0c 00 00 78 70 6a 61 76 61 2f 75 74 69 77 08 00 00 00 00 00 00 6c 2f 44 61 74 65 3b 4c 00 01 74 00 04 74 65 73 00 05 76 61 6c 75 65 74 74 73 72 00 0e 6a 61 76 00 12 4c 6a 61 76 61 2f 61 2e 75 74 69 6c 2e 44 6c 61 6e 67 2f 53 74 72 61 74 65 68 6a 81 01 4b 69 6e 67 3b 78 70 00 00 59 74 19 03 00 00 78 70 00 00 00 00 00 01 73 72 77 08 00 00 01 27 74 e6 00 0e 6a 61 76 61 2e 75 d3 af 78 78 74 69 6c 2e 44 61 74 65 68 6a 81 01 4b 59 74 19 03 00 00 78 70 77 08 00 00 01 27 74 e6 d2 3c 78 74 00 04 74 65 73 74
  • 16. Google BigTable RPC 2008 7 Apache Lisence Ver. 2.0)
  • 17. IDL DSL IDL (C++ Python Java package serializable.protobuf; message TestBean{ required int32 id = 1; required string value = 2; required int64 time = 3; }
  • 18. ac ed 00 05 73 72 00 0d 08 01 12 04 74 65 73 74 74 65 73 74 2e 54 65 73 18 f6 e2 b3 e1 06 74 42 65 61 6e 20 e9 e2 62 c4 df 79 42 02 00 03 4a 00 02 69 64 4c 00 04 74 69 6d 65 74 00 10 4c 6a 61 76 61 2f 75 74 69 6c 2f 44 61 74 65 3b 4c 00 05 76 61 6c 75 65 74 00 12 4c 6a 61 76 61 2f 6c 61 6e 67 2f 53 74 72 69 6e 67 3b 78 70 00 00 00 00 00 00 00 01 73 72 00 0e 6a 61 76 61 2e 75 74 69 6c 2e 44 61 74 65 68 6a 81 01 4b 59 74 19 03 00 00 78 70 77 08 00 00 01 27 74 e6 d2 3c 78 74 00 04 74 65 73 74
  • 19.
  • 20. Hadoop 2009 4 RPC C C++ Java Python Ruby Hadoop Core Hive Pig RPC
  • 21. JSON Java {"type": "array", "items": "string"}
  • 22. 4f 62 6a 01 02 16 61 76 72 6f 2e 73 63 68 65 6d 61 ca 02 7b 22 74 79 70 65 22 3a 22 72 65 63 6f 72 64 22 2c 22 6e 61 6d 65 22 3a 22 50 72 69 6d 69 74 69 76 65 54 65 73 74 42 65 61 6e 22 2c 22 6e 61 6d 65 73 70 61 63 65 22 3a 22 74 65 73 74 22 2c 22 66 69 65 6c 64 73 22 3a 5b 7b 22 6e 61 6d 65 22 3a 22 69 64 22 2c 22 74 79 70 65 22 3a 22 6c 6f 6e 67 22 7d 2c 7b 22 6e 61 6d 65 22 3a 22 76 61 6c 75 65 22 2c 22 74 79 70 65 22 3a 22 73 74 72 69 6e 67 22 7d 2c 7b 22 6e 61 6d 65 22 3a 22 74 69 6d 65 22 2c 22 74 79 70 65 22 3a 22 6c 6f 6e 67 22 7d 5d 7d 00 0c 64 69 4e 57 ee 5f 83 7d a0 a8 7f b7 bb 60 33 02 18 02 08 74 65 73 74 f4 cf b6 ce ee 49 0c 64 69 4e 57 ee 5f 83 7d a0 a8 7f b7 bb 60 33
  • 23.
  • 24. (Ruby Python Perl C C++ Java
  • 25. Protocol Buffers zero-copy serialize C++ Ruby
  • 26. JSON - {} [] - ๏ 0xcc →unsigned 8-bit integer • - • - • URL - http://d.hatena.ne.jp/viver/20100324/p1
  • 27. JSON ac ed 00 05 73 72 00 0d 83 a2 69 64 a1 31 a4 74 74 65 73 74 2e 54 65 73 69 6d 65 ad 31 32 36 39 74 42 65 61 6e 20 e9 e2 34 31 32 30 39 34 36 36 62 c4 df 79 42 02 00 03 31 a5 76 61 6c 75 65 ac 4a 00 02 69 64 4c 00 04 48 65 6c 6c 6f 20 57 6f 74 69 6d 65 74 00 10 4c 72 6c 64 21 6a 61 76 61 2f 75 74 69 6c 2f 44 61 74 65 3b 4c 00 05 76 61 6c 75 65 74 00 12 4c 6a 61 76 61 2f 6c 61 6e 67 2f 53 74 72 69 6e 67 3b 78 70 00 00 00 00 00 00 00 01 73 72 00 0e 6a 61 76 61 2e 75 74 69 6c 2e 44 61 74 65 68 6a 81 01 4b 59 74 19 03 00 00 78 70 77 08 00 00 01 27 74 e6 d2 3c 78 74 00 04 74 65 73 74
  • 28.
  • 29.
  • 31. - 1MB - List 1KB × 256 - Map key:256byte / value:int ×256 - Java
  • 32. - - - 10000
  • 33. - Serializable - Externalizable - JSONIC - FlexJson - Protocol Bufferes - Hadoop Avro - Message Pack
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45. Message Pack - ProtoBuf - Java Serializable Externalizable -
  • 47. bzip2
  • 48.
  • 49.
  • 50. • Deflate - gzip zip • QuickLZ -
  • 51. gzip zip gzip = gzip Deflate LZ77 + (
  • 52. Abraham Lempel Jacob Ziv 1977 LZ LZ77 ※
  • 53. Abraham Lempel Jacob Ziv 1977
  • 54. Abraham Lempel Jacob Ziv 1977
  • 55. Abraham Lempel Jacob Ziv 1977
  • 56. Abraham Lempel Jacob Ziv 1977
  • 57. Abraham Lempel Jacob Ziv 1977
  • 58. Abraham Lempel Jacob Ziv 1977
  • 59. Abraham Lempel Jacob Ziv 1977
  • 60. Abraham Lempel Jacob Ziv 1977
  • 61. Abraham Lempel Jacob Ziv 1977
  • 62.
  • 63. DAEBCBACBBBC •
  • 64. DAEBCBACBBBC •
  • 65. DAEBCBACBBBC •
  • 66. DAEBCBACBBBC •
  • 67. DAEBCBACBBBC •
  • 68. DAEBCBACBBBC •
  • 69. DAEBCBACBBBC •
  • 70. DAEBCBACBBBC •
  • 71. DAEBCBACBBBC •
  • 72. DAEBCBACBBBC •
  • 73. DAEBCBACBBBC • → →
  • 74.
  • 75. - Message Pack - Message Pack + Deflate - Message Pack + QuickLZ twitter (JSON) - - (
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81. JSON Message Pack - 3/4 Deflate
  • 83. Java Message Pack Java API Serializable Externalizable Deflate

Hinweis der Redaktion