การเปลี่ยนแปลงที่สำคัญ:
- มีการเพิ่มแคชในการเรียกเมธอดเพื่อหลีกเลี่ยงการแก้ปัญหาการโอเวอร์โหลด ซึ่งจะช่วยลดผลกระทบต่อประสิทธิภาพการทำงานของการแก้ไขเมธอดได้อย่างมาก โดยเฉพาะอย่างยิ่งหากมีการเรียกใช้โอเวอร์โหลดเดียวกันหลายครั้ง เช่น ในระหว่างการประมวลผลลูป
- ตั้งแต่ 4 ถึง 100 ครั้ง ขึ้นอยู่กับประเภทข้อมูล การถ่ายโอนรายการ สิ่งอันดับ และบัฟเฟอร์ไปยังอาร์เรย์ของ Java primitives จะถูกเร่งให้เร็วขึ้น การแปลงใช้การประมวลผลบัฟเฟอร์ในหน่วยความจำที่ปรับให้เหมาะสม แทน Sequence API เมื่อพบบัฟเฟอร์ Python จะมีการตรวจสอบเฉพาะองค์ประกอบแรกสำหรับการแปลง เนื่องจากบัฟเฟอร์เหล่านี้เป็นเนื้อเดียวกัน
- กำลังดำเนินการปิดระบบ (ใช้งานใน JPype 1.0.0 แต่ถูกข้ามไปเมื่อเตรียมบันทึกการเปลี่ยนแปลง) ตอนนี้ JPype เรียกรูทีนการปิดระบบ JVM ซึ่งพยายามออกอย่างสง่างาม สิ่งนี้นำไปสู่การเปลี่ยนแปลงพฤติกรรมหลายประการ เธรดที่ไม่ใช่พื้นหลัง (การเรียกพร็อกซี) สามารถเปิด JVM ไว้ได้จนกว่าจะเสร็จสิ้น การโทรผ่านพร็อกซีจะดำเนินการปิดเครื่องจนกว่าการโทรจะเสร็จสิ้น แต่จะได้รับข้อความยกเลิก ขณะนี้ไฟล์ถูกปิดอย่างถูกต้องและถูกล้างลงดิสก์หากเธรดจัดการข้อยกเว้นตามที่คาดไว้ hook การล้างข้อมูลทรัพยากรและผู้สรุปผลจะถูกดำเนินการ เมื่อเธรดถูกวางไข่ AtExit hooks จะถูกเรียก ผ่าน daemon การแนบเธรดอัตโนมัติจะถูกนำมาใช้เมื่อใช้ JVM จาก Python รหัส Buggy ที่ไม่สามารถจัดการการล้างเธรดได้อย่างถูกต้องมีแนวโน้มที่จะหยุดทำงานเมื่อมีการดำเนินการปิดเครื่อง สามารถดูเอกสารเพิ่มเติมได้ในคู่มือผู้ใช้
- wrapper สำหรับ Throwable ได้รับ wrapper สำหรับ Object แทนที่จะเป็นผลลัพธ์ที่คาดหวัง ซึ่งนำไปสู่การแปลงที่แปลกจากคลาส Python
- แก้ไขการพิมพ์ผิดในระบบนำเข้าซึ่งส่งผลให้เกิดข้อผิดพลาด '»jname» not found'
- ตรวจสอบให้แน่ใจว่า "^C" ได้รับการเลื่อนระดับอย่างถูกต้องใน KeyboardInterrupt
- แก้ไขปัญหาเกี่ยวกับสัญลักษณ์ตั้งแต่ Python 3.5.3 PySlice_Unpack เปิดตัวในการเปิดตัวแพตช์ถัดไป (3.5.4) และไม่ควรใช้
- แก้ไขข้อบกพร่องด้วย numpy.linalg.inv ที่ทำให้เกิดข้อขัดข้อง ปัญหาได้รับการตรวจสอบจากการสื่อสารแบบเธรดระหว่าง JVM และรสชาติที่เข้มข้นบางอย่าง โซลูชันที่นำเสนอคือการเรียก numpy.linalg.inv ก่อนที่จะเริ่ม JVM
ที่มา: opennet.ru