안드로이드 개발 질문/답변
(글 수 45,052)
ContentValues initialValues = new ContentValues(); initialValues.put("subject", subject); initialValues.put("professor", professor); initialValues.put("classroom", classroom); initialValues.put("day", day1); initialValues.put("start", start1); initialValues.put("bgcolor", bgcolor); nitialValues.put("alarm", alarm); sdb.insert("timetable", null, initialValues);
이런식으로 지금 데이터 베이스를 저장하고 있습니다.
이것을 반복문으로 한번에 20개 정도 저장하는데
애뮬에서는 빠르나 갤럭시 s로 테스트 결과 너무 느립니다.
10초동안 다운먹은거 처럼있음.
로그캣으로 확인결과 하나 넣을때마다 시간이 너무 오래 걸리네요.
이거 해결할 방법은 없나요??
2010.09.16 17:57:43
갤S에서 DB 접근의 필수요소중 하나가 "열고닫기를 줄여라" 입니다. (제 경험상...)
열고 닫는시간이 시간을 많이 드십니다. 와구와구 쩝쩝....
저 같은 경우 CP 안쓰고 직접 열고 닫으면서 데이터를 넣는데요...
어플 시작할때 열고 끝날때 닫는 사이클 안에서 데이터 쓰기를 하니까 랙 많이 줄더군요.
열고 닫는시간이 시간을 많이 드십니다. 와구와구 쩝쩝....
저 같은 경우 CP 안쓰고 직접 열고 닫으면서 데이터를 넣는데요...
어플 시작할때 열고 끝날때 닫는 사이클 안에서 데이터 쓰기를 하니까 랙 많이 줄더군요.
2010.09.16 18:13:41
2.2 업뎃과 동시에 아마도 "메모리 포멧" 에 대한 조치가 없다면 안될겁니다.
아니면 충분한 캐싱 알고리즘이 있던가...
이도저도 안되면 말짱 꽝.... 프로요도 구제 못할거라 전 생각합니다.
아니면 충분한 캐싱 알고리즘이 있던가...
이도저도 안되면 말짱 꽝.... 프로요도 구제 못할거라 전 생각합니다.
2010.09.21 01:54:06
에뮬레이터에서 테스트한 DB INSERT 속도는 평균 30ms 이였습니다.
x페리아에서는 평균 15ms 나왔고요.
넥서스원은 평균 20ms 나왔습니다.
문제가 되는 갤럭시S의 경우엔 2000ms 나왔습니다.
명백한 갤럭시S의 버그입니다. 저도 관련 문제로 삼성센터에 해당 이슈를 문의한 상태입니다. 아직 공식적인 답변은 없네요.
현재로써 최선의 방법은 DB INSERT 명령을 스레드를 이용해서 별도로 처리하는 것입니다.
심지어 저는 갤럭시S의 경우엔 아예 DB처리를 생략할까 하는 고민도 하고 있습니다.
삼성측에서도 해당 문제를 당연히 파악했으리라 생각됩니다.
프로요(2.2) 버전 펍웨어 업그레이드후엔 해결되지 않을까 생각됩니다.