icloud數據同步機制(iCloud同步備份機制測試)
2023-05-04 11:50:36 2
#頭條創作挑戰賽#
起因是當關閉iCloud雲盤之後,Notability無法正常查看筆記,疑問1:本地不是也會存儲嗎為什麼關閉備份之後還打不開了,一段摸索之後,重新打開iCloud雲盤,軟體恢復正常,這不由得讓我好奇iCloud的同步機制是怎麼樣的,基於所見情況,產生一下疑問和推測。
出現情況1:notability本地佔用緩存和iCloud中大小相近,都是五百多MB,不完全相同
出現情況2:當我在應用中關閉iCloud同步,會提示所有數據都已在iCloud保存,是否刪除ipad本地緩存,那我選擇保留,這時候內存似乎變成了倆個緩存相加,即1GB多,
推測1:當開啟iCloud同步,本質是保證在一個設備修改,在另一個設備也能接收,所以最簡單的是完全複製,但是完全複製意味著關閉同步,本地不會受影響,事實證明不是這樣的,若參考關閉關閉同步,倆個緩存相加,是否意味著本地在開啟iCloud同步時只會保存一部分數據,另一部分由iCloud保存,兩者不是完全鏡像,存在一定機制節約內存的同時確保能夠同步。
但是最簡單的問題,即如上面推測一樣,存部分真的可以同步嗎,由於沒有第二臺使用同一個apple id 的設備測試,此處無法驗證。
疑問2:
當關閉iCloud同步時,選擇了保存,注意!當時的提示是 所有數據都已在iCloud保存,是否刪除ipad本地緩存, 那麼在經過上述修改, 包括:1.對已有數據的修改,2.新增數據
系統會如何處理
推測2:
我更傾向於本地,雲端之前是各存儲一部分,所以這裡會進行數據比對,已有沒有改變的不動,已有變化的之間新建一個變化前的備份
疑問3:
當我先關閉iCloud同步,在對數據進行修改,內存包括:1.對已有數據的修改,2.新增數據
現在開啟同步,系統會如何處理。
推測3:
確定大核心,沒有在開啟iCloud同步的時候修改,開啟後iCloud存儲的東西不會變,即不會更新已有的數據,以及同步加上最新的數據,可以通過測試3進行驗證
測試3:
確定測試前參數:
關閉iCloud同步,本地notability文稿與數據1.08GB, iCloud中文稿與數據592.4MB,
改變參數:
(1) 保持關閉iCloud同步狀態,直接導入87.21MB pdf,以及在原有數據後面加上這個87.21MB pdf
(2) 打開iCloud同步,查看內存,數據變化。
(3) 關閉iCloud同步,查看內存,數據變化。
測試結果:
1) Notability 文稿數據大小變成 1.36GB,136-108=28,這個數據很奇怪,於是我又導入一次87.21,結果是1.45,這次正確了,推測是在原有筆記上新增處理邏輯不同,相比直接導入,增加內存會多一點。但是在我把最後新增的刪除,內存不是變成1.38而是1.27???這樣看來(1.27-108)/2 又是對的,看來細小的差別不能成為判斷機制的標準,這裡就不再重複測試,影響不大。
2) 先看本地notability文稿與數據 457.3MB iCloud中文稿與數據直接和之前本地同步了1.3G 所以推測1錯誤,它就是會直接保持到完全一樣,這樣不難理解,畢竟初衷就是為了保持各個設備同步。
同時它可能判定差別太大,所以當我同步時,他把所有的都複製一遍進去(可以是因為我對已有數據進行了修改)本地內存很小,我不知道這本地457MB到底是什麼,但是這個1.3G,大概率是源加舊,包含大部分的數據冗雜。
這裡新加一個測試項目,把兩個新增的測試項目刪除了,查看內存情況,以及關閉同步後情況。
刪除前:本地459.7MB,iCloud1.3G,刪除後:本地643.9MB,這是個大發現,由於沒有在回收站刪除,會把緩存儲存在本地以便恢復,此時iCloud 1.2G.
我又好奇,把回收站恢復會怎麼樣,恢復後本地459.8,iCloud1.3G正常,沒有多餘內存bug。
再正常刪除,把回收站也清除了,可以看到iCloud為1.2G,正確刪除內存,但是本地為459.7,說明並沒有釋放內存,這部分數據完完全全儲存在iCloud!!!!那麼本地的459.7就是和創建筆記無關的東西,有理由推測關閉同步後,會把所有數據,即1.2G全部導入,最後內存來到1.7G嗎???
3) 最後一步了,關閉iCloud同步,同樣提示是否保留筆記副本,選擇保留
查看本地1.7G!!推斷完全正確,iCloud不變仍為1.2GB
至此驗證結束,總結一下
1. iCloud同步數據是儲存在雲端的,本地直接不會儲存,所以關閉同步時,必須選擇把數據保留在ipad上,否則需要重新利用iCloud導入
2. 若是關閉iCloud同步進行修改,開啟後,計算邏輯相對低級,會選擇直接複製一份過來,同時刪除本地數據,更新最新的iCloud數據,達到一個最新版(這一切都建立在iCloud內存充足的情況下)
3. 最後,若關閉iCloud同步,選擇保留數據,會自動把數據從iCloud返回本地。
,