2014-11-06 3 views
0

내 애플 리케이션에서, 나는 사용자의 데이터를 자신의 휴대폰에 json에 저장합니다. 얼마나 자주 전화 데이터를 업데이트해야하는지 결정하려고합니다. 예를 들어 보겠습니다. 사용자는 몇 가지 작업을 수행해야하며, 각 작업에서 사용자는 버튼을 여러 번 클릭하여 필요에 따라 번호를 업데이트합니다. 이 "숫자"는 사용자가 앱을 종료 할 때 다음에 앱을 시작할 때 계속 유지하는 것이 중요합니다.얼마나 빨리 아이폰과 안드로이드에 디스크 액세스가 데이터 쓰기/업데이트

예를 들어 사용자가 버튼을 20 번 (예 : 몇 초 만에 빠르게 연속하여 클릭하는 경우)마다 클릭 할 때마다 json을 업데이트해야합니까? 마찬가지로, 충분히 빠른 작업입니까? 또는 사용자가 버튼을 클릭하여 실제로 모든 데이터를 한 번에 업데이트 한 후 5 초 동안 기다려야합니까?

필자는 디스크에 파일을 쓰는 구현과 몇 가지 다른 작업에 따라 다르다는 것을 알고 있습니다. 구현이 매우 잘되어 있다고 가정하고 페이지 json 만 작성하고 있습니다. 현재 전화기의 디스크가 이러한 속도로 디스크에 쓸 수있을 정도로 빠릅니다. iphone5에서 테스트 한 결과 매우 빨리 작동하는 것으로 보입니다. 그러나 이것이 항상 사실인지 아니면 내 테스트 시나리오인지 확실하지 않습니다. 사용자 번호의 지속성은 내 앱에서 매우 중요하므로 잃지 않도록 가능한 한 안전하고 신중해야합니다.

+3

휴대 전화에는 디스크가 없습니다. 플래시 메모리를 가지고 있으며 쓰기 횟수에 따라 수명이 제한됩니다. 그것에 쓰기가 필수적이고 피할 수없는 동안, 당신은 사소한 갱신의 zillions를 내 버리지 않아야한다. –

+0

@MarcB 예, 저는 매우 게으른 방식으로 디스크를 사용했습니다. 좋은 지적! 나는 평생의 관점에서 그것을 결코 생각하지 못했습니다. 비록 플래시의 수명이 사람이 휴대 전화를 오래 유지하는 것보다 훨씬 더 오래있을 것이라고 확신합니다 (2-3 년, 업그레이드 할 돈이 있거나 휴대 전화를 끊으면/넣어야합니다. 세탁기/균열 화면에서 교체해야 함). 나는 수명이 정말로 중요하다고 생각하지 않습니다. 액세스 속도에 대한 의견이 있으십니까? 휴대폰 플래시 메모리의 일반적인 쓰기 속도는 무엇입니까? 일반 컴퓨터 - 3 ~ 600megs/초의 SSD 범위? 같은? –

+1

데스크톱/서버 클래스 SSD는 추가 속도를 위해 일종의 RAID 설정에서 여러 개의 칩을 갖습니다. 휴대 전화의 공간이 프리미엄이기 때문에 플래시 칩이 훨씬 적어 SSD 급 속도를 달성하지 못합니다. –

답변

1

내 의견으로는 몇 초 안에 20 건의 업데이트가 많은 시간을 소모하지 않습니다. JSON 문자열을 저장하는 대신 복잡한 JSON 문자열을 작성하는 데 더 많은 시간이 소요됩니다. 그러나 @Marc B는 아마도 onDestroy 또는 다른 "postExecute"메소드와 같이 더 많은 양의 데이터를 저장하는 것이 더 나은 해결책이라고 언급했습니다. 나는 그것이 더 간단한 해결책 일 것이라고 믿는다. 클릭 수를 저장하기를 원한다면 계산하고 저장하는 것이 더 간단합니다. 그렇지 않은 경우 자세한 내용을 알려주십시오.

+0

내 시나리오는 사용자가 몇 초 내에 lke 버튼을 20 번 클릭 할 수 있다는 것입니다. 그런 다음 다른 화면으로 이동하기로 결정할 수 있습니다. 그러나 사용자는 버튼을 다시 클릭하기 위해 마지막 화면으로 되돌아 가기로 결정할 수 있습니다 (inc 또는 dec로). 매 순간, 나는 플래시 메모리에 기록 된 클릭을 가질 필요가있다. 그래서 속도에 대해 너무 궁금합니다. –

+1

그래서 전역 변수를 사용하면됩니다. 몇 가지 활동으로 액세스해야하는 경우 Application 클래스를 확장 할 수 있습니다. http://www.devahead.com/blog/2011/06/extending-the-android-application-class-and-dealing-with- 싱글 톤/ –

+0

아 앱 클래스를 확장하는 것을 완전히 잊었다! 달콤한, 그게 도움이! 감사합니다. –

관련 문제