Asm.js এবং WebAs आशीर्वादের মধ্যে পার্থক্য কী?


101

আমি সম্প্রতি asm.js এবং ওয়েবঅ্যাস্পাবেশন সম্পর্কে পড়ছি:

http://ejohn.org/blog/asmjs- javascript-compile-target/

https://brendaneich.com/2015/06/from-asm-js-to-webassembly/

আমি এখনও কয়েকটি বিষয় সম্পর্কে বিভ্রান্ত রয়েছি:

  1. Asm.js কোডটি কি সময় এবং সঞ্চয়ে সংকলিত হয়? কি সংকলিত?
  2. Asm.js পাঠ্য এবং wasm (ওয়েব সমাবেশ) বাইনারি হওয়া ব্যতীত 2 এর মধ্যে পার্থক্যগুলি কী?
  3. ব্রাউজারে চলমান অন্যান্য স্ক্রিপ্টিং ভাষার জন্য এর অর্থ কী? উদাহরণস্বরূপ অজগর নিন, এটি হতে চলেছে
    • অজগর কোডটি কি সংকীর্ণ হয়েছে? বা
    • পাইথন ইন্টারপ্রেটার (সিপিথন) জঞ্জাল মধ্যে সংকলিত এবং পাইথন ব্যাখ্যা?

উত্তর:


48

Asm.js কোডটি কি সময় এবং সঞ্চয়ে সংকলিত হয়? কি সংকলিত?

asm.js নিয়মিত জাভাস্ক্রিপ্ট কোড, এবং বরাবরের মতো জেএস দোভাষী দ্বারা বাইকোডে সংকলিত হয়। যাইহোক, asm সমর্থন সহ একজন দোভাষীর সময়কালের সংকলন করার কথা বলা হয় এবং স্থির টাইপিংয়ের কারণে সম্ভবত আরও দক্ষ কোড উপস্থাপনা তৈরি করা যায়। বিস্তারিত জানতে http://asmjs.org/ দেখুন ।

asm এবং wasm (পাঠ্য বনাম বাইনারি ব্যতীত) মধ্যে পার্থক্য কী?

আপাতত কিছুই নেই। মৃগটি পশ্চাৎপদ-সামঞ্জস্যপূর্ণ, asm এর সাথে সংকলনযোগ্য বলে মনে হয় (যা আবার সাধারণ জেএস হিসাবে কার্যকর হয়)। ভবিষ্যতে আরও বৈশিষ্ট্যগুলির সাথে সমর্থন বাড়ার সাথে সাথে এটি বাড়ানো হতে পারে ।

ব্রাউজারে চলমান অন্যান্য স্ক্রিপ্টিং ভাষার জন্য এর অর্থ কী?

পরেরটি, বরং, পাইথনের এখনও ব্যাখ্যা করা দরকার। যে ভাষাগুলির দোভাষীর প্রয়োজন হয় না সেই স্ক্রিপ্টিং ভাষাগুলি অবশ্যই সরাসরি (ডাব্লু) আসমে সংকলিত হতে পারে, সেখানে একটি সংকলক (শৃঙ্খলা) রয়েছে যা লক্ষ্য হিসাবে এটি সমর্থন করে।


4
দম্পতি নোট। আপনার উত্তরের প্রথম অংশটি কিছুটা অস্পষ্ট বলে মনে হচ্ছে; দেখে মনে হচ্ছে আপনি বলছেন যে asm.js AOT কে একটি "আরও দক্ষ বাইকোড" হিসাবে সংকলন করবে। প্রকৃতপক্ষে, বাস্তবায়নের ক্ষেত্রে বাইটোকোডকে লক্ষ্য করতে হবে না এবং বাস্তবে অনেকে দেশীয় আইএসএকে সরাসরি এবং এওটি (যা সত্যই বিন্দু জাতীয়) লক্ষ্য করে। আপনি "asm এবং js এর সংকলনযোগ্য "ও বলেছেন। আপনি স্পষ্ট করে বলতে চাইবেন যে আপনি "দেশীয় সমাবেশ" বা কিছু বলতে চেয়েছিলেন or অথবা হতে পারে আপনি "asm.js এবং js" বোঝাতে চেয়েছিলেন তবে এটি খুব একটা কার্যকর নয় যেহেতু একটি অপরের সাবসেট।
tne

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

53

asm.js হ'ল "অত্যন্ত অনুকূলকরণযোগ্য" নির্দেশাবলী সহ জেএসের একটি উপসেট। মূলত আপনি প্রকারটি ঘোষণা করতে পারেন (ইনট, ফ্লোট) এবং জেএস ইঞ্জিন (ব্রাউজারগুলিতে তবে নোড.জেএস একটি) নির্দেশগুলি দ্রুত কার্যকর করে দেবে। আপনার অ্যাপ্লিকেশন যদি ওয়েবজিএল এর সাথে একত্রে ব্যবহৃত হয় তবে প্রচুর গণনা বা গ্রাফিক দিলে এর সুবিধা রয়েছে।

ওয়েব এসেম্বলিটি জেএস, সমস্ত জেএস, কেবল asm.js নয় বাইনারি ফর্ম্যাট is এটি বাইকোড নয়, এটি পার্সার গণনা করে এটিএসটির একটি বাইনারি এনকোডিং। এর 2 টি বড় সুবিধা রয়েছে:

  • জেএস ইঞ্জিন পার্সিং পদক্ষেপটি এড়িয়ে যেতে পারে
  • এটি জেএস মূল উত্সের চেয়ে অনেক বেশি কমপ্যাক্ট

আমরা ইতিমধ্যে ব্রাউজারগুলির জন্য কোড লিখতে পারি যা জেএস নয়: ইএমএসক্রিপটেন জেএস কোডে সি ++ কোড সংকলন করতে পারে। আপনার কোডটি জেএসে সংকলন করার জন্য অন্যান্য ট্রান্সকোম্পিলার ইতিমধ্যে উপলব্ধ। Asm.js ব্যবহার করে সেই কোডটি গণিত করলে দ্রুত চলতে পারে। ওয়েব সমাবেশটি ব্যবহার করে সেই কোডটি আরও কমপ্যাক্ট হবে এবং ব্রাউজারটি এটি দ্রুত প্রক্রিয়া করতে সক্ষম হবে (কারণ এটি পার্সিং এড়িয়ে যেতে সক্ষম হবে)। ডাইরেক্টএক্স, জাভা অ্যাপলেটস, ফ্ল্যাশ বা সিলভারলাইটের মতো লোড করার জন্য আপনার কাছে নতুন প্লাগইন নেই কারণ जेএস স্যান্ডবক্সে সবকিছু চলবে।


5
পার্সিং এড়িয়ে যাবেন? আস্তে আস্তে, সেখানে। অদূর ভবিষ্যতের জন্য হার্ডওয়্যার সমর্থন মানচিত্র থেকে দূরে। আপনি যা বলতে চাইছেন তা হল পার্সিং asm.js এর সাথে বাধা হয়ে দাঁড়ায় এবং একটি দক্ষ বাইনারি ফর্ম্যাট সহ জঞ্জালগুলি স্থির করে। Asm.js / wasm এর জন্য আপনার যুক্তিটি কিছুটা সংখ্যালঘু মনে হয় তবে ঠিক আছে। বাইটকোড দেখানোর জন্য প্রপস! = এএসটি।
tne

5
@ ক্রিশ্চিয়ান, ডাব্লুএএসএম জেএসের জন্য বাইনারি ফর্ম্যাট নয়। এটি জেএস হিসাবে একই ওয়েব এপিআই ব্যবহার করবে তবে এটি জেএসের চেয়ে অনেক বেশি বহনযোগ্য এবং সাধারণীকরণযোগ্য। জাতীয়, বা bytecodes কেবল বাইনারি ফরম্যাটের, ঐ ব্রাউজারে প্রয়োগ করা হয়, ফায়ারফক্স এখানে মত: developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/...
LearningFast

20

Asm.js কোডটি কি সময় এবং সঞ্চয়ে সংকলিত হয়? কি সংকলিত?

বিভিন্ন ব্রাউজার বিভিন্নভাবে asm.js কোডটি সংকলন করে। আগস্ট 2015 পর্যন্ত:

  • ফায়ারফক্স মেশিন কোডে asm.js সংকলন করে (এবং একই asm.js এর ভবিষ্যতের লোডগুলির জন্য মেশিন কোডটি ক্যাশে করে) [ 1 ]।
  • পরীক্ষামূলক পতাকা হিসাবে উইন্ডোজ 10-এ, এজ কিছু সময় আগে বৈধতা এবং asm.js সংকলনও করবে [ 2 ]।
  • কোডটি বিশদভাবে বিশদভাবে বিশ্লেষণ করতে এবং বিশ্লেষণ করতে এবং সংকলন হিউরিস্টিকটিকে টুইঙ্ক করার জন্য asm.js এর শুরুতে ক্রোম বিশেষত "ব্যবহার asm" নির্দেশকে স্বীকৃতি দেয়।
  • সাফারি asm.js এর কোনও বিশেষ প্রসেসিং করে না

Asm.js পাঠ্য এবং wasm (ওয়েব সমাবেশ) বাইনারি হওয়া ব্যতীত 2 এর মধ্যে পার্থক্যগুলি কী?

asm.js কেবল জাভাস্ক্রিপ্ট এবং সুতরাং জাভাস্ক্রিপ্ট অনুমান অনুযায়ী ঠিক আচরণ করতে হবে। একটি নতুন স্ট্যান্ডার্ড হিসাবে, ওয়েবঅ্যাস্পাবলিয়া এমন কয়েকটি কোণার ক্ষেত্রে ঠিক করতে সক্ষম হয়েছে যেখানে জাভাস্ক্রিপ্ট আচরণটি আদর্শ নয় (পারফরম্যান্স বা সংকলনের দিক থেকে) [ 3 ]। ভবিষ্যতে [ ], ওয়েবঅ্যাস্পেস্প এমন বৈশিষ্ট্যগুলি যুক্ত করতে সক্ষম করবে যা জাভাস্ক্রিপ্টে প্রকাশ করা অন্যথায় কঠিন।

ব্রাউজারে চলমান অন্যান্য স্ক্রিপ্টিং ভাষার জন্য এর অর্থ কী? উদাহরণস্বরূপ অজগর নিন, এটি হতে চলেছে

  • অজগর কোডটি কি সংকীর্ণ হয়েছে? বা
  • পাইথন ইন্টারপ্রেটার (সিপিথন) জঞ্জাল মধ্যে সংকলিত এবং পাইথন ব্যাখ্যা?

ভি .১-তে, ব্রাউজারে পাইথন চালানোর সহজতম উপায় হ'ল পাইথন দোভাষীকে জাল দিয়ে সংকলন করা, যেমনটি আপনি বলেছেন। এর অর্থ, উদাহরণস্বরূপ, পাইথন জিসি ওয়েম কোডে চলছে এবং ম্যানুয়ালি ওয়েম লিনিয়ার মেমরি পরিচালনা করছে। পাইপাই [ 5 ] এ যা asm.js ব্যাকএন্ড যুক্ত করার জন্য ইতিমধ্যে একটি পরীক্ষামূলক প্রকল্প রয়েছে (যা জঞ্জালের জন্য ঠিক কাজ করতে পারে)। এটি বর্তমানে asm.js এর সীমাবদ্ধতায় চলে যা ভেমের গতিশীল সংযোগের ভবিষ্যতের বৈশিষ্ট্য দ্বারা সম্বোধন করা যেতে পারে । আরও কিছুটা যেতে না যেতে, জিসি সংহতকরণ এবং জেআইটি সংকলন উভয়ই সরবরাহ করতে চায় যা ওয়েব প্ল্যাটফর্মের সাথে আরও দক্ষ এবং প্রাকৃতিক একীকরণের অনুমতি দেয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.