اندازه‌گیری مصرف حافظه در اجرای کوئری‌های ساده با PHP

در دنیای برنامه‌نویسی وب، مدیریت بهینه‌ی منابع سیستم از اهمیت بسیاری برخوردار است. یکی از منابع مهم سیستم، حافظه (RAM) است که برای اجرای عملیات مختلف توسط سر...

انتشار: , زمان مطالعه: 4 دقیقه
اندازه‌گیری مصرف حافظه در اجرای کوئری‌های ساده با PHP
دسته بندی: برنامه نویسی تعداد بازدید: 123

اندازه‌گیری مصرف حافظه در اجرای کوئری‌های ساده با PHP

در دنیای برنامه‌نویسی وب، مدیریت بهینه‌ی منابع سیستم از اهمیت بسیاری برخوردار است. یکی از منابع مهم سیستم، حافظه (RAM) است که برای اجرای عملیات مختلف توسط سرور مورد استفاده قرار می‌گیرد. در این مقاله، با استفاده از یک کد ساده به بررسی میزان مصرف حافظه در زمان اجرای یک کوئری ساده برای خواندن یک رکورد از یک جدول در فریم‌ورک لاراول ، وردپرس و  PHP  ساده می‌پردازیم.

کد PHP برای لاراول

کد زیر، میزان مصرف حافظه را قبل و بعد از اجرای یک کوئری در لاراول اندازه‌گیری می‌کند و نتیجه را به صورت یک پاسخ JSON بازمی‌گرداند.

// Programmer: Ebrahim Shafiei (EbraSha)
public function memory_used()
{
    // Start memory usage measurement
    $initialMemory = memory_get_usage();

    // Execute query to read one record from the table
    $result = User::query()->limit(1)->get();

    // Measure memory usage after query execution
    $finalMemory = memory_get_usage();
    $memoryUsed = $finalMemory - $initialMemory;

    return response()->json([
        'initial_memory' => $initialMemory,
        'final_memory' => $finalMemory,
        'memory_used' => $memoryUsed . ' bytes',
        'data' => $result
    ]);
}

توضیح کد

  1. شروع اندازه‌گیری مصرف حافظه:
    با استفاده از تابع memory_get_usage()، میزان حافظه استفاده شده را قبل از اجرای کوئری اندازه‌گیری می‌کنیم و آن را در متغیر $initialMemory ذخیره می‌کنیم.

  2. اجرای کوئری:
    یک کوئری ساده برای خواندن یک رکورد از جدول User اجرا می‌کنیم و نتیجه را در متغیر $result ذخیره می‌کنیم.

  3. اندازه‌گیری مصرف حافظه پس از اجرای کوئری:
    مجدداً با استفاده از تابع memory_get_usage()، میزان حافظه استفاده شده پس از اجرای کوئری را اندازه‌گیری می‌کنیم و آن را در متغیر $finalMemory ذخیره می‌کنیم.

  4. محاسبه و بازگشت میزان حافظه استفاده شده:
    تفاوت بین میزان حافظه استفاده شده قبل و بعد از اجرای کوئری را محاسبه کرده و به همراه اطلاعات کوئری در قالب یک پاسخ JSON بازمی‌گردانیم.

نسخه PHP معمولی

در نسخه PHP معمولی بدون استفاده از فریم‌ورک خاصی، می‌توانیم کد مشابهی برای اندازه‌گیری مصرف حافظه بنویسیم:

// Programmer: Ebrahim Shafiei (EbraSha)
function memory_used()
{
    // Start memory usage measurement
    $initialMemory = memory_get_usage();

    // Create database connection
    $conn = new mysqli("localhost", "username", "password", "database");

    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }

    // Execute query to read one record from the table
    $result = $conn->query("SELECT * FROM users LIMIT 1");
    $data = $result->fetch_assoc();

    // Measure memory usage after query execution
    $finalMemory = memory_get_usage();
    $memoryUsed = $finalMemory - $initialMemory;

    // Close database connection
    $conn->close();

    return json_encode([
        'initial_memory' => $initialMemory,
        'final_memory' => $finalMemory,
        'memory_used' => $memoryUsed . ' bytes',
        'data' => $data
    ]);
}

header('Content-Type: application/json');
echo memory_used();

نسخه وردپرسی

در وردپرس، می‌توانیم از کد زیر برای اندازه‌گیری مصرف حافظه استفاده کنیم:

// Programmer: Ebrahim Shafiei (EbraSha)
function memory_used()
{
    // Start memory usage measurement
    $initialMemory = memory_get_usage();

    // Execute query to read one record from the table
    global $wpdb;
    $result = $wpdb->get_row("SELECT * FROM wp_users LIMIT 1", ARRAY_A);

    // Measure memory usage after query execution
    $finalMemory = memory_get_usage();
    $memoryUsed = $finalMemory - $initialMemory;

    return json_encode([
        'initial_memory' => $initialMemory,
        'final_memory' => $finalMemory,
        'memory_used' => $memoryUsed . ' bytes',
        'data' => $result
    ]);
}

// Add shortcode to display the result in WordPress
add_shortcode('memory_used', 'memory_used');

// Use [memory_used] shortcode in a page or post to display the result

با استفاده از این روش‌ها، می‌توانیم میزان مصرف حافظه در زمان اجرای کوئری‌های ساده را اندازه‌گیری کرده و بر اساس نتایج بدست‌آمده، به بهینه‌سازی برنامه‌هایمان بپردازیم. این امر به ما کمک می‌کند تا برنامه‌های کارآمدتر و با بهره‌وری بیشتری ایجاد کنیم و منابع سیستم را بهینه‌تر مدیریت کنیم.


دیدگاه های مربوط به این مقاله (برای ارسال دیدگاه در سایت حتما باید عضو باشید و پروفایل کاربری شما تکمیل شده باشد)