- Kotlin K2 compiler กลายเป็นเวอร์ชันทางการแล้ว โดยมีข้อดีเช่น ประสิทธิภาพที่ดีขึ้นเมื่อเทียบกับคอมไพเลอร์เดิม ความเร็วในการพัฒนาฟีเจอร์ภาษาใหม่ที่มากขึ้น และโครงสร้างที่ปรับปรุงสำหรับโปรเจกต์มัลติแพลตฟอร์ม
- มีการปรับปรุง smart cast ในตัวแปรโลคัลและสโคปที่กว้างขึ้น การตรวจสอบประเภทด้วยตัวดำเนินการ logical or,
inline function, คุณสมบัติชนิดฟังก์ชัน, การจัดการข้อยกเว้น, ตัวดำเนินการเพิ่ม/ลดค่า เป็นต้น
- ในโปรเจกต์มัลติแพลตฟอร์ม มีการแยกอย่างเข้มงวดระหว่างการคอมไพล์ซอร์สร่วมและซอร์สของแต่ละแพลตฟอร์ม และใน
expect/actual declaration สามารถมีระดับการมองเห็นต่างกันได้
- Kotlin/Wasm ได้รับการปรับปรุง เช่น รองรับการเพิ่มประสิทธิภาพด้วย Binaryen เป็นค่าเริ่มต้น รองรับ named export, รองรับ unsigned primitive type ในฟังก์ชัน
@JsExport, รองรับการ catch JS exception เป็นต้น
- Kotlin/JS ได้รับการปรับปรุง เช่น เพิ่มเป้าหมายการคอมไพล์
es2015, คอมไพล์ suspend function เป็น ES generator, ส่งอาร์กิวเมนต์ให้ฟังก์ชัน main, คอมไพล์ระดับไฟล์, ปรับปรุง collection interop, ปลั๊กอิน js-plain-objects เป็นต้น
- Kotlin Multiplatform ได้รับการปรับปรุง เช่น การตั้งค่า compiler options ด้วย Gradle DSL, การรวม Compose compiler plugin, การเปลี่ยนโฟลเดอร์ข้อมูล Kotlin, การดาวน์โหลด Kotlin/Native compiler เมื่อต้องใช้ เป็นต้น
- ฟังก์ชัน generic สำหรับแทนที่
values ของ enum class ใน standard library, อินเทอร์เฟซ AutoCloseable, และ common extension functions ได้เปลี่ยนเป็นสถานะ stable
1 ความคิดเห็น
นี่คือเบนช์มาร์กประสิทธิภาพคอมไพเลอร์แบบง่าย ๆ (และสุดโต่ง)
https://github.com/ganadist/kotlin_build_performance
แต่ละโปรเจ็กต์มี class 200 ตัว และแต่ละ class มีฟิลด์ 2000 ตัว
java : 2 วินาที
kotlin 1.9.24 : 1 นาที 20 วินาที
kotlin 2.0.0 : 1 นาที 1 วินาที
ทดสอบบน Macbook Pro M1 Max
โปรเจ็กต์ข้างต้นเป็นกรณีที่ค่อนข้างสุดโต่ง แต่โดยทั่วไปแล้วดูเหมือนว่าความเร็วในการคอมไพล์ของ kotlin 2.0 จะเร็วกว่า 1.9 ราว 2 เท่า