iOS의 메모리 내장 SQLite db에 대한 스트레스 테스트를하고 있습니다.C API로 메모리 내 SQLite 데이터베이스 크기를 측정하는 방법은 무엇입니까?
잠시 후 OCUnit이이 오류를 발생 시켰습니다.
otest(79450,0xad21a2c0) malloc: *** mmap(size=40267776) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
저는 이것이 메모리 제한을 초과한다고 생각합니다. 하지만 현재 데이터베이스 크기를 파악할 수는 없습니다. 나는
sqlite3_status(SQLITE_STATUS_MEMORY_USED, ¤t, &peak, false);
을 시도했지만이 항상 current
에 대한 0
반환 및 업데이트를 통해 같은 peak
모두를위한 몇 가지 값. manual entry을 읽었지만 db 크기 기능처럼 보이지 않습니다. 나는 내가 틀린 장소를 파고 있다고 생각해. C-API로 데이터베이스 크기를 얻으려면 어떻게해야합니까?
현재/피크가 int라고 가정합니다. 리턴 코드를 테스트하여 SQLITE_OK인지 확인하십시오. 이러한 호출을 코드에 뿌려 봤습니까? 0이 항상 반환된다는 것을 알았습니까? 반환 코드를 확인하고 질문을 업데이트하십시오. –
사실, 실제로 '피크'는 삽입 된 데이터의 수에 관계없이 업데이트 된 값이 동일한 값을 반환하고 있음을 의미합니다. 애매한 점에 대해 유감입니다. 물론 전화에 대한 오류 검사를하고 있습니다. – Eonil
이 오류가 발생하는 데 다소 시간이 걸리면 sqlite3과 관련된 누출이 없습니까? 예 : finalize 문과 함께 준비된 모든 진술은 무엇입니까? – Rob