วิธีกำจัดค่าใช้จ่ายของ JIT ใน Julia ที่ปฏิบัติการได้ (ด้วย MWE)
ฉันกำลังใช้PackageCompilerหวังว่าจะสร้างไฟล์ปฏิบัติการที่กำจัดโอเวอร์เฮดการรวบรวมแบบทันเวลา เอกสารอธิบายว่าฉันต้องกำหนดฟังก์ชั่นjulia_mainเพื่อเรียกตรรกะของโปรแกรมและเขียน "snoop file" สคริปต์ที่เรียกใช้ฟังก์ชันที่ฉันต้องการคอมไพล์ล่วงหน้า My julia_mainรับอาร์กิวเมนต์เดี่ยวตำแหน่งของไฟล์ที่มีข้อมูลอินพุตที่จะวิเคราะห์ ดังนั้นเพื่อให้สิ่งต่าง ๆ ง่ายขึ้นไฟล์ snoop ของฉันเพียงแค่โทรออกครั้งเดียวjulia_mainด้วยไฟล์อินพุตเฉพาะ ดังนั้นฉันหวังว่าจะเห็นไฟล์ปฏิบัติการที่สร้างขึ้นนั้นทำงานได้ดีและรวดเร็ว (ไม่มีการคอมไพล์โอเวอร์เฮด) เมื่อดำเนินการกับไฟล์อินพุตเดียวกัน แต่อนิจจานั่นไม่ใช่สิ่งที่ฉันเห็น ในตัวอย่างจูเลียใหม่julia_mainจะใช้เวลาประมาณ 74 วินาทีสำหรับการดำเนินการครั้งแรกและประมาณ 4.5 วินาทีสำหรับการดำเนินการครั้งต่อไป ไฟล์เรียกทำงานจะใช้เวลาประมาณ 50 วินาทีในแต่ละครั้งที่เรียกใช้ การใช้งานbuild_executableฟังก์ชั่นของฉันเป็นดังนี้: julia> using PackageCompiler julia> build_executable("d:/philip/source/script/julia/jsource/SCRiPTMain.jl", "testexecutable", builddir = "d:/temp/builddir4", snoopfile = "d:/philip/source/script/julia/jsource/snoop.jl", compile = "all", verbose = true) คำถาม: ข้อโต้แย้งข้างต้นถูกต้องเพื่อให้บรรลุเป้าหมายของฉันในการปฏิบัติการที่ไม่มีค่าใช้จ่าย JIT หรือไม่? คำแนะนำอื่น ๆ สำหรับฉัน …