AndroidでSHA-1のパフォーマンスに問題があります。 C#では約3秒で計算されたハッシュを取得しますが、Androidの同じ計算では約75秒かかります。私は問題がファイルから操作を読み込むことにあると思いますが、パフォーマンスを向上させる方法がわかりません。Android、ファイルからSHA-1ハッシュを計算する、最速アルゴリズム
私のハッシュ生成方法は次のとおりです。
private static String getSHA1FromFileContent(String filename)
{
try
{
MessageDigest digest = MessageDigest.getInstance("SHA-1");
//byte[] buffer = new byte[65536]; //created at start.
InputStream fis = new FileInputStream(filename);
int n = 0;
while (n != -1)
{
n = fis.read(buffer);
if (n > 0)
{
digest.update(buffer, 0, n);
}
}
byte[] digestResult = digest.digest();
return asHex(digestResult);
}
catch (Exception e)
{
return null;
}
}
パフォーマンスを向上させる方法を教えてください。
あなたが読んでいるファイルのサイズは? – SirDarius
'asHex(..)'メソッドなしでコードを実行してみてください(単にbyte []を返す)。 –
私は6MBのファイルを使用して、asHex(..)を削除していません。/ –