2012-12-09 1 views
-1

방금 ​​안드로이드에서 내 응용 프로그램을 시작했습니다. 그리고 내 응용 프로그램이 장치의 CPU를 많이 소비해서는 안됩니다. 데이터 액세스를위한 3 가지 선택 사항이 있습니다. 1. 원격 서버의 MySQL 데이터베이스. 2. 원격 서버의 xml 형식으로 저장된 데이터 3. 데이터는 원격 서버의 json 형태로 저장됩니다.어느 쪽이 성능 측면에서 더 낫습니다 : 원격 MySQL DB, 안드로이드와 함께 작업하면서 json의 형태로 데이터 저장

데이터는 데이터베이스에서 약 2000-3000 행입니다. 내 앱의 성능을 향상시키기 위해 어떤 방법을 사용해야합니까?

도움이 될 것입니다.

+0

나는 유용한 제안을 기다리고 있습니다. – ved

답변

1

데이터가 원격 서버에 저장되는 방식은 Android 앱에 거의 영향을 미치지 않습니다. 진정한 질문은 전송 방법과 로컬에서 처리하고 저장하는 방법입니다.

이 많은 데이터를 사용하면 데이터를 스트리밍하고 스트림을 구문 분석하는 것이 가장 좋습니다. XML의 경우 JSON이 스트리밍 Jackson 일 경우 SAX 파서를 사용하는 것이 좋습니다. JSON은 더 적은 대역폭을 사용하며, Jackson은 형식이 지정된 데이터를 가장 빨리 처리 할 수 ​​있습니다.

스트리밍에는 DOM으로 구문 분석하기 위해이 데이터를 모두 메모리에 보관할 필요가 없지만 더 많은 개발 노력이 필요하다는 분명한 이점이 있습니다.

로컬에서는이 양의 데이터를 저장하는 가장 좋은 방법은 쉽게 쿼리 할 수있는 sqlite 데이터베이스입니다.

+0

만약 내가 사용하는 경우, 그리고 그 데이터는 사용자의 장치에서 그 이후로 나는 그 데이터를 표 형식으로 변환해야하므로 로컬 SQLLite 데이터베이스에 저장할 수 있습니까 ??? 그 데이터를 캐시로 관리하는 것이 더 좋을 것이라고 생각했습니다. – ved

+0

데이터에 가장 적합한 모든 것을 할 수 있습니다. 데이터에 2K-3K 행이 있다고 했으므로 이미 테이블 형식이라고 가정 했으므로 작성하면됩니다. 로컬로 JSON으로 저장하면, 액세스 할 때마다 구문 분석하거나 프로그램이 실행될 때마다 DOM을 빌드해야합니다. 반복되는 파싱은 느려질 것이고, 3K 행을위한 DOM을 구축하는 것은 약간의 메모리를 사용할 것입니다. 따라서 sqlite에 저장하면 두 가지 문제가 모두 해결됩니다. – 323go

관련 문제