Hi!

I am working on a realtime audio application in which I use clutter for
gui. (Don't know yet whether this is a good idea or not. Seems to
perform acceptable yet)

I read a howto about building RT apps.
https://rt.wiki.kernel.org/articles/b/u/i/HOWTO~_Build_an_RT-application_6066.html
https://rt.wiki.kernel.org/articles/t/h/r/Threaded_RT-application_with_memory_locking_and_stack_handling_example_f48b.html

It suggests minimizing the number of page faults during runtime by
locking the memory (mlockall()) and allocating a huge buffer on the heap and deallocating it, causing any malloc() calls later to get memory from
the resident memory area which was given to the process in the first
allocation.

I measure the number of page faults in the process and I had to
realize: gtk_clutter_init() always causes 2 major page faults. Its ok as
it is just an initialization function, but also during runtime some
minor page faults happen (magnitude of thousands per 5 sec when using heavily) and an extra 50Mb of
memory is allocated beside my huge heap buffer. Part of it may be the
stack for my threads (~24Mb), but the other part can only come from a
library I use. I try to rule out the libs systematically (boost, jack,
gtk, clutter), but clutter is suspicious with its 2 major page faults in
the init function. (It can be gtk as well, as its a gtk_clutter_init()
call :-))

So: Is clutter using memory allocation methods other from stack and
malloc()? Or am I miss something in the whole concept?

Thanks,
Dennis
_______________________________________________
clutter-app-devel-list mailing list
[email protected]
http://lists.clutter-project.org/listinfo/clutter-app-devel-list

Reply via email to