アカウント名:
パスワード:
オブジェクトをバイト列に変換することですよね。
Cでmallocしたデータは「そこにある」ことがほぼ自明だけど、例えばJavaだとデータは全て動的なので、インスタンスを生成するたびにデータがメモリ上にでたらめに配置されてしまいます。それを出力のために連続したバイト列に直すことだったと思います。
実はFortranのような古典的な言語でも、アクセス効率をあげるためにアライメントと言ってデータの区切りをワード境界に合わせたりする時は、メモリ上の本当のデータの配置と入出力データを合わせるシリアライズ相当の処理をどこかでやらないといけなかったりします。
Javaのオブジェクトは、自分で自分のサイズなどを知っているので、クラス定義の時にSerializbleをimplementしておけばあとは処理系がやってくれると本に書いてありますが、処理系が判断できないデータもあるはずで、その場合どうなるかは知りません。書き出したものを読み込んで元に戻らなかったら大変なことになりますから、手動で実装するのはやっかいです。
入出力の他、別のプロセッサやスレッドにオブジェクトを転送して処理を頼む時や、いったんばらばらになったメモリを集めてアクセスを効率化するのにも使う気がします。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
あと、僕は馬鹿なことをするのは嫌いですよ (わざとやるとき以外は)。-- Larry Wall
シリアライズ (スコア:2, 興味深い)
処理するようにしてます。で、シリアライズに投票しました。
じゃ、オーバーフローしないのかというと、入力の段階で制限しちゃうので、なんとかっているか
と。あとは締切が後ろにずれていくわけで、それでも何とかなるかと。
一応ACにしておこう。
Re:シリアライズ (スコア:0)
つシリアライズ [e-words.jp]
#もしや、データ退避させておいて、一つずつ処理していく…ってこと?
#私の勘違いでしたら失礼つかまつったm(_ _)m
逐次化と直列化 (スコア:1)
Re:シリアライズ (スコア:1)
オブジェクトをバイト列に変換することですよね。
Cでmallocしたデータは「そこにある」ことがほぼ自明だけど、例えばJavaだとデータは全て動的なので、インスタンスを生成するたびにデータがメモリ上にでたらめに配置されてしまいます。それを出力のために連続したバイト列に直すことだったと思います。
実はFortranのような古典的な言語でも、アクセス効率をあげるためにアライメントと言ってデータの区切りをワード境界に合わせたりする時は、メモリ上の本当のデータの配置と入出力データを合わせるシリアライズ相当の処理をどこかでやらないといけなかったりします。
Javaのオブジェクトは、自分で自分のサイズなどを知っているので、クラス定義の時にSerializbleをimplementしておけばあとは処理系がやってくれると本に書いてありますが、処理系が判断できないデータもあるはずで、その場合どうなるかは知りません。書き出したものを読み込んで元に戻らなかったら大変なことになりますから、手動で実装するのはやっかいです。
入出力の他、別のプロセッサやスレッドにオブジェクトを転送して処理を頼む時や、いったんばらばらになったメモリを集めてアクセスを効率化するのにも使う気がします。