From a3cbd8d01434fbac731fd3f88a8fc77b020787e1 Mon Sep 17 00:00:00 2001 From: "Craig A. Berry" Date: Tue, 9 Nov 2010 20:20:12 -0600 Subject: [PATCH] Make the buffer size for the perlio layer a macro. The 4K buffer size was chosen way back in bb9950b. Significant performance improvements are seen with larger buffer sizes, though the optimum size likely varies by architecture and workload. For starters, we'll leave the default as-is but make the buffer size a macro and thus user-configurable via: sh Configure -Accflags=-DPERLIO_BUFSIZ= Choosing a better (larger) default is still TODO. --- perlio.c | 2 +- perlio.h | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/perlio.c b/perlio.c index 4073c97..5b39679 100644 --- a/perlio.c +++ b/perlio.c @@ -4120,7 +4120,7 @@ PerlIOBuf_get_base(pTHX_ PerlIO *f) if (!b->buf) { if (!b->bufsiz) - b->bufsiz = 4096; + b->bufsiz = PERLIO_BUFSIZ; Newxz(b->buf,b->bufsiz, STDCHAR); if (!b->buf) { b->buf = (STDCHAR *) & b->oneword; diff --git a/perlio.h b/perlio.h index a6902d4..a1436c6 100644 --- a/perlio.h +++ b/perlio.h @@ -189,6 +189,10 @@ PERL_EXPORT_C void PerlIO_clone(pTHX_ PerlInterpreter *proto, #define BUFSIZ 1024 #endif +#ifndef PERLIO_BUFSIZ +#define PERLIO_BUFSIZ 4096 +#endif + #ifndef SEEK_SET #define SEEK_SET 0 #endif -- 2.7.4