تفاوت JIT compilation و AOT compilation چیست؟

0 رأی
میانگین بازدید روزانه 0.29638 بازدید

زبان های برنامه نویسی که از ماشین مجازی (vm) برای اجرای برنامه در زمان اجرا استفاده می کنند (مانند جاوا ، C# و Erlang) می توانند با افزودن قابلیت هایی به ماشین مجازی، کارایی و سرعت اجرای برنامه های خود را بالا ببرند.

برای مثال ماشین مجازی جاوا برای بالا بردن سرعت از قابلیت JIT compilation یا Just-in-time compilation استفاده می کند و ماشین مجازی Erlang از قابلیت  AOT compilation یا ahead-of-time compilation استفاده می کند.

سوال من این است که این دو روش چه تفاوتی با یکدیگر دارند؟

سوال 6 سال قبل در تالار برنامه نویسی توسط Saeed Zarinfam (1,385 امتیاز)

1 جواب

0 رأی
 
بهترین جواب

JIT compilation به قابلیت کامپایل داینامیک و در زمان اجرای کدهای میانی (byte code) به زبان ماشین توسط ماشین مجازی گویند که باعث اجرای سریعتر کدهای میانی توسط ماشین مجازی می شود.

AOT compilation به قابلیتی گفته می شود که قبل از اجرای برنامه، قسمت یا تمامی کدهای میانی به زبان ماشین (یا شبیه زبان ماشین) کامپایل می شوند و باعث می شود بهینه سازی های استاتیک برروی کد میانی قبل از اجرای برنامه صورت گیرد و در نتیجه سرعت اجرای برنامه بالاتر رود.

AOT compilation برای ماسین های مجازی توکار که نمی توانند حافظه زیادی برای اجرا شدن داشته باشند مناسب تر است، بدلیل اینکه ماشین های مجازی که قابلیت JIT compilation را دارند حافظه بیشتری برای اجرا می خواهند و کمی سربار محاسباتی زمان اجرا نیز دارند.

جواب 6 سال قبل توسط Saeed Zarinfam (1,385 امتیاز)

سوال های مشابه

0 رأی
2 جواب میانگین بازدید روزانه 0.31517 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.16295 بازدید
+2 رأی
0 جواب میانگین بازدید روزانه 0.09204 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.1850 بازدید
سوال 9 ماه قبل در تالار برنامه نویسی توسط یوری (307 امتیاز)
0 رأی
1 جواب میانگین بازدید روزانه 0.1549 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.2297 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.1468 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.1479 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.11128 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.29338 بازدید
کانال تلگرام جواب یاب
...