পুর্বের একটি পোস্টে সিউল রায়হানের সাথে মন্তব্য বিনিময় করতে যেয়ে cURL vs fsockopen প্রসংগটি আসলো। cURL এর গতি বেশী, অল্পতে অনেক বেশি কাজ করা যায়। কুকি ম্যানেজ করার জন্য আলাদা কাজ করতে হয় না। সার্ভার রিডিরেক্ট হ্যান্ডল করা যায়। এবং সর্বোপরি সিস্টেম লেভেল কাজ করে।
একটা উদাহরন দেই। আপনি google.com লগইন করলেন। গুগল আপনাকে রিডিরেক্ট করে google.com.bd তে পাঠিয়ে দেবে (যেহেতু বাংলাদেশী আইপি)। fsockopen দিয়ে গুগলে লগইন করলে সার্ভার হেডার রিড করে 302 থেকে লোকেশন বের করে আপনাকে পরবর্তী পেজে মুভ করতে হবে। কিন্তু cURL এক্ষেত্রে অনেক সহজ, আপনি অপশন CURLOPT_FOLLOWLOCATION কে ১ বা ট্রু করে দিলে সার্ভার রিডিরেকশন ফলো করবে। তবে ক্ষেত্র বিশেষে fsockopen অনেক ভালো কাজ দেয়। কিন্তু আপনি যদি পরপর একই ধরনের কাজের জন্য fsockopen কল করেন, তখন fsockopen এর পারফরমেন্স ডাউন হয়ে যাবে। আর অন্যদিকে cURL এর পারফরমেন্সে ইমপ্রুভমেন্ট হয়। আবার যদি আপনি লং প্রসেস/টাইম কনজ্যুমিং প্রসেস রান করেন, তখন ওয়েব সার্ভার টাইম আউট হয়ে যাবে। এরজন্য স্ক্রীপ্টকে ব্যকগ্রাউন্ড প্রসেস হিসেবে রান করতে হয়। PHP CGI ভারশনে রান করে Shell এ। তবে কেন cURL নয়? cURL তো ডেভেলপ করা হয়েছে কমান্ড লাইন ব্রাউজার হিসেবে, তাই এর এক্সপারটাইজ বেশি হবে, আর PHP তে এই সার্ভিস নেটিভ হিসেবে রান করে অপারেটিং সিস্টেমের Adapter ব্যবহার করে। তাই ক্রলার/স্পাইডার/ডাউনলোডার/অটোমেশন এর জন্য cURL এর ব্যবহার অধিক যুক্তিযুক্ত। পারমেন্সের বিচারে fsockopen এর চাইতে cURL এগিয়ে আছে। নিচের Benchmark ডাটাগুলো লক্ষ্য করুন।
ধন্যবাদ।
আরেকটি পোস্ট : Barcode:: আপনাকে প্রকাশ করুন সাংকেতিকভাবে
Benchmarks:
Target URL: http://www.kernelbd.com
Array
(
[curl] => Array
(
[0] => 0.07576299
[1] => 0.07649398
[2] => 0.09725308
)
[fsockopen] => Array
(
[0] => 0.08014894
[1] => 0.15829992
[2] => 0.24657297
)
)
Benchmark Location
ডাউনলোড Benchmark স্ক্রিপ্ট
সর্বশেষ এডিট : ০৯ ই ডিসেম্বর, ২০১০ রাত ৯:৫৯

অনুগ্রহ করে অপেক্ষা করুন। ছবি আটো ইন্সার্ট হবে।


