পাইথনের কোন শব্দার্থক বৈশিষ্ট্য (এবং অন্যান্য গতিশীল ভাষাগুলি) এর স্বচ্ছলতায় অবদান রাখে?
কোনটিই নয়।
ভাষা বাস্তবায়নের পারফরম্যান্স হ'ল অর্থ বৈশিষ্ট্য, সংস্থান এবং পিএইচডি থিসিসের একটি ভাষা, ভাষা বৈশিষ্ট্য নয়। স্মলটালকের চেয়ে স্ব গতিশীল এবং পাইথন, রুবি, ইসসিএমএস স্ক্রিপ্ট বা লুয়ার চেয়ে কিছুটা বেশি গতিশীল এবং এটিতে একটি ভিএম ছিল যা বিদ্যমান সমস্ত লিস্প এবং স্মলটাল্ক ভিএমগুলিকে ছাড়িয়ে গেছে (আসলে, স্ব-বিতরণে একটি ছোট ছোট ছোট অনুবাদকারীর সাথে স্ব-বিতরণ পাঠানো হয়েছিল) , এবং এমনকি এটি সর্বাধিক বিদ্যমান স্মার্টটাক ভিএমগুলির তুলনায় দ্রুত ছিল) এবং প্রতিযোগিতামূলক ছিল, এবং কখনও কখনও সেই সময়ের সি ++ বাস্তবায়নের চেয়েও দ্রুত ছিল।
তারপরে, সান স্ব-তহবিল বন্ধ করে দিয়েছিল এবং আইবিএম, মাইক্রোসফ্ট, ইন্টেল এবং কোং সি ++ অর্থায়ন শুরু করে এবং প্রবণতাটি বিপরীত হয়। স্ব-বিকাশকারীরা সানকে তাদের নিজস্ব সংস্থা শুরু করার জন্য ছেড়ে চলে গেলেন, যেখানে তারা সেলফ ভিএম এর জন্য বিকাশ করা প্রযুক্তিটি এখন পর্যন্ত দ্রুততম ছোট ছোট ভিএমগুলির একটি (অ্যানিমর্ফিক ভিএম) তৈরি করতে ব্যবহার করেছিলেন এবং সান সেই সংস্থাটি আবার কিনেছিলেন এবং এর একটি সামান্য পরিবর্তিত সংস্করণ স্মার্টটাক ভিএম এখন "হটস্পট জেভিএম" নামে সুপরিচিত। হাস্যকরভাবে, জাভা প্রোগ্রামাররা গতিশীল ভাষাগুলি "ধীর" হওয়ার জন্য তাকাচ্ছেন, যখন বাস্তবে, জাভাএটি গতিময় ভাষার প্রযুক্তি গ্রহণ না করা পর্যন্ত ধীর ছিল। (হ্যাঁ, এটি ঠিক আছে: হটস্পট জেভিএম মূলত একটি ছোট্টকল ভিএম হয় by বাইটকোড যাচাইকারী অনেক ধরণের চেকিং করে তবে বাইটোকড একবার ভেরিফায়ার, ভিএম এবং বিশেষত অপ্টিমাইজার দ্বারা গ্রহণ করা হয় এবং জেআইটি আসলে না করে স্থিতিশীল ধরণের সাথে অনেক আগ্রহ!)
সিপিথন কেবল প্রচুর পরিমাণে স্টাফ করে না যা গতিময় ভাষাগুলি (বা বরং গতিশীল প্রেরণ) দ্রুত করে তোলে: গতিশীল সংকলন (জেআইটি), গতিশীল অপ্টিমাইজেশন, অনুমানমূলক ইনলাইনিং, অভিযোজিত অপ্টিমাইজেশন, গতিশীল ডি-অপ্টিমাইজেশন, গতিশীল ধরণের প্রতিক্রিয়া / অনুমান। প্রায় পুরো কোর এবং স্ট্যান্ডার্ড গ্রন্থাগারটি সিটিতে লেখা রয়েছে এমন সমস্যাও রয়েছে যার অর্থ হ'ল আপনি পাইথনকে হঠাৎ করেই 100x দ্রুত তৈরি করলেও এটি আপনাকে বেশি সাহায্য করবে না, কারণ 95% কোডের মতো একটি দ্বারা কার্যকর করা হয়েছিল পাইথন প্রোগ্রামটি সি, পাইথন নয়। যদি পাইথনে সমস্ত কিছু লেখা থাকে, তবে এমনকি মধ্যপন্থী গতিসম্পন্নগুলি হিংস্রূপে একটি প্রভাব তৈরি করতে পারে, যেখানে অ্যালগোরিদমগুলি দ্রুততর হয়, এবং মূল ডেটাস্ট্রাকচারগুলি দ্রুততর হয়, তবে অবশ্যই মূল ডেটা স্ট্রাকচারগুলিও অ্যালগরিদমের মধ্যে ব্যবহৃত হয়, এবং মূল অ্যালগরিদম এবং মূল ডেটা কাঠামো অন্য কোথাও ব্যবহৃত হয়,
আজকের সিস্টেমে কয়েকটি জিনিস রয়েছে যা স্মৃতি-পরিচালিত ওও ভাষাগুলির (গতিশীল বা না) জন্য কুখ্যাত। ভার্চুয়াল মেমরি এবং মেমরি সুরক্ষা বিশেষত আবর্জনা সংগ্রহের পারফরম্যান্স এবং সাধারণভাবে সিস্টেমের কার্য সম্পাদনের জন্য একটি হত্যাকারী হতে পারে। এবং এটি মেমোরি-নিরাপদ ভাষায় সম্পূর্ণ অপ্রয়োজনীয়: যখন ভাষার কোনও মেমরি অ্যাক্সেস শুরু হয় না তখন কেন অবৈধ স্মৃতি অ্যাক্সেসগুলি থেকে রক্ষা করুন? আজুল আবদ্ধ হওয়ার পরিবর্তে আবর্জনা সংগ্রহে সহায়তা করার জন্য আধুনিক শক্তিশালী এমএমইউগুলি (ইনটেল নেহালিম এবং আরও নতুন এবং এএমডি এর সমতুল্য) ব্যবহার করতে পেরেছেন, তবে এটি সিপিইউ দ্বারা সমর্থিত হলেও মূলধারার ওএসের বর্তমান মেমরি সাবসিস্টেমগুলি যথেষ্ট শক্তিশালী নয় এটির অনুমতি দেওয়ার জন্য (এজন্য আজুলের জেভিএম আসলে খালি ধাতব পাশাপাশি ভার্চুয়ালাইজড চালায় runs ওএস, এটির মধ্যে নয়)।
সিঙ্গুলারিটি ওএস প্রকল্পে, মাইক্রোসফ্ট প্রক্রিয়া পৃথককরণের জন্য টাইপ সিস্টেমের পরিবর্তে এমএমইউ সুরক্ষা ব্যবহার করার সময় সিস্টেমের কার্যক্ষমতায় 30% ডলার প্রভাব পরিমাপ করেছে।
তাদের বিশেষকৃত জাভা সিপিইউগুলি তৈরি করার সময় আজুল আরেকটি বিষয় লক্ষ্য করেছিল যে আধুনিক মূলধারার সিপিইউগুলি ক্যাশে মিসের ব্যয় হ্রাস করার চেষ্টা করার সময় সম্পূর্ণ ভুল জিনিসটির দিকে মনোনিবেশ করে: তারা শাখার পূর্বাভাস, স্মৃতি প্রিফেচিং ইত্যাদির মাধ্যমে ক্যাশে মিসের সংখ্যা হ্রাস করার চেষ্টা করে, ইত্যাদি। তবে, একটি ভারী বহুবর্ষজীবী ওও প্রোগ্রামে অ্যাক্সেসের ধরণগুলি মূলত সিউডো-এলোমেলো, এখানে পূর্বাভাস দেওয়ার কিছুই নেই। সুতরাং, এই ট্রানজিস্টরগুলির সমস্তগুলি কেবলই নষ্ট, এবং এর পরিবর্তে একটি করা উচিত যা প্রতিটি স্বতন্ত্র ক্যাশে মিসের ব্যয় হ্রাস করে। (মোট ব্যয়টি # মিসিস * ব্যয়, মূলধারার প্রথমটিকে নীচে নামানোর চেষ্টা করা হয়েছে, দ্বিতীয় আজুল দ্বিতীয়।) আজুলের জাভা কম্পিউট এক্সিলারেটরগুলিতে ফ্লাইটে 20000 একযোগে ক্যাশে মিস থাকা এবং এখনও অগ্রগতি হতে পারে।
যখন আজুল শুরু হয়েছিল, তারা ভেবেছিল যে তারা শেল্ফ I / O উপাদানগুলি কিছুটা নেবে এবং তাদের নিজস্ব বিশেষায়িত সিপিইউ কোর নকশা করবে, তবে তারা আসলে যা করা দরকার তা হ'ল বিপরীত: তারা একটি আদর্শের পরিবর্তে গ্রহণ করেছে - শেল্ফ 3-ঠিকানা আরআইএসসি কোর এবং তাদের নিজস্ব মেমরি নিয়ামক, এমএমইউ এবং ক্যাশে সাবসিস্টেমটি ডিজাইন করেছে।
tl; dr : পাইথনের "অলসতা" ভাষার কোনও সম্পত্তি নয় তবে ক) এর নিষ্পাপ (প্রাথমিক) বাস্তবায়ন, এবং খ) আধুনিক সিপিইউ এবং ওএস বিশেষত সিটিকে দ্রুত চালিত করার জন্য ডিজাইন করা হয়েছে, এবং তাদের বৈশিষ্ট্যগুলি সি এর জন্য হয় সাহায্য করে না (ক্যাশে) অথবা এমনকি সক্রিয়ভাবে আঘাত করছে (ভার্চুয়াল মেমরি) পাইথনের কর্মক্ষমতা।
এবং আপনি এখানে গতিশীল অ্যাডহক পলিমারফিজম সহ যে কোনও মেমরি-পরিচালিত ভাষা সন্নিবেশ করতে পারেন… এটি যখন কার্যকর প্রয়োগের চ্যালেঞ্জের কথা আসে তখনও পাইথন এবং জাভা প্রায় "একই ভাষা" হয়।