나는 약 10Gb의 Boost.MultiIndex 큰 배열을 가지고있다. 독서를 줄이기 위해 나는 데이터를 메모리에 유지하는 방법이 있어야하고 다른 클라이언트 프로그램이 그것을 읽고 분석 할 수 있어야한다고 생각했다.Boost.MultiIndex : 두 프로세스간에 개체를 공유하는 방법이 있습니까?
구성 방법은 무엇입니까?
struct particleID
{
int ID;// real ID for particle from Gadget2 file "ID" block
unsigned int IDf;// postition in the file
particleID(int id,const unsigned int idf):ID(id),IDf(idf){}
bool operator<(const particleID& p)const { return ID<p.ID;}
unsigned int getByGID()const {return (ID&0x0FFF);};
};
struct ID{};
struct IDf{};
struct IDg{};
typedef multi_index_container<
particleID,
indexed_by<
ordered_unique<
tag<IDf>, BOOST_MULTI_INDEX_MEMBER(particleID,unsigned int,IDf)>,
ordered_non_unique<
tag<ID>,BOOST_MULTI_INDEX_MEMBER(particleID,int,ID)>,
ordered_non_unique<
tag<IDg>,BOOST_MULTI_INDEX_CONST_MEM_FUN(particleID,unsigned int,getByGID)>
>
> particlesID_set;
모든 아이디어를 환영합니다 : 같은
배열 보인다.
종류의 arman.
편집 : RAM 및 코어 수는 제한되지 않습니다. 현재 나는 16Gb와 8Core를 가지고있다.
업데이트
나는 호아킨 M 로페즈 무 노즈 (Boost.MultiIndex의 개발자)에서 대답을 얻었다 나는 Boost.Users 포럼에 묻는 것과 같은 질문입니다. aswer는 예입니다. Boost.Interprocess를 사용하여 프로세스간에 multi_index를 공유 할 수 있습니다. 자세한 내용은에서 볼 수 있습니다 this link
Ops, 링크가 가리키는 스레드가 삭제되었습니다 ... – Pietro
@Pietro : 정말 이상합니다. ( – Arman