On 11/27/08 17:48, Andrei Pelinescu-Onciul wrote:
On Nov 27, 2008 at 17:15, Daniel-Constantin Mierla
<miconda(a)gmail.com> wrote:
Hello,
There seem to be many places where static buffers are used for building
strings. It is clear they are used just for usage inside some functions,
with no need to keep the value for usage somewhere else.
Would defining a global static buffer to be used for such cases make
sense? The access to the pointer and size can be given via functions.
In general I think we should move away from static buffers
(we will need to get rid of a lot of them for the async. stuff so
most of this work will have to be redone anyway).
these are one time usage, without any concurrency. They are basically
used inside functions to avoid alloc/free for each function. I think
this is not affected by async stuff.
There could be couple of such buffers to be used
in the cases one
function need concurrent access to more than one ... opinions? It will
reduce memory space reserved and used...
I'm afraid it would introduce a lot of new bugs (you must make sure your
functions that call each other do not use the same static buffer and
that you do not call function using the same buffer in a row).
As far as the memory space is concerned, it depends on how many of them
are used.
At least in sip-router core less then 1Mb is used in static vars of all
kinds:
in the modules might be bigger... I think with 5 buffers, each of 1k, we
can satisfy all needs.
Cheers,
Daniel
objdump -j .bss -j .data -t ser|perl -ne 'END {
print "\nTotal: $s
bytes\n" }; @l=split; $s+= hex $l[4]; print hex($l[4]),
"\t-\t$l[5]\t$l[1]\t$l[2]\t$l[3]\n" '
=> Total: 4604741 bytes in staitic vars, but 4M is the pkg mem pool
=> 410437 bytes from which 2*139276 are tcp local timers and
65k udp recv buffers => 66349 in other static vars and buffers.
So I guess it doesn't make sense to try to go beyond 66k...
Andrei
_______________________________________________
sr-dev mailing list
sr-dev(a)lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
--
Daniel-Constantin Mierla
http://www.asipto.com