[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