[gst-devel] Memory usage

Tiago Katcipis katcipis at inf.ufsc.br
Wed Aug 19 15:43:24 CEST 2009


sorry, i forgot the source code :-).

On Wed, Aug 19, 2009 at 10:41 AM, Tiago Katcipis <katcipis at inf.ufsc.br>wrote:

> Im working on an streaming server and i need to have several pipes running
> at the same time, i started to do some tests to see how much memory and how
> much threads would something like that use on gstreamer. So i wrote a very
> simple application that starts a lot of pipelines, where the pipelines will
> be simply an faksrc ! fakesink. I started the tests and i realized that even
> for a simple task as running an fakesrc ! fakesink im using a lot of memory.
>
> with 1 pipe:
>
> Tasks:   2 total,   1 running,   1 sleeping,   0 stopped,   0 zombie
> Cpu(s): 51.5%us,  1.0%sy,  0.0%ni, 47.5%id,  0.0%wa,  0.0%hi,  0.0%si,
> 0.0%st
> Mem:   2027232k total,   963800k used,  1063432k free,    75976k buffers
> Swap:   995988k total,        0k used,   995988k free,   430676k cached
>
>   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+
> COMMAND
>
>  6402 katcipis  20   0 26204 4060 2548 R 99.9  0.2   0:48.04
> multiple_pipes
>
>  6400 katcipis  20   0 26204 4060 2548 S  0.0  0.2   0:00.04
> multiple_pipes
>
> with 2 pipes:
>
> Tasks:   3 total,   2 running,   1 sleeping,   0 stopped,   0 zombie
> Cpu(s): 96.8%us,  1.8%sy,  0.0%ni,  1.3%id,  0.0%wa,  0.0%hi,  0.0%si,
> 0.0%st
> Mem:   2027232k total,   965044k used,  1062188k free,    76804k buffers
> Swap:   995988k total,        0k used,   995988k free,   430752k cached
>
>   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+
> COMMAND
>
>  6541 katcipis  20   0 42600 4092 2544 R 95.3  0.2   0:16.22
> multiple_pipes
>
>  6542 katcipis  20   0 42600 4092 2544 R 95.3  0.2   0:16.36
> multiple_pipes
>
>  6539 katcipis  20   0 42600 4092 2544 S  0.0  0.2   0:00.04 multiple_pipes
>
> with 3 pipes:
>
> Tasks:   4 total,   2 running,   2 sleeping,   0 stopped,   0 zombie
> Cpu(s): 90.6%us,  3.1%sy,  0.0%ni,  6.2%id,  0.0%wa,  0.0%hi,  0.0%si,
> 0.0%st
> Mem:   2027232k total,   964608k used,  1062624k free,    77528k buffers
> Swap:   995988k total,        0k used,   995988k free,   430752k cached
>
>   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+
> COMMAND
>
>  6563 katcipis  20   0 51820 4116 2544 S 62.5  0.2   0:17.44
> multiple_pipes
>
>  6566 katcipis  20   0 51820 4116 2544 R 62.5  0.2   0:16.36
> multiple_pipes
>
>  6565 katcipis  20   0 51820 4116 2544 R 50.0  0.2   0:13.94
> multiple_pipes
>
>  6561 katcipis  20   0 51820 4116 2544 S  0.0  0.2   0:00.04 multiple_pipes
>
>
>
> i have another test where i run an gnomevfssrc and a decodebin and the
> numbers are even worse:
>
> with 1 pipe:
>
> Tasks:   2 total,   0 running,   2 sleeping,   0 stopped,   0 zombie
> Cpu(s):  8.1%us,  2.7%sy,  0.0%ni, 89.2%id,  0.0%wa,  0.0%hi,  0.0%si,
> 0.0%st
> Mem:   2027232k total,   972104k used,  1055128k free,    78080k buffers
> Swap:   995988k total,        0k used,   995988k free,   430760k cached
>
>   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+
> COMMAND
>
>  6603 katcipis  20   0 43724  12m 5212 S  0.0  0.6   0:00.10
> multiple_pipes
>
>  6605 katcipis  20   0 43724  12m 5212 S  0.0  0.6   0:00.12 multiple_pipes
>
>
> with 2 pipes:
>
> Tasks:   3 total,   0 running,   3 sleeping,   0 stopped,   0 zombie
> Cpu(s): 15.7%us,  4.3%sy,  0.0%ni, 79.8%id,  0.0%wa,  0.2%hi,  0.0%si,
> 0.0%st
> Mem:   2027232k total,   972604k used,  1054628k free,    78548k buffers
> Swap:   995988k total,        0k used,   995988k free,   430760k cached
>
>   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+
> COMMAND
>
>  6622 katcipis  20   0 53348  13m 5208 S  0.0  0.7   0:00.08
> multiple_pipes
>
>  6624 katcipis  20   0 53348  13m 5208 S  0.0  0.7   0:00.10
> multiple_pipes
>
>  6625 katcipis  20   0 53348  13m 5208 S  0.0  0.7   0:00.04 multiple_pipes
>
> with 3 pipes:
>
> Tasks:   4 total,   0 running,   4 sleeping,   0 stopped,   0 zombie
> Cpu(s):  6.8%us,  4.5%sy,  0.0%ni, 88.6%id,  0.0%wa,  0.0%hi,  0.0%si,
> 0.0%st
> Mem:   2027232k total,   974368k used,  1052864k free,    79328k buffers
> Swap:   995988k total,        0k used,   995988k free,   430760k cached
>
>   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+
> COMMAND
>
>  6960 katcipis  20   0 62136  13m 5208 S  9.6  0.7   0:00.04
> multiple_pipes
>
>  6957 katcipis  20   0 62136  13m 5208 S  0.0  0.7   0:00.10
> multiple_pipes
>
>  6959 katcipis  20   0 62136  13m 5208 S  0.0  0.7   0:00.08
> multiple_pipes
>
>  6962 katcipis  20   0 62136  13m 5208 S  0.0  0.7   0:00.02 multiple_pipes
>
>
> i also realized that for every stream there is a thread, is there some way
> to use one thread for multiple pipes (or multiple streams)? is something
> that i did terribly wrong or it is normal this usage of memory? if it is
> normal, can i configure gstreamer to use less memory? considering that
> gstreamer works even in embedded systems i suppose im doing something very
> wrong on there is some way to use less resources.
>
> im attaching the source code of my tests, the simple one using fakesrc and
> the complete one using gnomevfs and decodebin.
>
> best regards,
> Katcipis
>
>
>


-- 
"it might be a profitable thing to learn Java, but it has no intellectual
value whatsoever" Alexander Stepanov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20090819/13f261f8/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: multiple_pipes.c
Type: text/x-csrc
Size: 6573 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20090819/13f261f8/attachment.c>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: multiple_pipes_simple.c
Type: text/x-csrc
Size: 2768 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20090819/13f261f8/attachment-0001.c>


More information about the gstreamer-devel mailing list