From: Alex Rousskov Date: Fri, 20 May 2016 18:16:19 +0000 (-0600) Subject: Fixed icons loading speed. X-Git-Tag: SQUID_4_0_11~17 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5e051d48bb97f4209cee4573be4d9f3d5840ea8d;p=thirdparty%2Fsquid.git Fixed icons loading speed. Since trunk r14100 (Bug 3875: bad mimeLoadIconFile error handling), each icon was read from disk and written to Store one character at a time. I did not measure startup delays in production, but in debugging runs, fixing this bug sped up icons loading from 1 minute to 4 seconds. --- diff --git a/src/mime.cc b/src/mime.cc index a2b638301d..c96c715128 100644 --- a/src/mime.cc +++ b/src/mime.cc @@ -24,6 +24,8 @@ #include "Store.h" #include "StoreClient.h" +#include + #if HAVE_SYS_STAT_H #include #endif @@ -422,12 +424,11 @@ MimeIcon::created(StoreEntry *newEntry) if (status == Http::scOkay) { /* read the file into the buffer and append it to store */ int n; - char *buf = (char *)memAllocate(MEM_4K_BUF); - while ((n = FD_READ_METHOD(fd, buf, sizeof(*buf))) > 0) - e->append(buf, n); + std::array buf; + while ((n = FD_READ_METHOD(fd, buf.data(), buf.size())) > 0) + e->append(buf.data(), n); file_close(fd); - memFree(buf, MEM_4K_BUF); } e->flush();