ndk를 이용해 어플을 만들고 있습니다.
malloc을 통해서 메모리를 얼마이상 쓸수 있습니까?
혹시 ndk를 통한 공유라이브러리를 제작하고 공유라이브러리 내부 함수에서
malloc을 할때 특정 사이즈 이상 할 수 없는 규칙이 있나요?
왜 executable로 하면 1기가 이상 malloc해도 이상이 없는데
동일한 소스를 공유라이브러리로 작성해서 App에서 호출하면
1기가 이상 malloc이 안되는지 궁금합니다.
malloc 은 RAM 메모리에서 활당을 받는 겁니다.시스템이 미리 확보해논 메모리를 제외 하고,나머지 영역만큼을 넘어서는 못 해 주겠지요.만약,하드디스크가 있다면..스왑 영역을 활당 할 수 있을 테지만스마트폰의 디스크역활을 하는 플레시 메모리는,읽는 속도는 하드디스크속도에 비숫 하게 갈수 있으나쓰는 속도는 어림없읍니다.결국 스왑이 안됩니다.
malloc 은 RAM 메모리에서 활당을 받는 겁니다.
시스템이 미리 확보해논 메모리를 제외 하고,나머지 영역만큼을 넘어서는 못 해 주겠지요.
만약,하드디스크가 있다면..스왑 영역을 활당 할 수 있을 테지만
스마트폰의 디스크역활을 하는 플레시 메모리는,읽는 속도는 하드디스크속도에 비숫 하게 갈수 있으나
쓰는 속도는 어림없읍니다.결국 스왑이 안됩니다.
제가 알기로는 VM 의 영향을 받는것으로 알고 있고 VM이 어플에 할당하는 크기에 따라 틀려지는걸로 알고 있습니다.
실제 테스트는 해보지 않아서 얼만큼 잡아지는지는 알수 없지만 1G를 할당하는데엔 무리가 있어 보이네요..
답변 감사합니다~ 달빅쪽 확인해보고 해결되면 답변 올리겠습니다.
로그인 유지
malloc 은 RAM 메모리에서 활당을 받는 겁니다.
시스템이 미리 확보해논 메모리를 제외 하고,나머지 영역만큼을 넘어서는 못 해 주겠지요.
만약,하드디스크가 있다면..스왑 영역을 활당 할 수 있을 테지만
스마트폰의 디스크역활을 하는 플레시 메모리는,읽는 속도는 하드디스크속도에 비숫 하게 갈수 있으나
쓰는 속도는 어림없읍니다.결국 스왑이 안됩니다.