ブーストシリアライゼーションで多重継承を使用しています。する代わりに
boost::serialization::base_object< Connection<T> >(*this)
boost::serialization::base_object< Collection<C> >(*this)
私がやっている
template<typename ArchiveT>
void save(ArchiveT& arc, const unsigned version) const{
//both Connection<T> and Collection<C> are Base Classes
Connection<T>::save(arc, version);
Collection<C>::save(arc, version);
}
そしてその働き。それで、それらのうちの2つは同じものですか?またはこれを行うことに害はありますか?このコードを変更する必要がありますか?
{これはずっと前にコード化されたものです。だから、なぜそのようにコーディングしたのか忘れました。base_object
その時は気がつかなかったかもしれません}
膨大なデータ セット (~1.6 GB) をシリアライズしています。シリアライズすると、シリアライズ プロセスが大量のメモリを消費し、3GB の壁に達していることがわかります。シリアル化コードにコメントを付けてみましたが、50MB 未満のメモリが必要です。では、シリアライゼーションがその大きなメモリを必要とするのはなぜでしょうか?