اندازهگیری مصرف حافظه در اجرای کوئریهای ساده با PHP
در دنیای برنامهنویسی وب، مدیریت بهینهی منابع سیستم از اهمیت بسیاری برخوردار است. یکی از منابع مهم سیستم، حافظه (RAM) است که برای اجرای عملیات مختلف توسط سر...
اندازهگیری مصرف حافظه در اجرای کوئریهای ساده با 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
]);
}
توضیح کد
-
شروع اندازهگیری مصرف حافظه:
با استفاده از تابعmemory_get_usage()
، میزان حافظه استفاده شده را قبل از اجرای کوئری اندازهگیری میکنیم و آن را در متغیر$initialMemory
ذخیره میکنیم. -
اجرای کوئری:
یک کوئری ساده برای خواندن یک رکورد از جدولUser
اجرا میکنیم و نتیجه را در متغیر$result
ذخیره میکنیم. -
اندازهگیری مصرف حافظه پس از اجرای کوئری:
مجدداً با استفاده از تابعmemory_get_usage()
، میزان حافظه استفاده شده پس از اجرای کوئری را اندازهگیری میکنیم و آن را در متغیر$finalMemory
ذخیره میکنیم. -
محاسبه و بازگشت میزان حافظه استفاده شده:
تفاوت بین میزان حافظه استفاده شده قبل و بعد از اجرای کوئری را محاسبه کرده و به همراه اطلاعات کوئری در قالب یک پاسخ 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
با استفاده از این روشها، میتوانیم میزان مصرف حافظه در زمان اجرای کوئریهای ساده را اندازهگیری کرده و بر اساس نتایج بدستآمده، به بهینهسازی برنامههایمان بپردازیم. این امر به ما کمک میکند تا برنامههای کارآمدتر و با بهرهوری بیشتری ایجاد کنیم و منابع سیستم را بهینهتر مدیریت کنیم.
دیدگاه های مربوط به این مقاله (برای ارسال دیدگاه در سایت حتما باید عضو باشید و پروفایل کاربری شما تکمیل شده باشد)