some fixes and performance hacks

git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@5845 6c8d7289-2bf4-0310-a012-ef5d649a1542
This commit is contained in:
orbiter 2009-04-20 23:01:44 +00:00
parent dfb96ecb72
commit 8ffb9889e1
4 changed files with 26 additions and 10 deletions

View File

@ -220,8 +220,11 @@ public class httpClient {
* (non-Javadoc)
* @see de.anomic.http.HttpClient#setTimeout(int)
*/
public void setTimeout(final int timeout) {
@SuppressWarnings("deprecation")
public void setTimeout(final int timeout) {
apacheHttpClient.getParams().setIntParameter(HttpMethodParams.SO_TIMEOUT, timeout);
apacheHttpClient.getParams().setIntParameter(HttpMethodParams.HEAD_BODY_CHECK_TIMEOUT, timeout);
apacheHttpClient.setConnectionTimeout(timeout);
}
/**

View File

@ -103,7 +103,7 @@ public class IndexTest {
hm.clear(); hm = null;
long t5 = System.currentTimeMillis();
System.out.println("time for HashMap<String> test: " + (t5 - t4) + ", " + bugs + " bugs");
System.out.println("memory for HashMap<byte[]>: " + (freeStartHash - freeEndHash) / mb + " MB\n");
System.out.println("memory for HashMap<String>: " + (freeStartHash - freeEndHash) / mb + " MB\n");
// test kelondro index
Runtime.getRuntime().gc();

View File

@ -46,7 +46,19 @@ import java.util.concurrent.LinkedBlockingQueue;
public class Digest {
public static BlockingQueue<MessageDigest> digestPool = new ArrayBlockingQueue<MessageDigest>(10);
static {
for (int i = 0; i < 10; i++)
try {
MessageDigest digest = MessageDigest.getInstance("MD5");
digest.reset();
digestPool.add(digest);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
public static String encodeHex(final long in, final int length) {
String s = Long.toHexString(in);
while (s.length() < length) s = "0" + s;
@ -98,8 +110,7 @@ public class Digest {
public static byte[] encodeMD5Raw(final String key) {
try {
final MessageDigest digest = MessageDigest.getInstance("MD5");
digest.reset();
final MessageDigest digest = digestPool.take();
byte[] keyBytes;
try {
keyBytes = key.getBytes("UTF-8");
@ -107,10 +118,13 @@ public class Digest {
keyBytes = key.getBytes();
}
digest.update(keyBytes);
return digest.digest();
} catch (final java.security.NoSuchAlgorithmException e) {
System.out.println("Internal Error at md5:" + e.getMessage());
}
byte[] result = digest.digest();
digest.reset();
digestPool.put(digest);
return result;
} catch (InterruptedException e) {
System.out.println("Internal Error at md5:" + e.getMessage());
}
return null;
}

View File

@ -86,7 +86,6 @@ public class Word {
if (h != null) return h;
h = Base64Order.enhancedCoder.encodeSubstring(Digest.encodeMD5Raw(word.toLowerCase(Locale.ENGLISH)), yacySeedDB.commonHashLength);
assert h[2] != '@';
String s = new String(h);
hashCache.put(word, h); // prevent expensive MD5 computation and encoding
return h;
}