ID:               19796
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
-Status:           Open
+Status:           Bogus
 Bug Type:         Performance problem
 Operating System: Digital Unix V4.0F
 PHP Version:      4CVS-2002-10-07
 New Comment:

Thank you for taking the time to report a problem with PHP.
Unfortunately you are not using a current version of PHP -- 
the problem might already be fixed. Please download a new
PHP version from http://www.php.net/downloads.php

If you are able to reproduce the bug with one of the latest
versions of PHP, please change the PHP version on this bug report
to the version you tested and change the status back to "Open".
Again, thank you for your continued support of PHP.


Previous Comments:
------------------------------------------------------------------------

[2002-10-07 06:33:42] [EMAIL PROTECTED]

I need to generate some reports and I need to have some table's data as
a whole as some columns of a row in this table and other tables
reference other rows of this table. The PHP version is 4.0.4pl1, Apache
is 1.3.14, and Oracle 8.1.7.

So basically, I do this inside a function:
.
.
.
while (ora_fetch($cursor)) {
  $key = ora_getcolumn($cursor, 0); 
  for ($j=0; $j<ora_numcols($cursor); $j++) {
    $col_name=ora_columnname($cursor, $j);
    $col_value = ora_getcolumn($cursor,$j);
    $ret_array[$key][$col_name] = $col_value;
  }
}
.
.
.

Here are my problems:
  - after the end of the script execution, the CPU load (seen by top)
goes up to 99.90% for several minutes (for 4000 entries of 20 columns,
it lasts about 2 minutes); during the script execution and HTTP
transfer, the CPU load is normal, once the file transfer is over, the
load becomes 99.x %
  - if I do this on a just started Apache, a lot of memory is consumed
(normal) but not released:

Before:
nobody    10159  0.0  0.1 14.8M 2.3M ??       S    14:42:45     0:00.25
/www/bin/httpd
After
nobody    10159 99.9  0.7 42.7M  29M ??       R    14:42:45     0:36.23
/www/bin/httpd
                ^^^^ CPU  ^^^^  ^^^^^RAM

  - I did some experiements and observed this:
     - if I do an exit in the returning function just before "return
$ret_array", then the high CPU load does not occurs (I'm not sure about
memory leak)
     - if now I do an exit just after calling the function, then the
high CPU load occurs (I'm not sure about memory leak). It looks like if
$ret_array "moves" out of the function, a high CPU load occurs... I
have tried with references, unset, etc... before/after calling the
function to help the garbage collection at the end of the script but it
doesn't help, I always have the high CPU load.

    Do you have any idea of what's happening?


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=19796&edit=1

Reply via email to