কেন জেভিএম স্ট্যাক-ভিত্তিক এবং ডালভিক ভিএম রেজিস্টার ভিত্তিক?


99

আমি কৌতূহলী, কেন সান জেভিএম স্ট্যাক-ভিত্তিক এবং গুগল ডালভিকভিএমকে নিবন্ধভিত্তিক করার সিদ্ধান্ত নিয়েছে?

আমি মনে করি যে জেভিএম সত্যিই ধরে নিতে পারে না যে লক্ষ্য প্ল্যাটফর্মে একটি নির্দিষ্ট সংখ্যক নিবন্ধক পাওয়া যায়, যেহেতু এটি প্ল্যাটফর্মটি স্বাধীন বলে মনে করা হয়। এর জন্য এটি কেবল জেআইটি সংকলককে রেজিস্টার-বরাদ্দ ইত্যাদি স্থগিত করে। (আমি ভুল হলে শুধরে.)

সুতরাং অ্যান্ড্রয়েড ছেলেরা ভেবেছিল, "আরে, এটি অদক্ষ, চলুন এখনই ভিজিএম ভিত্তিক ভিএম এর জন্য যাই ..."? তবে অপেক্ষা করুন, একাধিক বিভিন্ন অ্যান্ড্রয়েড ডিভাইস রয়েছে, ডালভিক কোন সংখ্যক নিবন্ধককে লক্ষ্য করেছিল? ডালভিক ওপকডগুলি নির্দিষ্ট সংখ্যক নিবন্ধকের জন্য হার্ডকোডযুক্ত?

বাজারে বর্তমান সমস্ত অ্যান্ড্রয়েড ডিভাইসগুলিতে প্রায় একই সংখ্যক নিবন্ধক রয়েছে? বা, ডেক্স-লোডিংয়ের সময় কোনও রেজিস্টার পুনরায় বরাদ্দ সঞ্চালিত হয়? এই সব একসাথে ফিট করে?


4
ডালভিকভিএমকে নিবন্ধভিত্তিক করার কি গুগলের সিদ্ধান্ত ছিল? আমার মনে হয় ডালভিকভিএম গুগল অ্যান্ড্রয়েড ইনক অর্জনের আগেই বাস্তবায়িত হয়েছিল
রোবোক্লেক্স

4
আপনি অবশ্যই ঠিক আছেন। (যদিও প্রশ্নের সাথে খুব প্রাসঙ্গিক নয়;)
আইয়ুব

উত্তর:


69

স্ট্যাক-ভিত্তিক ভিএম এর কয়েকটি বৈশিষ্ট্য রয়েছে যা জাভার ডিজাইনের লক্ষ্যগুলির সাথে উপযুক্ত fit

  1. স্ট্যাক-ভিত্তিক নকশা লক্ষ্যযুক্ত হার্ডওয়্যার (রেজিস্টারস, সিপিইউ বৈশিষ্ট্যগুলি) সম্পর্কে খুব কম ধারণা তৈরি করে, তাই বিভিন্ন ধরণের হার্ডওয়্যারে ভিএম প্রয়োগ করা সহজ।

  2. যেহেতু নির্দেশাবলীর অপারেশনগুলি মূলত অন্তর্নিহিত, তাই অবজেক্ট কোডটি আরও ছোট হবে। যদি আপনি ধীর নেটওয়ার্ক লিঙ্কে কোড ডাউনলোড করতে যাচ্ছেন তবে এটি গুরুত্বপূর্ণ।

একটি রেজিস্টার-ভিত্তিক স্কিমের সাথে যাওয়ার সম্ভবত সম্ভবত ডালভিকের কোড জেনারেটরের পারফরম্যান্ট কোড তৈরি করতে তেমন পরিশ্রম করতে হবে না। অত্যন্ত নিবন্ধভুক্ত সমৃদ্ধ বা নিবন্ধ-দরিদ্র আর্কিটেকচারে দৌড়ানো সম্ভবত ডালভিককে প্রতিবন্ধক করে তুলবে, তবে এটি সাধারণ লক্ষ্য নয় - এআরএম একটি রাস্তার খুব মাঝারি আর্কিটেকচার।


আমি এটাও ভুলে গিয়েছিলাম যে ডালভিকের প্রাথমিক সংস্করণে কোনও জেআইটি অন্তর্ভুক্ত ছিল না। আপনি যদি নির্দেশাবলী সরাসরি ব্যাখ্যা করতে চলেছেন, তবে কোনও রেজিস্টার-ভিত্তিক স্কিম সম্ভবত ব্যাখ্যার পারফরম্যান্সের জন্য একটি বিজয়ী।


4
ঠিক আছে, এটি আকর্ষণীয়। সুতরাং ডালভিকভিএম লক্ষ্য ডিভাইসে কোনও ন্যূনতম সংখ্যার নিবন্ধ গ্রহণ করে?
আইয়ুব

4
এছাড়াও, আমি পড়েছি যে কিছু লোক তাদের ল্যাপটপগুলিতে একটি "হালকা ওজন" ওএস থেকে অ্যান্ড্রয়েড ইনস্টল করছে ... ল্যাপটপটি এআরএম না থাকলে এটি সম্ভবত একটি খারাপ ধারণা বলে মনে হচ্ছে, এবং সম্ভবত অনেকগুলি রেজিস্ট্রারের সাথে কোনও স্থাপত্য রয়েছে?
আইয়ুব

4
ঠিক আছে, আমি কেবল শিখেছি যে ডেক্স বাইটকোড একটি অসীম নিবন্ধকার মেশিনের ক্ষেত্রে সংজ্ঞায়িত করা হয়, এবং যখন এটি দক্ষতার কথা আসে তখন মনে হয় এটি বেশিরভাগ ক্ষেত্রে মেমরি-পদচিহ্ন সম্পর্কে রয়েছে।
আইয়ুব

4
আমি মনে করতে পারি না যে ডালভিক অসীম-নিবন্ধভিত্তিক, অথবা একটি নির্দিষ্ট রেজিস্টার ফাইলের আকার ছিল কিনা। যদি এটি অসীম হয়, তবে এটি যে ধরণের কোড আপনি চালাচ্ছেন তার জন্য "পর্যাপ্ত" রেজিস্টার রয়েছে এমন আর্কিটেকচারগুলিতে সর্বোত্তমভাবে সঞ্চালনের ঝোঁক পড়বে।
মার্ক বেসে

আরও বিশদ বিবরণ এখানে পাওয়া যাবে: markfaction.wordpress.com/2012/07/15/…
noego

32

আমি কোনও রেফারেন্স খুঁজে পাচ্ছি না, তবে আমি মনে করি সান স্ট্যাক-ভিত্তিক বাইকোড পদ্ধতির জন্য সিদ্ধান্ত নিয়েছে কারণ এটি কয়েকটি রেজিস্টার (যেমন IA32) সহ একটি আর্কিটেকচারে জেভিএম চালানো সহজ করে তোলে।

ইন Dalvik VM- র internals গুগল ইনপুট / আউটপুট 2008 থেকে Dalvik স্রষ্টা ড্যান Bornstein এর স্লাইড 35 একটি রেজিস্টার ভিত্তিক VM- র চয়নের জন্য নিম্নলিখিত আর্গুমেন্ট দেয় উপস্থাপনার স্লাইড :

নিবন্ধন মেশিন

কেন?

  • নির্দেশ প্রেরণ এড়ানো
  • অপ্রয়োজনীয় মেমরি অ্যাক্সেস এড়ানো
  • নির্দেশের স্ট্রিমটি দক্ষতার সাথে গ্রাস করুন (প্রতি নির্দেশের চেয়ে উচ্চতর ঘনত্ব)

এবং স্লাইড 36:

নিবন্ধন মেশিন

পরিসংখ্যান

  • 30% কম নির্দেশাবলী
  • 35% কম কোড ইউনিট
  • নির্দেশাবলী স্ট্রিমে আরও 35% বাইট
    • তবে আমরা একবারে দু'টি গ্রাস করতে পারি

বর্নস্টেইনের মতে এটি "ক্লাস ফাইলগুলির একটি সেটকে ডেক্স ফাইলে রূপান্তর করার সময় আপনি কী খুঁজে পেতে পারেন সেটাই একটি সাধারণ প্রত্যাশা"।

উপস্থাপনা ভিডিওটির প্রাসঙ্গিক অংশটি 25:00 এ শুরু হয়

শি এট আল রচিত "ভার্চুয়াল মেশিন শোডাউন: স্ট্যাক ভার্সাস রেজিস্টারস" শীর্ষক একটি অন্তর্দৃষ্টিপূর্ণ কাগজও রয়েছে (2005) , যা স্ট্যাক- এবং নিবন্ধভিত্তিক ভার্চুয়াল মেশিনের মধ্যে পার্থক্যগুলি আবিষ্কার করে।


13

আমি জানি না কেন সান জেভিএম স্ট্যাক ভিত্তিক করার সিদ্ধান্ত নিয়েছে। ভার্চুয়াল মেশিনটি ত্রুটিযুক্ত, বিএএম কার্য সম্পাদনের কারণে নিবন্ধভুক্ত। এবং ডালভিকও পারফরম্যান্সের কারণে নিবন্ধভুক্ত বলে মনে হচ্ছে।

থেকে প্রো অ্যান্ড্রয়েড 2 :

ডালভিক স্ট্যাকের পরিবর্তে প্রাথমিকভাবে ডেটা স্টোরেজের একক হিসাবে নিবন্ধগুলি ব্যবহার করে। গুগল ফলাফল হিসাবে 30 শতাংশ কম নির্দেশাবলী সম্পন্ন আশা করি।

এবং কোড আকার সম্পর্কিত:

ডালভিক ভিএম উত্পাদিত জাভা ক্লাসের ফাইলগুলি গ্রহণ করে এবং তাদের এক বা একাধিক ডালভিক এক্সিকিউটেবল (.dex) ফাইলে একত্রিত করে। এটি একাধিক শ্রেণীর ফাইল থেকে নকল তথ্য পুনরায় ব্যবহার করে, কার্যকরভাবে স্থানের প্রয়োজনীয়তা (সংকুচিত) traditionalতিহ্যগত .jar ফাইল থেকে অর্ধেকে কমিয়ে দেয়। উদাহরণস্বরূপ, অ্যান্ড্রয়েডে ওয়েব ব্রাউজার অ্যাপ্লিকেশনটির .dex ফাইলটি প্রায় 200k, অন্যদিকে সমতুল্য সঙ্কুচিত .ar সংস্করণটি প্রায় 500k। অ্যালার্ম ঘড়ির .dex ফাইলটি প্রায় 50 কিলোমিটার এবং তার .jar সংস্করণে আকারের দ্বিগুণ।

এবং যেমনটি আমি কম্পিউটার আর্কিটেকচারের কথা স্মরণ করি : একটি পরিমাণগত পদ্ধতিরও এই সিদ্ধান্তে পৌঁছে যে একটি রেজিস্টার মেশিন স্ট্যাক ভিত্তিক মেশিনের চেয়ে আরও ভাল সম্পাদন করে।


4
যদি আমার অনুমান করতে হয় তবে আমি বলব যে সান জেভিএম স্ট্যাক ভিত্তিক করার সিদ্ধান্ত নিয়েছে কারণ এটি একটি রেজিস্টার মেশিনের চেয়ে কার্যকর করা সহজ। (তবে এখানে যেমন উল্লেখ করা হয়েছে তুচ্ছ একটি পারফরম্যান্স ব্যয়ে))
ম্যাসন হুইলার

আমি কোনও রেফারেন্স খুঁজে পাচ্ছি না, তবে আমি মনে করি সান স্ট্যাক-ভিত্তিক বাইকোড পদ্ধতির জন্য সিদ্ধান্ত নিয়েছে কারণ এটি কম রেজিস্টার আর্কিটেকচারে জেভিএম চালানো সহজ করে তোলে।
ফ্লো

4
একটি হার্ডওয়্যার আইএসএর জন্য, হ্যাঁ রেজিস্টার মেশিনগুলি জিতেছে। মূলত প্রতিটি সিপিইউ / মাইক্রোকন্ট্রোলার একটি নিবন্ধকার মেশিন, কারণ অন্য সমস্ত কিছু তুলনা করে সফল হয়। কারও কারও কাছে খুব কম রেজিস্টার রয়েছে, যেমন কেবল একটি সঞ্চালক এবং সম্ভবত এক বা দুটি পয়েন্টার বা সূচক রেজিস্ট্রি, তবে এটি তত্ত্ব-সংখ্যার অর্থে একটি রেজিস্টার মেশিনের মতো আরও বেশি। তবে আমরা যে ভিএমগুলি ব্যাখ্যা করে তা নিয়ে কথা বলছি , সুতরাং "রেজিস্টার ফাইল" যদি সেখানে থাকে তবে তা আসলে স্মৃতিতে থাকে। আপনি জেআইটি-সংকলন না করে দেশীয় মেশিন কোডে প্রবেশ করুন। স্ট্যাকের চেয়ে রেগ দ্রুত হওয়ার কারণগুলি খুব আলাদা।
পিটার কর্ডেস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.