freetype-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ft-devel] Determining Upper Bound of memory consumption for a syst


From: Maggy Anastasia
Subject: Re: [ft-devel] Determining Upper Bound of memory consumption for a system using FT cache subsystem
Date: Mon, 15 Mar 2010 15:07:38 +0800

Hi Werner

Thanks alot for the reply. I have looked at your suggestion and tried to understand how it works.
I have one question regarding this. I understand that after we set env variable FT2_ALLOC_COUNT_MAX and FT2_DEBUG_MEMORY on runtime, the value for FT2_ALLOC_COUNT_MAX will be assigned to  table->alloc_total_max inside ft_mem_debug_init() (in ftdbgmem.c). This value will later on be used to bound the memory allocation. However I am confused that inside function ft_mem_debug_alloc() there is the following check:

 if ( table->bound_total                                             &&
         table->alloc_total_max - table->alloc_current > (FT_ULong)size )
      return NULL;

Does the above check aim to bound memory allocation to up to table->alloc_total_max? If that is the case, should the check be the following instead:

 if ( table->bound_total                                             &&
         table->alloc_total_max - table->alloc_current < (FT_ULong)size )
      return NULL;

Please let me know if I understand wrongly.

best regards

Maggy Anastasia Suryanto
On Sat, Mar 13, 2010 at 8:06 PM, Werner LEMBERG <address@hidden> wrote:

> (1) static array: currently we know that all memory consumption by
> freetype is done through malloc calls and its variants. However, is
> there any other memory used in freetype, such as global arrays,
> which are used for memory allocation? If so, do they need any kind
> of configuration?

Yes, there are static arrays, see for example src/psnames/pstables.h.
However, they can be put into read-only memory since all of them are
tagged with the `const' modifier.

> (2) Is there a way for determining the upper bound of memory usage
> for freetype when cache is being used.  I know that we can set the
> upper bound for cache nodes (glyph image, cmap, sbitchace, etc.),
> but is there a way to determine the memory consumption for FT_FACE
> and FT_SIZE?  From what I have seen regarding this, we can only
> limit the number of FT_FACE and FT_SIZE; however, how to determine
> the memory requirements for a given number of allowable FT_FACE and
> FT_SIZE. I am using freetype for an embedded system at the moment,
> thus, memory is really a constraint, and it's very important for me
> to be able to determine the size of the heap.

I suggest that you use the FreeType memory debugger (see the
FT_DEBUG_MEMORY option in docs/DEBUG).  For debugging, the heap size
can be limited with the FT2_ALLOC_TOTAL_MAX environment variable.  Its
results can be then used for your own memory allocation routines.


   Werner


reply via email to

[Prev in Thread] Current Thread [Next in Thread]