This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
mktables memory reduction
authorNicholas Clark <nick@ccl4.org>
Sat, 2 Jun 2012 15:32:44 +0000 (16:32 +0100)
committerKarl Williamson <public@khwilliamson.com>
Sat, 2 Jun 2012 16:12:46 +0000 (10:12 -0600)
commitc292d35a225572156ccde6f3a812f532f4347fad
treea58e0e0aece37f78ea07fc9cb50f2b383d28fe64
parent6fca57a162544ba8c19981fe8c8c0f7ec24dd1d7
mktables memory reduction

Does the attached patch make sense? It lowers RAM and CPU usage by about 10%
on Linux, and 6% on FreeBSD.

Nicholas Clark

>From fe46bd796c282f6a6e4793afaf847e04d3be3524 Mon Sep 17 00:00:00 2001
From: Nicholas Clark <nick@ccl4.org>
Date: Mon, 7 May 2012 09:58:13 +0200
Subject: [PATCH] In mktables, lazily compute the 'standard_form' for Ranges.

Instead of calculating the standard form up front, calculate it only when
needed and cache the result. There are 368676 non-special objects, but
the standard form is only requested for 22047 of them. For the systems I
tested on, this reduces RAM and CPU usage by about 10% on Linux, and 6% on
FreeBSD.

This is more significant than it may first seem, because mktables is the
largest RAM user of anything run during the build process, so this reduces
the build process peak RAM requirement.
lib/unicore/mktables