]> Sergey Matveev's repositories - public-inbox.git/commit
ds: tmpio: avoid Perl target cache
authorEric Wong <e@80x24.org>
Wed, 6 Oct 2021 11:50:42 +0000 (11:50 +0000)
committerEric Wong <e@80x24.org>
Wed, 6 Oct 2021 20:21:04 +0000 (20:21 +0000)
commit3472c60fc72dfb5d1152c4015f54be1644443a20
treef688b228cb310d39e267966f43bbe1ec4b70391a
parenta80fd0c8e19464f95dec5a5c2d128a1614f51ee5
ds: tmpio: avoid Perl target cache

The use of `substr' here an argument to `print' was causing Perl
to internally cache its target buffer.  Since `syswrite()'
already offers a buffer offset arg and length limits, just use
`syswrite' directly.  We were using autoflush anyways, so the
lack of buffering was of no concern performance-wise.

The target buffer could get to roughly ~10MB under some loads,
but it was usually a cold path and using memory which cannot be
released nor reused in other places.

note: IO::Handle::write uses `substr' internally, too;
so nothing would be gained using IO::Handle:write.
lib/PublicInbox/DS.pm