在我正在開發的Android應用程序中,我可以通過其CRC32,MD5或SHA1(我擁有帶有這些列表的xml文件)識別文件。CRC計算需要太多時間
,我讀了CRC32是要計算的速度更快,所以我決定用這一個,但計算大約需要3分鐘4MB的文件CRC32,我需要做的更多,更大的文件時間更短。這是雙頻1.5GHz CPU和1GB RAM設備的常規時間嗎?如果不是,可能是由於堆的限制?如果我編譯一個本地C來通過shell來計算CRC,將會提高Process.exec
?
編輯代碼: 我添加了一個BufferedInputStream,現在大約需要7秒。但35MB文件1分鐘。
InputStream fi = new BufferedInputStream(new FileInputStream(f));
int gByte = 0;
CRC32 gCRC = new CRC32();
while ((gByte = fi.read()) != -1) {
gCRC.update(gByte);
}
fi.close();
可能是IO太慢 – BlackJoker 2013-04-11 13:08:18
請添加您的校驗碼,因爲它可能會導致錯誤的加密API使用... – Kartoch 2013-04-11 13:08:35
如何計算crc32? – BlackJoker 2013-04-11 13:11:54