Sponsored Content
Top Forums Web Development PHP Fatal error: Allowed memory size of 134217728 bytes exhausted Post 302468375 by Neo on Tuesday 2nd of November 2010 01:33:55 PM
Old 11-02-2010
OK, finally, 8 months after posting this php memory bug, I figured it out, hahaha.

Basically, I used the PHP error_log() function to print the memory allocation using memory_get_usage() and discovered that an array was using a lot of memory, and traced it to $string (using strlen($string) in the debug log) that was passed to the function used in a regex to create the array.

As a temporary fix, I created a PHP conditional to test the memory usage and avoid the offending foreach statement until I could come up with a solution (debugging the entire process, step-by-step).

The solution was to simply define MAX_STR and take a sub string of the huge $string with substr($string,0,MAX_STR), which was using all the memory in the foreach loop in the function.


Then, to clean up, I defined MAX_MEM to insure that the maximum memory of this PHP thread would alway be less than the max PHP memory allocated in the php.ini file.

PHP Code:
define('MAX_STR',512000);
define('MAX_MEM',96000000);
$string substr($string,0,MAX_STR);
if(
memory_get_usage() < MAX_MEM){//blah blah} 
Housekeeping work... done!
 

7 More Discussions You Might Find Interesting

1. AIX

How to increase memory size allowed to one process

Hi, I have migrated some processing from true64 --> AIX 5.3. my problem is to process large files in memory by diff or awk program. I need to load app. 1.3 GB of data into memory but it fails that there is not enough memory. I need following: diff file1 file2 orig. aix diff err... (2 Replies)
Discussion started by: Petr
2 Replies

2. Shell Programming and Scripting

Memory exhausted in awk

Dear All, I have executed a awk script in linux box which consists of 21 Million records.And i have two mapping files of 500 and 5200 records.To my surprise i found an error awk: cmd. line:19: (FILENAME=/home/FILE FNR=21031272) fatal: Memory exhausted. Is there any limitation for records... (3 Replies)
Discussion started by: cskumar
3 Replies

3. Shell Programming and Scripting

Compare lines in two files (Memory getting exhausted)

Hi, Could someone please help me with the best approach to compare lines from one file to another? Here is how I have entries - File 1 a1 a2 a3 a4 a9 a10 a15 File2 a5 a6 a15 (5 Replies)
Discussion started by: sncoupons
5 Replies

4. Solaris

PHP 5.3 compile on Solaris 10 : make distclean :: fatal error

I'm trying to install PHP 5.3 on Solaris 10 . I'm using etc/apache2 and installed mysql 5.1.39. When I tried to compile PHP 5.3, with the following configure text, ./configure --with-mysql=/usr/local/mysql \ --with-mysqli=/usr/local/mysql/bin/mysql_config --with-zlib-dir=/usr/local \... (21 Replies)
Discussion started by: ppa108
21 Replies

5. UNIX for Advanced & Expert Users

Out of Memory error when free memory size is large

I was running a program and it stopped and showed "Out of Memory!". at that time, the RAM used by this process is around 4G and the free memory size of the machine is around 30G. Does anybody know what maybe the reason? this program is written with Perl. the OS of the machine is Solaris U8. And I... (1 Reply)
Discussion started by: lilili07
1 Replies

6. Shell Programming and Scripting

Error PHP Fatal error: Allowed memory size of 67108864 bytes exhausted(tried to allocate 401 bytes)

While running script I am getting an error like Few lines in data are not being processed. After googling it I came to know that adding such line would give some memory to it ini_set("memory_limit","64M"); my input file size is 1 GB. Is that memory limit is based on RAM we have on... (1 Reply)
Discussion started by: elamurugu
1 Replies

7. What is on Your Mind?

PHP Fatal Errors During SSL Cert Management - PHP Fatal error: xc_fcntl_mutex failed

Today, I noticed some errors in our SSL cert renewal log files, mostly related to domains where the IP address had changed. Concerned about this, rebuilt out SSL cert, which normally goes well without a hiccup. However, for today, for some reason which I cannot explain, there was a PHP error... (0 Replies)
Discussion started by: Neo
0 Replies
PHPVERSION(3)								 1							     PHPVERSION(3)

phpversion - Gets the current PHP version

SYNOPSIS
string phpversion ([string $extension]) DESCRIPTION
Returns a string containing the version of the currently running PHP parser or extension. PARAMETERS
o $extension - An optional extension name. RETURN VALUES
If the optional $extension parameter is specified, phpversion(3) returns the version of that extension, or FALSE if there is no version information associated or the extension isn't enabled. EXAMPLES
Example #1 phpversion(3) example <?php // prints e.g. 'Current PHP version: 4.1.1' echo 'Current PHP version: ' . phpversion(); // prints e.g. '2.0' or nothing if the extension isn't enabled echo phpversion('tidy'); ?> Example #2 PHP_VERSION_ID example and usage <?php // PHP_VERSION_ID is available as of PHP 5.2.7, if our // version is lower than that, then emulate it if (!defined('PHP_VERSION_ID')) { $version = explode('.', PHP_VERSION); define('PHP_VERSION_ID', ($version[0] * 10000 + $version[1] * 100 + $version[2])); } // PHP_VERSION_ID is defined as a number, where the higher the number // is, the newer a PHP version is used. It's defined as used in the above // expression: // // $version_id = $major_version * 10000 + $minor_version * 100 + $release_version; // // Now with PHP_VERSION_ID we can check for features this PHP version // may have, this doesn't require to use version_compare() everytime // you check if the current PHP version may not support a feature. // // For example, we may here define the PHP_VERSION_* constants thats // not available in versions prior to 5.2.7 if (PHP_VERSION_ID < 50207) { define('PHP_MAJOR_VERSION', $version[0]); define('PHP_MINOR_VERSION', $version[1]); define('PHP_RELEASE_VERSION', $version[2]); // and so on, ... } ?> NOTES
Note This information is also available in the predefined constant PHP_VERSION. More versioning information is available using the PHP_VERSION_* constants. SEE ALSO
PHP_VERSION constants, version_compare(3), phpinfo(3), phpcredits(3), php_logo_guid(3), zend_version(3). PHP Documentation Group PHPVERSION(3)
All times are GMT -4. The time now is 07:19 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy