asm.js – جاوااسکریپت در مرورگر با سرعت زبانهای کامپایلی!

چند روز پیش مقالهء ویکیپدیا درمورد asm.js رو خوندم.
این چیه؟
میشه با این سیستم برنامه های به زبانهایی مثل C و C++ رو به کدهای جاوااسکریپتی تبدیل کرد که در مرورگر با سرعت نزدیک به سرعت برنامه های native اجرا بشه (یا حداقل سرعت خیلی بیشتر نسبت به جاوااسکریپت معمولی در مرورگر). چون میدونید که جاوااسکریپت معمولی که در مرورگر اجرا میشه خیلی کندتر از برنامه های کامپایلی مثل برنامه های زبان سی و سی++ اجرا میشه و بخاطر همین نمیشه هر پردازش و کاربردی رو براحتی در مرورگر انجام داد و پیاده سازی کرد.

با این سیستم میشه برنامه های وبی نوشت که پردازشهای سنگین و نیازمند پرفورمنس بالا رو انجام میدن. مثلا در گیم های با گرافیک سنگین این میتونه مفید باشه. یکسری کاربردهای امنیتی و رمزنگاری هم بنظر خودم میرسه بر اساس اطلاعاتی که دارم میدونم برای بعضی سیستمهای امنیتی و رمزنگاری، به پردازش با پرفورمنس بالا در سمت کلاینت نیاز است.

جالبیش اینه هیچ پلاگینی چیزی نمیخواد روی مرورگر نصب باشه! تاجاییکه من فهمیدم خروجی فقط کد جاوااسکریپت با سینتاکس محدود شده ای هست که به شکل خاص و بهینه ای نوشته شده.
البته بعضی مرورگرها مثل فایرفاکس و کروم که پشتیبانی/بهینه سازی خاص برای این نوع کدها دارن طبیعتا این کدها رو با سرعت بیشتری اجرا میکنن، ولی مرورگرهای دیگر هم به گمانم با سرعت بیشتری نسبت به جاوااسکریپت معمولی، asm.js رو اجرا میکنن (در این باب مطمئن نیستم).

البته ظاهرا علت امکان پذیر شدن چنین چیزی، افزایش چشمگیر سرعت javascript engine ها در سالهای اخیر هم بوده.

جالب اینکه حتی برنامه هایی مثل Unreal Engine توسط این سیستم port شدن (یعنی در مرورگر میتونن اجرا بشن).

در پایان بخاطر کاملتر بودن مطلب عرض کنم که از فناوریهای رقیب این فناوری میشه به Google Native Client و WebAssembly اشاره کرد.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

*

شما می‌توانید از این دستورات HTML استفاده کنید: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>