From 4a9d61f75baf66c6c6fed350477d2a48ff3814e6 Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Sat, 29 Aug 2009 23:38:32 +0000 Subject: 1) Allocate css_style bytecode in 16 byte chunks 2) Cache unused css_style objects with chunks of size 16, 32, 48, and 64 bytes The above should reduce heap churn somewhat. Further improvements are possible: 1) Make the property parsers write the parsed values direct into the output bytecode, instead of into a temporary object which is then merged into the output. 2) Perform similar caching for css_rule and selector objects. 3) Shrink-wrap finalised output styles rather than leaving them oversized. 4) Perform measurement to determine the optimal chunk sizes (power-of-2 makes maths simple and 16 is plucked from thin air) and cache bucket count/sizes. svn path=/trunk/libcss/; revision=9502 --- src/utils/utils.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/utils') diff --git a/src/utils/utils.h b/src/utils/utils.h index 1c380f8..26c9a08 100644 --- a/src/utils/utils.h +++ b/src/utils/utils.h @@ -30,6 +30,10 @@ #define UNUSED(x) ((x)=(x)) #endif +#ifndef N_ELEMENTS +#define N_ELEMENTS(x) (sizeof((x)) / sizeof((x)[0])) +#endif + css_fixed number_from_lwc_string(lwc_string *string, bool int_only, size_t *consumed); -- cgit v1.2.3