performance hacks

git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@8001 6c8d7289-2bf4-0310-a012-ef5d649a1542
pull/1/head
orbiter 14 years ago
parent eb9c9edb01
commit 9e4875230f

@ -63,7 +63,7 @@ public final class idx {
for (final ReferenceContainer<HostReference> references: idx) { for (final ReferenceContainer<HostReference> references: idx) {
prop.put("list_" + count + "_term", ASCII.String(references.getTermHash())); prop.put("list_" + count + "_term", ASCII.String(references.getTermHash()));
final Iterator<HostReference> referenceIterator = references.entries(); final Iterator<HostReference> referenceIterator = references.entries();
final StringBuilder s = new StringBuilder(); final StringBuilder s = new StringBuilder(references.size() * 20); // pre-set of guessed size reduces expandCapacity() and increases performance
HostReference reference; HostReference reference;
while (referenceIterator.hasNext()) { while (referenceIterator.hasNext()) {
reference = referenceIterator.next(); reference = referenceIterator.next();

@ -728,7 +728,7 @@ public class yacysearch {
prop.put("num-results_globalresults_remotePeerCount", Formatter.number(theSearch.getRankingResult().getRemotePeerCount(), true)); prop.put("num-results_globalresults_remotePeerCount", Formatter.number(theSearch.getRankingResult().getRemotePeerCount(), true));
// compose page navigation // compose page navigation
final StringBuilder resnav = new StringBuilder(); final StringBuilder resnav = new StringBuilder(200);
final int thispage = offset / theQuery.displayResults(); final int thispage = offset / theQuery.displayResults();
if (thispage == 0) { if (thispage == 0) {
resnav.append("<img src=\"env/grafics/navdl.gif\" alt=\"arrowleft\" width=\"16\" height=\"16\" />&nbsp;"); resnav.append("<img src=\"env/grafics/navdl.gif\" alt=\"arrowleft\" width=\"16\" height=\"16\" />&nbsp;");

@ -96,7 +96,8 @@ public final class HTTPDemon implements serverHandler, Cloneable {
public static final int ERRORCASE_MESSAGE = 4; public static final int ERRORCASE_MESSAGE = 4;
public static final int ERRORCASE_FILE = 5; public static final int ERRORCASE_FILE = 5;
private static final File TMPDIR = new File(System.getProperty("java.io.tmpdir")); private static final File TMPDIR = new File(System.getProperty("java.io.tmpdir"));
private static final FileItemFactory DISK_FILE_ITEM_FACTORY = new DiskFileItemFactory(5 * 1024 * 1024, TMPDIR); private static final int SIZE_FILE_THRESHOLD = 20 * 1024 * 1024;
private static final FileItemFactory DISK_FILE_ITEM_FACTORY = new DiskFileItemFactory(SIZE_FILE_THRESHOLD, TMPDIR);
private static AlternativeDomainNames alternativeResolver = null; private static AlternativeDomainNames alternativeResolver = null;
@ -815,6 +816,9 @@ public final class HTTPDemon implements serverHandler, Cloneable {
throw new IOException("the request is not a multipart-message!"); throw new IOException("the request is not a multipart-message!");
} }
// reject too large uploads
if (request.getContentLength() > SIZE_FILE_THRESHOLD) throw new IOException("FileUploadException: uploaded file too large = " + request.getContentLength());
// check if we have enough memory // check if we have enough memory
if (!MemoryControl.request(request.getContentLength() * 3, false)) { if (!MemoryControl.request(request.getContentLength() * 3, false)) {
throw new IOException("not enough memory available for request. request.getContentLength() = " + request.getContentLength() + ", MemoryControl.available() = " + MemoryControl.available()); throw new IOException("not enough memory available for request. request.getContentLength() = " + request.getContentLength() + ", MemoryControl.available() = " + MemoryControl.available());

Loading…
Cancel
Save