|
| Memory leak dbx_fetch_row Fra : Leif Neland |
Dato : 26-02-09 15:56 |
|
PHP Version 5.2.0-8+etch13 (Debian)
memory_get_usage() vokser med omkring 200 bytes pr loop, afhængig af
recordsize; den falder dog også engang imellem.
Hvor bliver de bytes af, og kan jeg gøre noget?
unset($r) gør ingen forskel.
$_db_handle = dbx_connect(DBX_MSSQL,....,DBX_PERSISTENT);
$q = dbx_query($_db_handle,$query,DBX_RESULT_UNBUFFERED) or die
("SQL_error");
while($r = dbx_fetch_row($q)) {
echo memory_get_usage();
echo "<br>";
flush();
unset ($r);
};
Leif
| |
Martin (26-02-2009)
| Kommentar Fra : Martin |
Dato : 26-02-09 17:43 |
|
Leif Neland wrote:
> PHP Version 5.2.0-8+etch13 (Debian)
>
> memory_get_usage() vokser med omkring 200 bytes pr loop, afhængig af
> recordsize; den falder dog også engang imellem.
>
> Hvor bliver de bytes af, og kan jeg gøre noget?
> unset($r) gør ingen forskel.
>
> $_db_handle = dbx_connect(DBX_MSSQL,....,DBX_PERSISTENT);
Prøv at lade vær med at have en vedvarende link til databasen, og se om
det skulle hjælpe?
> $q = dbx_query($_db_handle,$query,DBX_RESULT_UNBUFFERED) or die
> ("SQL_error");
>
> while($r = dbx_fetch_row($q)) {
> echo memory_get_usage();
> echo "<br>";
> flush();
> unset ($r);
> };
>
> Leif
>
>
| |
Leif Neland (26-02-2009)
| Kommentar Fra : Leif Neland |
Dato : 26-02-09 22:41 |
|
Martin skrev:
> Leif Neland wrote:
>> PHP Version 5.2.0-8+etch13 (Debian)
>>
>> memory_get_usage() vokser med omkring 200 bytes pr loop, afhængig af
>> recordsize; den falder dog også engang imellem.
>>
>> Hvor bliver de bytes af, og kan jeg gøre noget?
>> unset($r) gør ingen forskel.
>>
>> $_db_handle = dbx_connect(DBX_MSSQL,....,DBX_PERSISTENT);
>
> Prøv at lade vær med at have en vedvarende link til databasen, og se om
> det skulle hjælpe?
>
Ingen forskel.
Leif
| |
Martin (26-02-2009)
| Kommentar Fra : Martin |
Dato : 26-02-09 23:54 |
|
Leif Neland wrote:
> Martin skrev:
>> Leif Neland wrote:
>>> PHP Version 5.2.0-8+etch13 (Debian)
>>>
>>> memory_get_usage() vokser med omkring 200 bytes pr loop, afhængig af
>>> recordsize; den falder dog også engang imellem.
>>>
>>> Hvor bliver de bytes af, og kan jeg gøre noget?
>>> unset($r) gør ingen forskel.
>>>
>>> $_db_handle = dbx_connect(DBX_MSSQL,....,DBX_PERSISTENT);
>>
>> Prøv at lade vær med at have en vedvarende link til databasen, og se
>> om det skulle hjælpe?
>>
> Ingen forskel.
Æv bæv..
Er der noget caching på serveren APC eller lign?
og hvad med caching i databasen?
Jeg synes ihvertfald det ligner noget caching af en eller anden art.
Nu kender jeg ikke så godt til MSSQL, men ved at i MySQL er der noget
internt cache, så "mest brugte" queries bliver gemt i rammen.
(denne option er på normalt på 2mb i MySQL)
| |
|
|