এই প্রশ্নটিতে একটি সাধারণ সমস্যা রয়েছে যে এটি অত্যন্ত পরম। "ভাষা এক্স ভাষা ওয়াইয়ের চেয়ে দ্রুত গতিতে" বলার অর্থ নেই। একটি কম্পিউটার ভাষা নিজেই "দ্রুত" বা "ধীর" নয় কারণ এটি কেবলমাত্র একটি অ্যালগরিদম প্রকাশের উপায়। আসল প্রশ্নটি "এই বিশেষ সমস্যার ডোমেনের জন্য ভাষা Y এর Y1 প্রয়োগকরণের চেয়ে ভাষা X এর বাস্তবায়ন এক্স 1 কেন দ্রুত?" এর আদেশে কিছু হওয়া উচিত?
কিছু গতির পার্থক্য অবশ্যই ভাষার বাইরে চলে যেতে চলেছে কারণ নির্দিষ্ট ভাষাগুলি অন্যের চেয়ে কিছু নির্দিষ্ট ডোমেন প্রয়োগ করা সহজ are তবে যা বাস্তবায়ন দ্রুত করে তোলে তার বেশিরভাগ ভাষা নয়। উদাহরণস্বরূপ, আপনি সিপিথন, আয়রন পাইথন বা পাইপাইয়ের বিষয়ে কথা বলছেন কিনা তা বিবেচনা না করে আপনি সত্যই "জাথার চেয়ে পাইথন ধীরে ধীরে" বলতে পারবেন না। এটি বিশেষত সত্য যে ভাষাগুলি একটি ভিএম ব্যবহার করে কারণ গতিটি সরাসরি ভিএম এর গুণমান দ্বারা প্রভাবিত হতে চলেছে।
একদিকে যেমন, আমি এমন একটি সিস্টেমে কাজ করি যা বিভিন্ন কারণে আমাদের ডিভাইসে খুব জনপ্রিয় জাভাস্ক্রিপ্ট ভিএম ব্যবহার করে জেআইটি ব্যবহার করতে পারে না যা সাধারণত এটি সমর্থন করে। এর অর্থ হ'ল আমাদের জাভাস্ক্রিপ্ট একই ধরণের প্রসেসরযুক্ত পিসির তুলনায় অনেক ধীরে চলে। এই এক পরিবর্তনটি যা সরাসরি ভাষার সাথে সরাসরি সম্পর্কিত নয়, জাভাস্ক্রিপ্টকে "সি ++ এর চেয়ে কয়েকগুণ ধীর" হতে "আমাদের মুখের কাজগুলির জন্য" সি ++ এর চেয়ে আরও কম ধাপের ক্রম "হওয়া থেকে নেওয়া হয়।
এছাড়াও বিবেচনা করুন যে ভাষাগুলি সরাসরি তুলনামূলক নয় এমনভাবে পারফরম্যান্সের বৈশিষ্ট্যে আলাদা হয়। অনেকগুলি মানদণ্ডগুলি কেবলমাত্র ভাষা A থেকে ভাষা B তে একটি প্রোগ্রাম অনুবাদ করে এবং কোন বৈশিষ্ট্যগুলি দ্রুততর সেগুলির মধ্যে ভাষাগুলির মধ্যে পৃথকীকরণের বিষয়টি বিবেচনায় নেবেন না। (আপনি যে কোনও যুক্তিসঙ্গত মানদণ্ডের তুলনায় এটি দেখতে পারেন যেমন আপনি লিঙ্ক করেছেন সেগুলিতে যেমন তারা প্রায়শই "ভাষা ফু-তে কীভাবে এটি প্রয়োগ করতে পারে তা আমাকে দেখানোর জন্য ধন্যবাদ এবং তাই-এর মত নোট রয়েছে))
উদাহরণস্বরূপ, এই জাভা কোডটি নিন:
for(int i=0;i<10;i++) {
Object o = new Object;
doSomething(o);
}
এটি সি ++ এ "পুনরায় লেখার" জন্য প্ররোচিত হবে এবং রান সময়গুলি তুলনা করবে:
for(int i=0;i<10;i++) {
Object *o = new Object;
doSomething(o);
delete(o);
}
জিনিসটি হ'ল যে কোনও দক্ষ সি ++ প্রোগ্রামার সাথে সাথেই দেখতে পাবে যে সি ++ তে এটি কোনও কাজ করার দ্রুততম উপায় নয়। আপনি বিষয়গুলিকে C ++ এর সাথে আরও উপযুক্ত বলে পরিবর্তন করে সহজেই গতি বাড়িয়ে তুলতে পারেন:
for(int i=0;i<10;i++) {
Object o;
doSomething(&o);
}
মুল বক্তব্যটি এই নয় যে সি ++ দ্রুত হতে পারে তবে ভাষার তুলনা করার জন্য মাপদণ্ড লিখার চেয়ে সত্যই কঠিন। এটি যথাযথভাবে করতে, আপনাকে উভয় ভাষায় বিশেষজ্ঞ হতে হবে এবং উভয় ভাষায় স্ক্র্যাচ থেকে লিখতে হবে। তারপরেও আপনি সহজেই সেই অঞ্চলে যেতে পারেন যেখানে একটি ভাষা নির্দিষ্ট কাজে দক্ষতা অর্জন করে। উদাহরণস্বরূপ, আমি সি ++ তে টাওয়ার্স অফ হ্যানয়ের একটি সংস্করণ লিখতে পারি যা যেকোন যুক্তিসঙ্গত সংকলকটিতে জাভার চেয়ে দ্রুত চলবে। সংকলনের সময় মূল্যায়ন করে সি ++ টেম্পলেট ব্যবহার করে মূলত প্রতারণা করেই আমি এটি করতে পারি (http://forums.devshed.com/c-pogramming-42/c-towers-of-hanoi-used-templates-424148.html)
মূল বক্তব্যটি এই নয় যে আমি বলতে পারি যে "সি ++ জাভার চেয়ে দ্রুত" কারণ আমার প্রোগ্রামটি তাত্ক্ষণিকভাবে ফিরে আসছিল যখন জাভা সংস্করণ কয়েক মিনিট চলছিল (এবং কেউ আশা করেনি যে আমার প্রোগ্রামটি তৈরি হতে আধা ঘন্টা সময় লেগেছে The সংকীর্ণ ক্ষেত্রে পৃথক, সি ++ দ্রুত হয়। অন্যান্য সংকীর্ণ ক্ষেত্রে এটি অন্য উপায়ে হতে পারে। সুতরাং এটি "সি ++ টি দ্রুত" নয়, এটি "সি ++ এমন ক্ষেত্রে দ্রুত হয় যেখানে আপনি টেমপ্লেটগুলি ব্যবহারের সময় নির্ধারণের সময় অভিব্যক্তিটি মূল্যায়ন করতে পারেন।" কম সন্তুষ্ট, কিন্তু সত্য।
ভাষাগুলির গতির পার্থক্য বেশিরভাগ বাস্তবায়নের বিষয়ে। সংকলিত ভাষাগুলি বর্ণিত ভাষার চেয়ে দ্রুত হতে চলেছে। স্থানীয় কোডে সংকলন বাইট কোড সংকলনের চেয়ে দ্রুত হতে চলেছে। ভাষা স্ট্যাটিক্যালি টাইপ করা হয় কি না এর মতো প্রশ্নের তুলনায় এটি আরও অনেক প্রভাব ফেলবে। এবং অবশ্যই, ভাল বাস্তবায়ন খারাপগুলির চেয়ে দ্রুত হতে চলেছে।
এবং ভুলে যাবেন না যে ভাল প্রোগ্রামাররা খারাপ প্রোগ্রামারগুলির চেয়ে দ্রুত কোড তৈরি করতে চলেছে, প্রায়শই এমন একটি পরিমাণে যা ভাষার পার্থক্যকে ছাড়িয়ে যায়।