PDA

View Full Version : سوال: بدست آوردن زمان لود هر سایت دلخواه.



Elias.F
چهارشنبه 07 تیر 1391, 23:49 عصر
با سلام خدمت دوستان

من میخوام یه کلاس بنویسم که آدرس هر وبسایتی رو که به اوم بدم، بتونه زمان لود شدن اون رو بهم بده.
البته بیشتر تو نوشتن تابع اون مشکل دارم.
در حال حاضر با جستجو هایی که کردم فهمیدم ابتدای کد های صفحه باید کد زیر

<?php
$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$start = $time;
?>
و در انتهای کدهای صفحه ای که قرار زمان لود اون رو حساب کنم، کد زیر رو قرار دهم.

<?php
$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$finish = $time;
$total_time = round(($finish - $start), 4);
echo 'Page generated in '.$total_time.' seconds.';
?>
ولی خب فرض کنیم که من بخوام زمان لود یه سایت مثله yahoo رو اندازه بگیرم، چطور میتونم وقتی کدهای اون رو ندارم ، اینکار رو انجام بدم؟!!! راه دیگه اضافه کردن اون وبسایت، وسط این کدها چیه؟

اگه راه حل دیگه ای هم هست، منو راهنمایی بفرمایید.
متشکرم.

ayub_coder
پنج شنبه 08 تیر 1391, 00:32 صبح
شما ما بین تابع استارت و اتمام میای سایت یاهو رو با متد هایی که براش در نظر گرفتن باز می کنی حالا با CURL یا get_contents . حالا finish رو منهای start کنی میشه زمان لود شدن.
ولی این رو در نظر بگیر که زمان لود شدن واقعی نیست. چون به شرایط محیطی بستگی داره از جمله سرعت دسترسی به خطوط. وضعیت سرور خودت که برنامت توش کار می کنه. و سرعت دستیابی به سایت مورد نظرت مثل یاهو.

Elias.F
پنج شنبه 08 تیر 1391, 00:48 صبح
ممنونم. ولی من متوجه نشدم چی شد:خجالت::خجالت:

یه شبه کدی، چیزی.....

اتفاقا این دقیق بودن هم خیلی واسم مهمه. من میخام با firebug زمان لود صفحه رو بگیرم و عددی که بم میده
با عددی که این کد بهم میده یکی باشه.

Elias.F
پنج شنبه 08 تیر 1391, 12:56 عصر
هیچکی از دوستان راهی به ذهنش نمیرسه؟

kartuf
جمعه 09 تیر 1391, 00:50 صبح
زمان لود به این روش اصلا دقیق و درست نیست چون کد شما بروی سرور سایت هدف اجرا نمیشه و در ثانی اگر شما بخواهید با php محتوای سایت هدف رو بگیرید چون دریافت ها بین سروری هستند و به سرعت خیلی بالا اجرا میشن اصلا معیاری برای سنجش نیست ولی شما میتونی این کار و با جاوا اسکریپت شبیه سازی کنی زمان فعلی رو بگیری بعد سایت هدف رو توی یه ایفریم لود کنی بعد که کامل لود شد زمان فعلی رو باز بگیری زمان اول رو ازش کم کنی و نمایش بدی که این روش هم بنا به دلایل سرعت .... زیاد مورد اطمینان نیست

MMSHFE
جمعه 09 تیر 1391, 06:38 صبح
دوست عزیز، شما برای این کار باید از cURL استفاده کنید و قبل و بعد از فراخوانی curl_exec با کمک تابع microtime (http://ir.php.net/manual/en/function.microtime.php) زمان رو برحسب میلیونیوم ثانیه محاسبه کنید و اختلاف این دو زمان رو بعنوان زمان بارگذاری سایت درنظر بگیرین. البته طبیعی هست که سرعت بازشدن سایت توی سرور سایت شما با کاربر عادی که از ایران داره وصل میشه فرق میکنه مگه اینکه سرور سایت شما هم توی ایران باشه.
در هر حال من هم معتقدم این روشها هیچکدوم دقیق نیست. خود کاربران هم که سایت رو مشاهده میکنن، هر بار با یک سرعت متفاوت اون رو میبینن. بخصوص اگه مواردی مثل Cacheشدن فایلها و... رو درنظر بگیریم که باعث میشه زمان بارگذاری در دفعات بعد، تفاوت زیادی پیدا کنه.
موفق باشید.

Elias.F
پنج شنبه 22 تیر 1391, 12:00 عصر
من که در این کار خیلی به مشکل خوردم.
ببینید دوستان من میخوام یه برنامه بنویسم که دقیقا مثل این سایت کار کنه
http://tools.pingdom.com/fpt/

یعنی تمامی زمان هارو بتونم باهاش حساب کنم. زمان اتصال به سرور، زمان لود.زمان .......
مثل این سایت داخل افزونه فایرباگ هم هست.ولی خوب فایرباگ سمت کلاینت هست و من میخوام سمت سرور باشه.
با php میشه همچین برنامه ای ساخت؟
این سایت از برنامه نویسی سوکت استفاده کرده یا با php هم میشه همچین کاری کرد؟