Terminologi
CLI: Infrastruktur Bahasa Umum adalah spesifikasi di bawah kerangka kerja .NET yang mendefinisikan runtime lintas arsitektur agnostik bahasa. Oleh karena itu, kami dapat mengembangkan perangkat lunak dalam berbagai bahasa tingkat tinggi di bawah spesifikasi yang dapat berjalan di berbagai arsitektur komputer tanpa modifikasi
CLR: Common Language Runtime. adalah spesifikasi yang memastikan bahwa lingkungan operasi tidak bergantung pada bahasa dan lintas arsitektur
CTS: Sistem Tipe Umum
CLS: Spesifikasi Bahasa Umum
FCL: Framework Class Library 架构类库,包含两部分: 基础类库 Base Class Library 和成品类库
IL: Bahasa Menengah Bahasa Langsung, Kompiler Bahasa Lanjutan mengkompilasi kode sumber bahasa lanjutan ke dalam bahasa perantara.
JIT: Just In Time Compiler mengkompilasi bahasa perantara ke dalam kode mesin yang dapat dipahami komputer, yang kemudian dapat dieksekusi
Kode Sumber dikompilasi ke dalam IL oleh Kompiler C# (yaitu, program, dll, ex, dll.). CLR memuat IL ini, mengkompilasinya menjadi kode mesin melalui JIT, dan akhirnya dieksekusi, seperti yang ditunjukkan pada gambar berikut:
JIT (Just-in-time compiler) dikompilasi dengan cepat
Kompiler just-in-time (JIT) adalah bagian dari Common Language Runtime (CLR) di .NET dan bertanggung jawab untuk mengelola file . .NET, terlepas dari . Bahasa pemrograman .NET. Kompiler khusus bahasa mengonversi kode sumber ke bahasa perantara. Bahasa perantara ini kemudian diubah menjadi kode mesin oleh kompiler just-in-time (JIT). Kode mesin ini khusus untuk lingkungan komputer tempat kompiler JIT berjalan. Pekerjaan Kompiler JIT: Kompiler JIT perlu mempercepat eksekusi kode dan memberikan dukungan untuk berbagai platform. Begini cara kerjanya:
Kompiler JIT mengonversi Microsoft Intermediate Language (MSIL) atau Common Intermediate Language (CIL) menjadi kode mesin. Ini dilakukan sebelum melakukan MSIL atau CIL. MSIL dikonversi ke kode mesin sesuai kebutuhan, yaitu, kompiler JIT mengkompilasi MSIL atau CIL sesuai kebutuhan, daripada mengkompilasi seluruh kode. Simpan MSIL atau CIL yang dikompilasi sehingga dapat digunakan untuk panggilan berikutnya jika diperlukan.
Kelebihan JIT:
- Ini dapat dikompilasi dan dihasilkan secara real time sesuai dengan situasi perangkat keras saat ini
- Urutan instruksi mesin yang optimal dapat dihasilkan sesuai dengan operasi program saat ini
- Ketika sebuah program perlu mendukung penautan dinamis, program hanya dapat menggunakan metode kompilasi JIT
- Kode dapat disesuaikan sesuai dengan situasi memori aktual dalam proses untuk memanfaatkan memori dengan lebih baik
Kekurangan JIT:
- Mengkompilasi membutuhkan sumber daya runtime runtime, yang menyebabkan proses tersendat saat mengeksekusi
- Kompilasi membutuhkan waktu berjalan, dan beberapa pengoptimalan kompilasi kode tidak dapat didukung sepenuhnya, sehingga perlu untuk menyeimbangkan kefasihan dan waktu
- Persiapan kompilasi dan identifikasi metode yang sering digunakan memakan waktu, dan kompilasi awal tidak mencapai kinerja tertinggi
AOT (Advance-of-time compiler) dikompilasi terlebih dahulu
Dalam ilmu komputer, kompilasi awal (kompilasi AOT) adalah tindakan mengkompilasi bahasa pemrograman tingkat tinggi (biasanya) ke dalam bahasa tingkat rendah (biasanya) sebelum mengeksekusi program, biasanya pada waktu build, untuk mengurangi jumlah upaya yang perlu dilakukan pada runtime.
Sebagian besar waktu, ini tidak sama dengan menggabungkan bahasa pemrograman tingkat tinggi (seperti C atau C++) atau representasi perantara seperti Java bytecode atau . Kode Common Intermediate Language (CIL) NET Framework) yang dikompilasi untuk menjadi perilaku asli (bergantung pada sistem). kode mesin sehingga biner yang dihasilkan dapat dieksekusi secara asli, seperti kompiler asli standar. Ketika digunakan dalam lingkungan khusus ini, sering dilihat sebagai antitesis dari kompilasi just-in-time (JIT).
Kompilasi AOT terjadi sebelum program dikompilasi atau diinstal, yaitu mengkompilasi skrip atau bytecode ke dalam kode mesin dan menjalankannya secara langsung saat diperlukan. Ini dapat meningkatkan kecepatan startup program dan menghindari penundaan yang disebabkan oleh proses kompilasi.
Kelebihan AOT:
- Mengkompilasi sebelum program berjalan menghindari performa kompilasi dan konsumsi memori saat runtime
- Performa puncak dapat dicapai di awal program
- Ini dapat secara signifikan mempercepat efisiensi eksekusi program
Kekurangan AOT:
- Mengkompilasi sebelum program berjalan meningkatkan waktu yang dibutuhkan untuk menginstal program
- Menyimpan konten yang telah dikompilasi sebelumnya membutuhkan lebih banyak memori
- Mengorbankan konsistensi bahasa tingkat tinggi
ringkasan
JIT: Throughput tinggi, bonus kinerja runtime, dapat berjalan lebih cepat, dan dapat menghasilkan kode secara dinamis, dll., tetapi relatif lambat untuk memulai dan membutuhkan sejumlah waktu dan frekuensi panggilan tertentu untuk memicu mekanisme pelapisan JIT AOT: Penggunaan memori rendah, kecepatan startup yang cepat, dapat langsung menghubungkan runtime secara statis ke program akhir tanpa runtime, tetapi tidak ada bonus kinerja runtime, dan tidak dapat dioptimalkan lebih lanjut sesuai dengan berjalannya program
Referensi:
Login hyperlink terlihat.
Login hyperlink terlihat.
Login hyperlink terlihat.
Login hyperlink terlihat.
Login hyperlink terlihat.
Login hyperlink terlihat.
Login hyperlink terlihat.
|