Checking memory_limit in PHP

The 'memory_limit' is the maximum amount of server memory that a single PHP script is allowed to use. You can check the current memory limit using ini_get('memory_limit') and convert it to bytes for comparison.

Basic Memory Limit Check

Here's how to get and display the current memory limit ?

<?php
$memory_limit = ini_get('memory_limit');
echo "Current memory limit: " . $memory_limit;
?>
Current memory limit: 128M

Converting Memory Limit to Bytes

To compare memory limits, you need to convert values like "64M" or "512K" to bytes ?

<?php
function convertToBytes($value) {
    if (preg_match('/^(\d+)(.)$/', $value, $matches)) {
        if ($matches[2] == 'M') {
            return $matches[1] * 1024 * 1024; // MB to bytes
        } else if ($matches[2] == 'K') {
            return $matches[1] * 1024; // KB to bytes
        } else if ($matches[2] == 'G') {
            return $matches[1] * 1024 * 1024 * 1024; // GB to bytes
        }
    }
    return (int) $value; // Already in bytes
}

$memory_limit = ini_get('memory_limit');
$memory_in_bytes = convertToBytes($memory_limit);

echo "Memory limit: " . $memory_limit . "<br>";
echo "In bytes: " . number_format($memory_in_bytes) . " bytes<br>";
echo "In MB: " . round($memory_in_bytes / (1024 * 1024), 2) . " MB";
?>
Memory limit: 128M
In bytes: 134,217,728 bytes
In MB: 128 MB

Checking Minimum Memory Requirements

You can check if the current memory limit meets your application's minimum requirements ?

<?php
function convertToBytes($value) {
    if (preg_match('/^(\d+)(.)$/', $value, $matches)) {
        switch($matches[2]) {
            case 'G': return $matches[1] * 1024 * 1024 * 1024;
            case 'M': return $matches[1] * 1024 * 1024;
            case 'K': return $matches[1] * 1024;
        }
    }
    return (int) $value;
}

$memory_limit = ini_get('memory_limit');
$memory_bytes = convertToBytes($memory_limit);
$required_memory = 64 * 1024 * 1024; // 64MB required

$is_sufficient = ($memory_bytes >= $required_memory);

echo "Current memory limit: " . $memory_limit . "<br>";
echo "Required minimum: 64MB<br>";
echo "Status: " . ($is_sufficient ? "SUFFICIENT" : "INSUFFICIENT");
?>
Current memory limit: 128M
Required minimum: 64MB
Status: SUFFICIENT

Complete Memory Information

Here's a comprehensive function to get detailed memory information ?

<?php
function getMemoryInfo() {
    $memory_limit = ini_get('memory_limit');
    $current_usage = memory_get_usage();
    $peak_usage = memory_get_peak_usage();
    
    return [
        'limit' => $memory_limit,
        'current_usage' => round($current_usage / 1024 / 1024, 2) . ' MB',
        'peak_usage' => round($peak_usage / 1024 / 1024, 2) . ' MB',
        'percentage_used' => round(($current_usage / convertToBytes($memory_limit)) * 100, 2) . '%'
    ];
}

function convertToBytes($value) {
    if (preg_match('/^(\d+)(.)$/', $value, $matches)) {
        switch($matches[2]) {
            case 'G': return $matches[1] * 1024 * 1024 * 1024;
            case 'M': return $matches[1] * 1024 * 1024;
            case 'K': return $matches[1] * 1024;
        }
    }
    return (int) $value;
}

$info = getMemoryInfo();
foreach ($info as $key => $value) {
    echo ucfirst(str_replace('_', ' ', $key)) . ": " . $value . "<br>";
}
?>
Limit: 128M
Current usage: 0.35 MB
Peak usage: 0.35 MB
Percentage used: 0.27%

Conclusion

Use ini_get('memory_limit') to check the current memory limit and convert it to bytes for comparisons. Monitor memory usage with memory_get_usage() to ensure your scripts stay within limits.

Updated on: 2026-03-15T08:43:18+05:30

1K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements