এএসএম.জেএস কী এবং এটি সবার জন্য কী বোঝায়?


27

আমি ASM.js নামে পরিচিত এই প্রকল্পটি সম্পর্কে গণ্ডগোল শুনতে শুরু করছি । বর্তমানে তাদের ওয়েব সাইটটি ভয়াবহ এবং বিভ্রান্তিকর। ওয়েবে আমার গবেষণা থেকে আমি যা জানি তা এখানে।

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

এটি আসলে কী বা এর উপযোগিতা বা চূড়ান্ত উদ্দেশ্য সম্পর্কে ওয়েবে কোনও ठोस তথ্য নেই বলে মনে হয় । এটি কি আমি আমার অন্যথায় সার্ভার-সাইড কোড ঘাঁটিগুলি সংকলন করতে পারি এবং এটি ব্রাউজারে কাছের থেকে দেশীয় গতিতে চালিত করতে পারি? বিকাশকারীদের জন্য কী কী পদক্ষেপ রয়েছে?

উত্তর:


21

আপনি ইতিমধ্যে বর্ণিত এটা কি হয় । ব্যবহারটি হ'ল এটি একটি নিম্ন-স্তরের ভাষা যা সমস্ত ব্রাউজারগুলিতে কাজ করে, বেশিরভাগ ক্ষেত্রে বেশ দ্রুত এবং কিছুতে খুব দ্রুত। আপনি এটিকে যা করেন তা অন্য কোনও প্রোগ্রামিং ভাষার সাথে আপনি যেমন করেন তেমনই মুক্ত open

মোজিলাকে সবচেয়ে বেশি আগ্রহী বলে মনে হচ্ছে এটি হ'ল এমএস স্ক্রিপ্টের মাধ্যমে জাভাস্ক্রিপ্টে এলএলভিএম ব্যাকেন্ডের (সর্বাধিক উল্লেখযোগ্য সি এবং সি ++) সহ ভাষা সংকলনের বিভিন্ন উপায় ইতিমধ্যে রয়েছে। এমএসপ্লিটেন ইতিমধ্যে যা প্রকাশ করে তার খুব কাছাকাছি, তাই এটি এমস্ক্রিপ্টেন কোড (যা ইতিমধ্যে কার্যকরভাবে আজকের জাভাস্ক্রিপ্ট জেআইটি সংকলকগুলিতে দ্রুততর) ওয়েবে বিদ্যমান কোড ঘাঁটি পোর্টিংয়ের লক্ষ্যটিকে আরও বাড়িয়ে তোলে। আবার, আপনি ঠিক কী জন্য এটি ব্যবহার করেন তা আপনার সিদ্ধান্ত your পোর্টিং গেমগুলি একটি ব্যবহারের কেস (যা মজিলা স্পষ্টভাবে সক্রিয়ভাবে জড়িত রয়েছে), তবে সি এবং সি ++ তে লেখা অনেকগুলি বিষয় রয়েছে যার মধ্যে বেশ কয়েকটি কয়েকটি কারও ওয়েবসাইটের জন্য কার্যকর হতে পারে। কয়েকজনকে আমি আশেপাশে (কিছু প্লাস আমার নিজস্ব ধারণা তৈরি) দেখেছি, সম্ভাব্যতার বিষয়ে কোনও গ্যারান্টি ছাড়াই:

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

2
এখানে আরও একটি ভাল ব্যাখ্যা এখানে দেওয়া হয়েছে: ejohn.org/blog/asmjs- javascript
Jarrod Nettles

1
এখানে একটি জেআইটি asm.js তে পোর্ট করার ধারণার প্রমাণ রয়েছে। এটি একটি অনন্য বিক্রয় কেন্দ্র, বেশিরভাগ উদীয়মান প্ল্যাটফর্মগুলি জেআইটি-বান্ধব নয়।
তোবু

Asm.js কীভাবে JIT সংকলন সমর্থন করে তার কোনও ব্যাখ্যা আছে? এটিতে কোনও তথ্য খুঁজে পাওয়া যাবে না বলে মনে হচ্ছে। সুরক্ষা সংক্রান্ত প্রভাবগুলি কীভাবে পরিচালিত হয় সে সম্পর্কে সর্বাধিক আগ্রহী।
রোমান স্টারকভ

ব্রাউজার দিয়ে মেশিনে কোডে asm.js এর জে আই টি JIT সংকলন, অথবা জে আই টি JIT সংকলন @romkyns করার (ক জাভাস্ক্রিপ্ট প্রোগ্রাম দ্বারা) asm.js? অন্তত ফায়ারফক্সে প্রাক্তনদের জন্য খাঁটি-জেএস জেআইটি সংকলকগুলির মেশিন কোড জেনারেশন সুবিধা পুনরায় ব্যবহার করা হয়। যেহেতু asm.js কেবল জেএসে কল করতে পারে, পাটিগণিত সম্পাদন করতে পারে এবং সূচি-ইন-রেঞ্জের চেক সহ একটি হিপ অ্যারে পড়তে / লিখতে পারে সুরক্ষা জেএস কার্যকর করার নিরাপত্তা ততটা উত্তম। পরেরটির জন্য, আপনি কেবল asm.js উত্স কোড উত্পন্ন করুন এবং ব্রাউজারটি এটি কার্যকর করতে দিন, এবং আমি পূর্বে যেটি উল্লেখ করেছি তার বাইরে কোনও অতিরিক্ত সুরক্ষা সম্পর্কিত প্রভাব নেই।

(আমি বোঝাতে চেয়েছি) ওহ অবশ্যই; কোনওভাবে আমি জেআইটি সংকলক দেশী মেশিন কোড নির্গমন করে কল্পনা করেছিলাম। স্পষ্টতার জন্য ধন্যবাদ!
রোমান স্টারকভ

4

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

ASM.js গেম মধ্যে সীমাবদ্ধ থাকবে না, আপনি এমনকি পুরো কিউটি আপনার ব্রাউজারে অ্যাপ্লিকেশান, মত চালাতে পারেন এই !

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