프로세스를 포크하기 전에 프로그램에서 충분한 양의 메모리를 미리 할당 한 다음 포크 된 프로세스에서이 풀에서 메모리를 더 할당하거나 사용하고 싶습니다. 나는 Bget, Boost 등과 같은 메모리 할당 자들을 보았지만 그것을 사용하는 방법을 이해할 수 없었다. 메모리를 사전 할당하고 분기 된 프로세스에서 사용하십시오.
내가처럼 사용할 수있는 거기 밖으로 간단한 일이 있습니까poolhandle = poolallocate (pool_size)
같은 갈래의 프로세스를 사용 뭔가 그런
PTR = allocatefromPool (poolhandle, no_of_bytes)
그리고 나서이 포인터를 다른 프로세스로 일부 IPC를 통해 전달하면 해당 프로세스에서도 액세스 할 수 있어야합니다.
올바른 방향으로 나를 가리킬 수 있습니까? Boost가가는 길이라면 어떻게 사용하는지 예제를 제공해 줄 수 있습니까?
안녕하세요, Michael 님, 입력을 제공해 주셔서 감사합니다. 메모리 매핑 된 파일은 내가 알고있는 한 가지 옵션이지만 쉽게 사용할 수있는 간단한 할당자를 사용하거나 직접 작성하는 작업의 요구 사항입니다. 기본적으로 힙/메모리 관리자의 일종입니다. 차라리 사용 가능한 옵션을 살펴보고 요구 사항을 충족하는지 확인하고 싶습니다. 메모리 맵핑 된 파일 즉, mmap 내가 들었던 것은 시스템 콜을 포함하고있어서 느릴 수있다. (미안하지만 이것을 검증하지는 않았다) – lucent
인기 있고 간단한 힙 관리자/메모리 할당 자/풀을 사용할 수 있는가? 내가 쓸 수있어? boost는 실제로 메모리를 미리 할당하지 않습니다. 그렇습니까? 기본적으로 나는 큰 메모리 덩어리를 미리 할당하고 내 구조체, 배열, ints, chars..etc 데이터 구조를 할당하고 싶습니다. 또한이 포인터를 다른 (forked) 프로세스에 전달하면 프로세스가 해당 메모리에 액세스 할 수 있어야합니다. – lucent