Hi HolgeR,
That's probably an issue with the C runtime libraries memory allocation
strategy. Often, allocators will not immediately free all memory, keeping
some around for future allocations, making them much faster. The drawback
is what you are seeing -- the memory usage of the process does not
decrease.
By the way, I made some major changes in Xalan 1.8 to fix the
xsl:strip-space/xsl:preserve-space performance problem you reported. If
you have a chance to test it, that would be great.
Thanks!
Dave
|---------+--------------------------->
| | Holger Fl�rke |
| | <[EMAIL PROTECTED]|
| | ic.de> |
| | |
| | 05/26/2004 12:14|
| | AM |
| | Please respond |
| | to xalan-c-users|
|---------+--------------------------->
>--------------------------------------------------------------------------------------------------------------------------------------|
|
|
| To: [email protected]
|
| cc: (bcc: David N Bertoni/Cambridge/IBM)
|
| Subject: Re: Memory Leak in Xalan-C 1.7?
|
>--------------------------------------------------------------------------------------------------------------------------------------|
I have some more information about this topic. This behaviour could be
observed on Xalan-C 1.8 (unmodified) and Xerces-C 2.5 (unmodified) on
SuSE9.1, too. The good news: It is not a memory leak.
If I destroy each stylesheet after one compile/transform run, the memory
will not grow. I think this behavior can be explained by some preallocated
(and reused) memory within Xalan. But how I get rid of this memory? The
destruction of XalanTransformer, even a terminate of the whole library does
not seem to work.
HolgeR
Holger Fl�rke schrieb:
> Hi there,
>
> I have tried to compile multiple Stylesheets, store the pointers to
> the compiled stylesheets within a stl list, do some transformations, and
> destroy the stylesheets one after another. After each stylesheet
> compilation and after each stylesheet destruction, I glimpsed into
> /proc/self/statm, the memory usage of the current process on linux
> machines. I was wondering why the memory usage stays at a high level
> even after the destruction of the compiled stylesheets and the
> termination of the library.
>
> Is there anywhere a memory leak with the usage of multiple compiled
> stylesheets? Or am I wrong with my interpretation of the memory usage of
> the process? Does anybody see the same results?
>
> I have attached the source of the test, a modified version of the
> compiled stylesheet example. It does only run on linux machines. You
> have to put the foo*-files from the compiled stylesheet sample within
> the same directory. I used this on RedHat WS3.0 with "gcc version 3.2.3
> 20030502 (Red Hat Linux 3.2.3-24)", Xalan-C 1.7 (slightly modifed) and
> Xerces-C 2.4 (slightly modifed). My results are:
> Start
> 821 821 763 4 813 4 58
> compiled Stylesheet #0
> 1140 1140 1052 4 1102 34 88
> compiled Stylesheet #1
> 1150 1150 1052 4 1102 44 98
> compiled Stylesheet #2
> 1157 1157 1052 4 1102 51 105
> compiled Stylesheet #3
> 1166 1166 1052 4 1102 60 114
> compiled Stylesheet #4
> 1173 1173 1052 4 1102 67 121
> compiled Stylesheet #5
> 1180 1180 1052 4 1102 74 128
> compiled Stylesheet #6
> 1186 1186 1052 4 1102 80 134
> compiled Stylesheet #7
> 1192 1192 1052 4 1102 86 140
> compiled Stylesheet #8
> 1199 1199 1052 4 1102 93 147
> compiled Stylesheet #9
> 1206 1206 1052 4 1102 100 154
> ...
> destroying Stylesheet
> 1262 1262 1100 4 1150 108 162
> destroying Stylesheet
> 1262 1262 1100 4 1150 108 162
> destroying Stylesheet
> 1262 1262 1100 4 1150 108 162
> destroying Stylesheet
> 1262 1262 1100 4 1150 108 162
> destroying Stylesheet
> 1262 1262 1100 4 1150 108 162
> destroying Stylesheet
> 1262 1262 1100 4 1150 108 162
> destroying Stylesheet
> 1262 1262 1100 4 1150 108 162
> destroying Stylesheet
> 1262 1262 1100 4 1150 108 162
> destroying Stylesheet
> 1262 1262 1100 4 1150 108 162
> destroying Stylesheet
> 1262 1262 1100 4 1150 108 162
> Xalan terminated
> 1264 1264 1102 4 1152 108 162
> Xerces terminated
> 1266 1266 1104 4 1154 108 162
> End
>
> Regards,
>
> HolgeR
--
holger floerke d o c t r o n i c
email [EMAIL PROTECTED] information publishing + retrieval
phone +49 2222 9292 90 http://www.doctronic.de