MessagePack for Dの余波 - Togetter
Twitterのつぶやきマッシュアップメディア!
@togetter_jpをフォロー
マイページ
メニュー
設定
ログイン
トップ
ニュース
社会
地域
芸能・スポーツ
IT・Web
科学・教養
カルチャー
趣味
生活
仕事
ネタ・お笑い
ログ・日記
震災
311
支援
プロレス
放射脳
なりきり
復興
物資
速報
国内
アジア
アメリカ
ヨーロッパ
その他
政治
経済
国際
法律
環境
コラム
東京
東京近郊
北海道
東北
関東
北陸・信越
東海
近畿
中国・四国
九州・沖縄
海外
芸能
テレビ
ラジオ
野球
サッカー
ゴルフ
格闘技
競馬
モータースポーツ
その他
Android
Apple
インターネット
パソコン
モバイル
ガジェット
サイト制作
プログラミング
その他
科学
テクノロジー
エネルギー
数学
物理
宇宙
自然
人文
建築
心理
その他
アニメ
ゲーム
マンガ
アイドル
映画
音楽
書籍
演劇
ファッション
社会学
カメラ
車・バイク
電車
旅行
釣り
歴史
アート
デザイン
動物
その他
ハウツー
レシピ
グルメ
恋愛
マネー
節約
健康・医療
教育
ペット
起業・ベンチャー
経営
マーケティング
会計・人事
法務
就職・転職
語学・資格
ネタ
お笑い
大喜利
画像・動画
やってみた
その他
ログ
日記
思い出
雑談
メモ
飲み会
議事録
イベント
セミナー
復興
原発
支援
政府
自治体
トップ
>
トップ
>
311
> MessagePack for Dの余波
2010/04/26 06:16:11
messagepack
d
+
MessagePack for Dの余波
どこまでシリアライズ/デシリアライズを正確にするか -> メリットあんまなくね?
by
repeatedly
3 fav
1146 view
Fav
3
お気に入りに登録ならここをクリック!
まとめ
メニューを開く
一括削除
Michelの提案は難しいところだな.
返信する
RTする
ふぁぼる
repeatedly
2010/04/26 01:48:34
@repeatedly
間にmp_Objectを挟まないと速くなるのは確かですね。例えばJava版はソレが可能です。Java版はSchemaというクラスがあって、一端Objectに変換してから静的型に変換し直す方法と、直接静的型に変換する方法の、両方ができます。
返信する
RTする
ふぁぼる
frsyuki
2010/04/26 01:55:17
@frsyuki
結局のところそれなんだよね.でもD言語の場合はprimitive型はprimitiveでJavaみたいにラッパーオブジェクトがないから,やるとなると結構な労力になるという.
返信する
RTする
ふぁぼる
repeatedly
2010/04/26 01:58:55
@repeatedly
Objectを間に挟めると、デシリアライズするデータの型が事前に分からないケースに対応できます。まずtuple<int,Object,Object>に変換し、intが0ならtuple<int,string,array<Object>>に変換するなど。
返信する
RTする
ふぁぼる
frsyuki
2010/04/26 01:59:08
@repeatedly
むむーなるほど。C++版の場合は、一端objectに変換する方法しか使えませんが、そのオーバーヘッドを極力小さくなるようにしています。msgpack::zoneを使って高速に確保するなど。
返信する
RTする
ふぁぼる
frsyuki
2010/04/26 02:01:52
まぁexecuteを解体して一つのオブジェクトをデシリアライズするたびに処理を中断すればいいのだけど,Variantがデフォルトじゃない言語だと,あまり使い道が…
返信する
RTする
ふぁぼる
repeatedly
2010/04/26 02:04:02
Rubyで、MessagePack があっても Marshal も欲しいみたいな話はあるなぁ。用途が違うーと。Java の serializable も。遅くて複雑で多言語間で使えなくても、object graphs やらをできるだけ正確に保存できるやつ。
返信する
RTする
ふぁぼる
frsyuki
2010/04/26 02:06:31
Michelが最後の指摘しているcorrect class when unserializengはどういうことだろう?classそのもののserialization/deserializationのことだろうか?
返信する
RTする
ふぁぼる
repeatedly
2010/04/26 02:17:26
@repeatedly
MessagePackでは正規表現クラスはシリアライズできない、とか? 「これは正規表現です」という情報+バイト列で表現できないことはないですが、it doesn't seem likely it can be added easly ですね。
返信する
RTする
ふぁぼる
frsyuki
2010/04/26 02:23:42
んーでもどちらにしても、クラスをシリアライズするには、必要な情報を全部シリアライズさせる関数が、クラスごとに必要になるから、MessagePackでも他のフォーマットでも、難しさ(作業量の多さ)はあまり変わらなそうだけど。
返信する
RTする
ふぁぼる
frsyuki
2010/04/26 02:25:46
それをやる方法がMessagePackでは決められていない問題はある。例えば ["クラス名", メンバ, ...] にするなど、勝手に決めないとダメ。一応多言語間通信時の標準の方法は[メンバ, ...]で、クラス名は入らない=付加的な情報なしには正確にクラスを復元できない。
返信する
RTする
ふぁぼる
frsyuki
2010/04/26 02:28:12
recreating object graphsってのは,要は参照とかその辺のグラフを正しく再現できないのを危惧しているということかな?つまりそういう参照グラフとか含めて綺麗に再現できないし,MessagePackではそれを追加できないのではないか?ってことかな?
返信する
RTする
ふぁぼる
repeatedly
2010/04/26 02:31:43
うーん,でもRubyとかのMarshalがあるならまだしも,C++とかD言語でそこまで再現しているシリアライゼーションライブラリってあるのか?
返信する
RTする
ふぁぼる
repeatedly
2010/04/26 02:33:43
オブジェクトの参照を保存できる、C++に対応したシリアライズ形式と言えば…CORBA? リモートオブジェクトは参照できるけど、同一メッセージ内のオブジェクトも参照できるのかな。良く知らない。boost::serializeは無理だった気がする
返信する
RTする
ふぁぼる
frsyuki
2010/04/26 02:37:56
"class A -> class B"をシリアライズして,デシリアライズしても"class A -> class B"というのがオブジェクトグラフなんだろうけど,持ってる値は同じわけで,"class A' -> class B'"で何も問題が無い気がするんだけども…
返信する
RTする
ふぁぼる
repeatedly
2010/04/26 02:45:30
@frsyuki
やっぱり難しい気がするし,そこまでのグラフを正確に再現してメリットがあるのかどうか.IOとかは通常再現できないわけで…
返信する
RTする
ふぁぼる
repeatedly
2010/04/26 02:43:14
@repeatedly
参照を保持できない一番の欠点は、循環した構造を保存できない点だと思います。ただメリットがあるかというと…微妙ですね。
返信する
RTする
ふぁぼる
frsyuki
2010/04/26 02:49:31
@frsyuki
あー確かにそれはあるね.
返信する
RTする
ふぁぼる
repeatedly
2010/04/26 02:51:07
そもそも俺自身が循環構造を作らないから,それがどこまでのデメリットなのかよく把握してない.LinkedListにmp_unpackを実装するとすれば,それはカスタムなものになるだろうし,循環構造を直接シリアライズ/デシリアライズできるメリットねぇ…
返信する
RTする
ふぁぼる
repeatedly
2010/04/26 02:53:12
a = []; a.push(a); Marshal.load(Marshal.dump(a)) してみた。できた。[[...]] とか、初めて見た…。
返信する
RTする
ふぁぼる
frsyuki
2010/04/26 02:53:16
自身への循環ってのはどうなんだww
返信する
RTする
ふぁぼる
repeatedly
2010/04/26 02:54:41
@repeatedly
mp_unpackを実装するときに、どうシリアライズしたら良いかの指針は欲しくなりそうですね。["クラス名", メンバ]にするか、{"name"=>"クラス名", "メンバ名"=>値}にするとか。多言語を考えるとクラス名は入れられなくて困るワケですが…。
返信する
RTする
ふぁぼる
frsyuki
2010/04/26 02:55:50
a = []; a.push(a); MessagePack.pack(a) は、案の定 stack level too deep.
返信する
RTする
ふぁぼる
frsyuki
2010/04/26 02:56:47
@frsyuki
かなぁ.でも動的言語だとそれで旨味があるけど,静的に型が決まっている言語だと,デシリアライズしてクラス名とか取れても嬉しさが…
返信する
RTする
ふぁぼる
repeatedly
2010/04/26 02:58:07
@repeatedly
違った型にデシリアライズしようとしたときに、変なインスタンスができずにエラーが出せる、というメリットがありますね。正規表現をシリアライズしたデータを、ツリーにデシリアライズできてしまうと困る、とか。…んー有用性は微妙ですね。別にできても良さそうな気も。
返信する
RTする
ふぁぼる
frsyuki
2010/04/26 03:01:25
Content from Twitter
残りを読む(18)
ブログへ
iframe版
拡張版
張付けプレビュー
Fav
3
あわせて読みたい
MessagePack
MessagePack, BufferPacker, StreamPacker の設計について
MessagePack for Java の
MessagePack Java版でnullの扱いをどうするか問題
MessagePackで圧縮をサポートして節電する!
powered by Preferred Infrastructure
コメント
コメントを入力してください。
Twitterにも投稿する
みんなのおすすめ商品
商品を編集
おすすめ商品を登録する
設定を変更する
まとめを作成する
プロフィール
フォローする
アレな会社で一般人なイケメンやってます. Software Alchemist. D(Phobos committer), Ruby(1.9), Python(Tornado), Opera, Android, Mac, Emacs, No! SQL, Sports, Red Bull, No つけ麺 No Life!
repeatedly
link
twitter
rss
アップデート
まとめ
19
2
留年がアップを始めたようです
73
uupaaさんのCoffeeScript利用時の注意点
55
地獄のkzk
お気に入り
122
コメント
7
新着のまとめ
横三大喜利64「三国志武将喫茶」のまとめ
new
佐々木俊尚さんのstudygiht関連ツイート..
new
例大祭グッズまとめ
new
シンポジウム『受けて伝えて!科学とメディア ~..
new
台北ボカロ週=「みらいのねいろ in 台北 -..
new
もっと見る
@togetter_jp
最近追加された商品
ゼア・アンド・ゼン [DVD]
idea (アイデア) 2012年 05月号 [雑誌]
馬鹿が戦車でやってくる [DVD]
この1冊ですべてわかる 広告の基本
サユリリ (2) (REXコミックス)
オススメ
マイスター
トゥギャ通
埼玉南部の奴らがみた変な虹の写真まとめ
up
(短編まとめ)金環日食にちなんだイラストがNA..
学会開催校の恨み
生活保護に関する、渡邊芳之(ynabe39)さ..
up
PKAnzug氏による検証 『福島県の子供の病..
頑張れ、米本君!!
もっと見る
NNNドキュメント’12 「医療被曝~過剰投与..
new
茂木健一郎(@kenichiromogi)さん..
new
深夜の東大生を中心に発生した「たのしい人生」TL
new
「女川」ツイートまとめメモ 2012/05/2..
new
らいおん君稼動1周年記念オリコ・結果発表まとめ
new
江川紹子さんがつぶやく 「NHKスペシャル 未..
new
もっと見る
第80回「日食写真と昭和格差」
号外「みんなの金環日食まとめ―画像から教養ま..
第79回「虚構新聞とJリーグ」
第78回「コンプガチャとIT系かあちゃん」
第77回「びろーんと自宅警備隊」
第76回「Appleとパンツクッキー」
もっと見る
コメント