2009-07-31 3 views
2

들어오는 실시간 데이터를 저장하기 위해 디스크 기반 데이터 구조를 생각해 냈습니다. 배열이 가득 차서 jvm이 충돌 할 수 있기 때문에 메모리에 저장되지 않습니다. 데이터 구조와 알고리즘은 훌륭하게 작동합니다. 내 유일한 질문은 이것이 크게 sdcard의 삶에 영향을 미치나요?SD- 카드 데이터 구조를 저장하는 동안의 수명

나는 sdcards에 제한된 읽기 및 쓰기 권한이 있지만 얼마만큼 제한적인지는 알고 있습니다. SD 카드에 쓰는 것은 세션 당 평균 20 분 동안 SD 카드에 큰 영향을 미치므로 사용자가이 앱을 죽인 것으로 보입니다.

+2

20 분 내에 기록되는 데이터 양에 따라 다릅니다. –

+1

SD 미디어가 아닌 소매 용 USB '펜드 리브 (pendrive)'를 테스트하는 동안 다음 기사는 사용자에게 흥미로운 정보를 제공합니다 (테스트 방법론의 경우 일지라도). http://www.bress.net/blog/index .php? url = 아카이브/114-How-Long-Does-a-Flash-Drive-Last.html –

+1

@ Rob, Michael, Spencer and Cruachan 모든 답변은 아마도 "최상의 답변"이 없다는 것을 알고 있더라도이 질문에 대한 최상의 대답 일 것입니다. 여러 답변을 지원하고 싶다면 Cruachan에게 데이터 구조를 사용하여 여러 카드를 테스트하는 아이디어를 제안해야합니다. –

답변

2

카드의 쓰기 수는 100'000s입니다. 이것은 디스크 섹터보다 훨씬 클 수있는 플래시 섹터 삭제 횟수입니다.

내가 발견 한 계산 다음과 같은 문서 : STEC SMALL CARDS WEAR LEVELING AND LIFETIME CALCULATOR

예 중 하나 수명 = 200 × (5백12메가바이트 - 1백메가바이트 - 128킬로바이트)/(50메가바이트 × 10/일) = 4,513년

그래서 합리적인 설계를하면 (즉, 작성한 모든 바이트에 대해 파일을 열거 나 닫지 마십시오. 강제로 flushses가 작성되어 기록 될 수 있습니다) 나는 매우 광범위한 테스트를 설정하는 것을 귀찮게하지 않을 것입니다 ....

+0

와우 대단히 감사합니다. 저에게 약간 돈을 저축했다 :). 정말 고마워 ! –

2

나는 현대 플래시 메모리가 수십만 건의 재 작성에 유용하다고 생각했다. 내가 아는 한 읽는 횟수는 제한되지 않습니다.

기분이 나아진다면 Windows Vista는 성능 향상을 위해 USB 플래시 드라이브에 캐시 공간을 할당 할 수있는 ReadyBoost라는 기능을 지원합니다. 나는 당신이 어떻게 든 글을 쓰기까지 관리한다면, 당신은 괜찮을 것이라고 생각합니다.

또한 일부 플래시 메모리 모듈에는 쓰기 최적화 기능이 내장 된 내장 컨트롤러가있어 나중에 쓰기 작업을 할 때 메모리의 다른 영역에 쓰기를 시도합니다. 특정 메모리 카드에 통합 컨트롤러가 있는지 여부를 확실히 알지 못한다면 (SD는 특히 컨트롤러가 통합되어 있지 않지만 어쨌든 여전히 어떤 다른 메커니즘을 가지고 있습니다. 그것은 쓰기를 evens).

편집 : 나는 '하드 드라이브'로 SD 카드를 사용하는 초기 EEEPC의에서 구입하고 그래서했습니다 http://en.wikipedia.org/wiki/Flash_memory#Memory_wear

1

: 여기에 메모리 마모 및 자세히 "웨어 레벨링 (wear leveling)"를 설명하는 링크입니다 특히 2Gb 모델을 사용하여 4GB SD 카드에 스팬 할 수 있도록 내부 RAM을 설정했기 때문에 이에 대한 토론에 관심이있었습니다. 실제 하드 데이터로 접근하기는 어렵지만 필자가 알 수있는 모든 정보 옵션은 머신의 합리적인 수명 내에서 문제가되어서는 안된다는 것을 암시합니다 (물론 내 eeepc는 ext3 파일 시스템에서 매우 행복하게 실행되고 있습니다. SD 카드 - 많은 활동 - 즉, 문제가없는 - 내가 해킹 한 이후).

의견 : 현대 SD 카드는 최소한 10 만 사이클을 제공해야하므로 기기의 수명이 불과 몇 년이면 괜찮을 것으로 예상됩니다. 그러나 확실한 유일한 방법은 샘플 카드 묶음에 연속적으로 쓰는 프로그램으로 몇 가지 테스트를 설정하고 3 개월 정도의 시간 내에 실패하는지 확인하는 것입니다. 나는 또한 제조업체들에게 직접 물어볼 것입니다.

+0

좋은 아이디어. 감사! –

+0

통계학자를 확인해야하지만 카드 수가 아주 적어서 합리적으로 좋은 숫자를 얻을 수 있다고 생각합니다. 예를 들어 10 장의 카드를 테스트하고 3 개월 동안 연속 읽기/쓰기가 실패하지 않는다면 알고있는 정도의 신뢰도로 실패율에 대한 실질적인 상한선을 도출 할 수 있습니다. 나는 또한 왜 당신이 USB/SD 카드 리더기를 구입하면 PC에서 공정한 몇 가지를 설정할 수없고 계속해서 데이터 구조를 쓰는 맞춤식 프로그램의 여러 복사본을 실행할 수 없는지 알지 못합니다. 따옴표로 묶인 값은 괜찮지 만 테스트 자체는 아무 것도 없습니다. – Cruachan