|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2005-06-06 00:00 UTC] sniper@php.net
[2005-06-06 06:10 UTC] s dot araya at numisys dot com dot ar
[2005-06-07 13:43 UTC] s dot araya at numisys dot com dot ar
[2005-06-07 23:31 UTC] sniper@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Fri Oct 24 13:00:02 2025 UTC |
Description: ------------ Hello, I'm using gmp library to perform a function which uses a few operations with large integer values. My script runs in console mode (at least four hours of processing), scanning a big mysql table and invoking the function to calculate big integer values that are stored in the table. But, in case the table has a lot of rows to process, the script halt with 'out of memory' error. Studying the problem I realized that GMP functions didn't free memory (when I issue unset( <resource> ) ) and continue allocate memory in every function pass. There is no gmp_free() in php manual. Is there any workaround to avoid the problem? Thank you, Sebasti?n Araya Numisys S.A. Reproduce code: --------------- for( $i = 0; $i = 1000000; $i++) store_calc_value( $i ); function store_calc_value( $v ) { $a = gmp_mul( $v, "0x100000000" ); $b = gmp_mul( $a, "0x1000" ); $sql = "Insert into t (big, value) Values ("; $sql.= gmp_strval( $a ) . ", " . gmp_strval( $b ) . ")"; mysql_query( $sql ); unset( $a ); // gmp_free( $a ); unset( $b ); // gmp_free( $b ); } Expected result: ---------------- I expect that memory has to be freed once returning from function store_calc_value(). A simple top command in another Linux session, tell me that php resource continue to grow.