Android'de SHA-1 performansı ile ilgili bir sorunum var. C# de yaklaşık 3s içinde hesaplanan karma alırsınız, Android için aynı hesaplama yaklaşık 75s sürer. Problemin dosyadan okunması sorunu olduğunu düşünüyorum, ancak performansı nasıl geliştireceğimi bilmiyorum.Android, dosyadan SHA-1 hash hesaplanıyor, hızlı algoritma
İşte karma üretim yöntemim.
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;
}
}
Herhangi bir fikir Performansı nasıl geliştirebilirim?
içinde okuduğunuz dosyanın boyutu nedir? – SirDarius
Kodunuzu "asHex (..)" yöntemi olmadan çalıştırmayı deneyin (yalnızca byte []). –
6MB dosyası kullanıyorum, kaldırma asHex (..) yardımcı olmadı:/ –