هرمس (Hermes) موتور جدید جاوا اسکریپت
- ارسال شده توسط امیر به آموز
- دسته بندی جاوا اسکریپت, ریکت نیتیو
- تاریخ شهریور ۱۱, ۱۳۹۸
- نظرات ۰ نظر
یک موتور متن باز (open source) جاوا اسکریپتی هست که برای بهینه سازی اپ هایی که از طریق ریکت نیتیو (React Native) برای موبایل ساخته می شوند ، مورد استفاده قرار میگیرد.
با توجه به اینکه اپلیکیشن های تحت موبایل در حال بزرگتر شدن و پیچیده تر شدن هستند ، اپلیکیشن های بزرگی که از چارچوب یا فریم وورک های جاوا اسکریپت استفاده می کنند اغلب با سازندگان و توسعه دهندگانی که یکسری امکانات و پیچیدگی هایی به کار اضاف می کنند ، دچار اشکال می شود.
این اشکالات از نقاط مختلفی سرچشمه می گیرد ، اما کسانیکه از این اپلیکیشن ها استفاده می کنند مسلما انتظار دارند که اون اپلیکیشن به راحتی و سادگی اجرا شود و کار کند ، بدون در نظر داشتن اینکه از چه دستگاه موبایلی استفاده می کنند.
اتفاق جالبی که رخ داده این هست که ، توسعه دهندگان و سازندگانی که برای برنامه های فیسبوک کار می کنند ، تا کدهای جاوا اسکریپت کارشون رو ارتقاء و بهینه سازی بیشتری کنند ، زمان آنالیز و تجزیه و تحلیل کارشون متوجه شدند که موتور جاوا اسکریپتی که در حال استفاده از اون هستند ، خودش یک عامل بسیار مهم در زمان شروع به کار و اجرای اپلیکیشن و حجم فایل تولیدی نهایی می باشد.
حالا با توجه به این دستاورد و اطلاعات جدید ، پی بردند که چیزی فراتر از بهینه سازی عملکرد جاوا اسکریپت در مورد گوشی های موبایل در مقایسه با لپ تاپ و کامپیوتر های شخصی ، باید صورت بگیرد.
با بررسی تمامی گزینه ها ، در نهایت اقدام به ساخت یک موتور جدید برای جاوا اسکریپت کردند بنام هرمس (Hermes) . که برای ارتقاء عملکرد بهتر اپلیکیشن ها طراحی شده و تمرکز اصلی آن بروی اپ های ریکت نیتیو (React Native) می باشد ، حتی با در نظر گرفتن بازار وسیع دستگاه های موبایل که دارای حافظه های محدود و کند می باشند و عملکر محاسباتی ضعیفی دارند.
چگونه هرمس (Hermes) کارایی و عملکرد ریکت نیتیو (React Native) را بهبود می بخشد ؟
برای اپلیکیشن های موبایل تحت جاوا اسکرپیت ، تجربه ی کاربری (UX) از در نظر گرفتن چند معیار اصلی ناشی می شود :
- زمانی که صرف می شود تا اپلیکیشن قابل استفاده و آماده به کار باشد ، که زمان پاسخگویی نامیده می شود یا همان TTI که مخفف Time To Interact می باشد . (TTI)
- حجم و اندازه اون اپلیکیشن برای دانلود (APK)
- استفاده از حافظه (Memory)
همانطور که در تصویر مشاهده می کنید ، این 3 معیاری که باهم بررسی کردیم ، بخوبی قابل رویت است.
در یک حالت تست شده زمان پاسخگویی اپ تقریبا به نصف کاهش پیدا کرده و این یعنی سرعت اجرای 2 برابر و همینطور حجم فایل نهایی APK چیزی نزدیک به نصف کاهش پیدا کرده و این یعنی حجم کمتر فایلمون ، و در نهایت از حافظه ی بمراتب کمتری استفاده می کند.
قابل توجه است که معیارهای اولیه و اصلی تیم سازنده ، در رابطه با استفاده از موتورهای CPU هنگام اجرای کدهای جاوا اسکریپت ، نسبتاً غیر حساس هستند چرا که تمرکز بر روی این معیارها ، منجر به استراتژی ها و معادلات متفاوتی می شود که امروزه با بیشتر موتورهای جاوا اسکریپتی متفاوت است. بر همین اساس این تیم ، هرمس (Hermes) را از صفر طراحی و پیاده سازی کرد. در نتیجه ی این تمرکز گرایی ، پیاده سازی این تیم برای برنامه های ریکت نیتیو (React Native) بهبود بسیار قابل توجهی ایجاد می کند.
از آنجا که هرمس (Hermes) برای اپلیکیشن های موبایل بهینه سازی شده است ، فعلا برنامه ای برای ادغام آن با هیچ مرورگری یا زیرساخت های سرور نظیر Node.js نیست. پس در این محیط ها ، فعلا موتورهای جاوا اسکریپت موجود دارای اولویت می باشند.
تصمیمات کلیدی معماری هرمس
محدودیت های دستگاه تلفن همراه مانند کم بودن حافظه رم (RAM) و یا کند بودن سرعت فلش (flash) ، باعث شد تا تصمیماتی برای ساختن معماری خاصی گرفته شود. برای بهینه سازی در این محیط ، موارد زیر اجرا شد :
بایت کد قبل از کامپایل شدن (Bytecode precompilation)
عدم بکارگیری JIT یا همان (Just In Time)
استفاده از استراتژی جمع آوری کردن زباله های حافظه یا (Garbage collector)
برچسب:hermes چیست, javascript, react native, جاوا اسکریپت, ریکت نیتیو, هرمس

ممکن است همچنین دوست داشته باشید

تنظیمات پیش نیازها و نصب ریکت نیتیو

استفاده از هرمس (Hermes) در 1 دقیقه
