অফলাইনে যাচ্ছেন এসও ডকুমেন্টেশন বিটা থেকে আমার রেফারেন্স পোস্ট করুন।
এক্সডিবুগ দিয়ে প্রোফাইলিং
এক্সডিবাগ নামে পিএইচপি-র একটি বর্ধিতাংশ পিএইচপি অ্যাপ্লিকেশনগুলির পাশাপাশি রাইলটাইম ডিবাগিংয়ে সহায়তা করার জন্য উপলব্ধ । প্রোফাইলার চালানোর সময়, আউটপুট একটি বাইনারি ফর্ম্যাটে "ক্যাশেগ্রিন্ড" নামে একটি ফাইলকে লেখা হয়। এই ফাইলগুলি বিশ্লেষণের জন্য প্রতিটি প্ল্যাটফর্মে অ্যাপ্লিকেশন উপলব্ধ। এই প্রোফাইলিং সম্পাদনের জন্য কোনও অ্যাপ্লিকেশন কোড পরিবর্তন প্রয়োজন।
প্রোফাইলিং সক্ষম করতে, এক্সটেনশনটি ইনস্টল করুন এবং php.ini সেটিংস সামঞ্জস্য করুন। কিছু লিনাক্স বিতরণ স্ট্যান্ডার্ড প্যাকেজগুলির সাথে আসে (যেমন উবুন্টুর php-xdebug
প্যাকেজ)। আমাদের উদাহরণে আমরা একটি অনুরোধ প্যারামিটারের ভিত্তিতে প্রোফাইলটি allyচ্ছিকভাবে চালাব। এটি আমাদের সেটিংস স্থির রাখতে এবং প্রয়োজন হিসাবে কেবল প্রোফাইলার চালু করতে দেয়।
# php.ini settings
# Set to 1 to turn it on for every request
xdebug.profiler_enable = 0
# Let's use a GET/POST parameter to turn on the profiler
xdebug.profiler_enable_trigger = 1
# The GET/POST value we will pass; empty for any value
xdebug.profiler_enable_trigger_value = ""
# Output cachegrind files to /tmp so our system cleans them up later
xdebug.profiler_output_dir = "/tmp"
xdebug.profiler_output_name = "cachegrind.out.%p"
এরপরে আপনি যে অ্যাপ্লিকেশনটির ইউআরএলটি প্রোফাইল করতে চান তার অনুরোধ করতে একটি ওয়েব ক্লায়েন্ট ব্যবহার করুন, যেমন
http://example.com/article/1?XDEBUG_PROFILE=1
পৃষ্ঠাটি প্রক্রিয়া করার সাথে সাথে এটি একই নামের সাথে কোনও ফাইলে লিখবে
/tmp/cachegrind.out.12345
ডিফল্টরূপে ফাইলের নাম্বারটি হ'ল প্রক্রিয়া আইডি যা এটি লিখেছিল। এটি xdebug.profiler_output_name
সেটিংসের সাথে কনফিগারযোগ্য ।
নোট করুন যে এটি কার্যকর করা প্রতিটি পিএইচপি অনুরোধ / প্রক্রিয়া জন্য একটি ফাইল লিখবে। সুতরাং, উদাহরণস্বরূপ, আপনি যদি কোনও ফর্ম পোস্ট বিশ্লেষণ করতে চান তবে এইচটিএমএল ফর্মটি প্রদর্শনের জন্য জিইটি অনুরোধের জন্য একটি প্রোফাইল লেখা হবে। ফর্মটি প্রক্রিয়াকরণ করে এমন দ্বিতীয় অনুরোধ বিশ্লেষণের জন্য XDEBUG_PROFILE পরামিতিটি পরবর্তী পোস্টের অনুরোধের মধ্যে প্রেরণ করা দরকার। সুতরাং প্রোফাইলিং করার সময় কখনও কখনও কার্ল চালানো সহজ হয়ে সরাসরি কোনও ফর্ম পোস্ট করুন।
আউটপুট বিশ্লেষণ
একবার লিখিত প্রোফাইল ক্যাশে কেসিচেগ্রিন্ড বা ওয়েবগ্রাইন্ডের মতো কোনও অ্যাপ্লিকেশন দ্বারা পড়া যেতে পারে । পিএইচপিএসটর্ম, একটি জনপ্রিয় পিএইচপি আইডিই, এই প্রোফাইলিং ডেটা প্রদর্শন করতে পারে ।
কে কেচেগ্রিন্ড উদাহরণস্বরূপ, তথ্যগুলি প্রদর্শন করবে:
- কার্য সম্পাদন
- কল সময়, নিজেই এবং পরবর্তী ফাংশন কল অন্তর্ভুক্ত
- প্রতিটি ক্রিয়াকলাপের জন্য কল করা সংখ্যা
- গ্রাফ কল করুন
- উত্স কোড লিঙ্ক
কি জন্য পর্যবেক্ষণ
স্পষ্টতই পারফরম্যান্স টিউনিং প্রতিটি প্রয়োগের ব্যবহারের ক্ষেত্রে খুব নির্দিষ্ট। সাধারণভাবে এটি সন্ধান করা ভাল:
- একই ফাংশনে বারবার কলগুলি আপনি দেখতে আশা করবেন না। ফাংশনগুলির জন্য যা ডেটা প্রক্রিয়া করে এবং ক্যোয়ারী ডেটা এগুলি আপনার অ্যাপ্লিকেশনকে ক্যাশে করার জন্য প্রধান সুযোগ হতে পারে।
- ধীরগতিতে চলমান কার্যাদি। অ্যাপ্লিকেশনটি তার বেশিরভাগ সময় ব্যয় করে কোথায়? পারফরম্যান্স টিউনিংয়ের সেরা অর্থ প্রদান অ্যাপ্লিকেশনটির সেই অংশগুলিকে কেন্দ্র করে যা বেশিরভাগ সময় ব্যয় করে।
দ্রষ্টব্য : এক্সডিবাগ এবং বিশেষত এর প্রোফাইলিং বৈশিষ্ট্যগুলি হ'ল অত্যন্ত সংস্থানীয় এবং পিএইচপি বাস্তবায়নকে ধীর করে দেয়। এটি কোনও প্রোডাকশন সার্ভার পরিবেশে না চালানোর পরামর্শ দেওয়া হয়।