คำถามติดแท็ก jit

1
ทำความเข้าใจกับความแตกต่าง: ล่ามแบบดั้งเดิมคอมไพเลอร์ JIT ล่าม JIT และคอมไพเลอร์ AOT
ฉันพยายามที่จะเข้าใจความแตกต่างระหว่างล่ามแบบดั้งเดิมคอมไพเลอร์ JIT ล่าม JIT และคอมไพเลอร์ AOT ล่ามเป็นเพียงเครื่อง (เสมือนหรือทางกายภาพ) ที่ดำเนินการคำสั่งในภาษาคอมพิวเตอร์บางภาษา ในแง่นี้ JVM เป็นล่ามและ CPU จริงเป็นล่าม การคอมไพล์ล่วงหน้าเวลาหมายถึงการคอมไพล์โค้ดเป็นภาษาบางภาษาก่อนดำเนินการ (ตีความ) มัน อย่างไรก็ตามฉันไม่แน่ใจเกี่ยวกับคำจำกัดความที่แน่นอนของผู้แปล JIT และล่าม JIT ตามคำนิยามผมอ่าน, JIT รวบรวมเป็นเพียงการรวบรวมรหัสเพียงก่อนที่จะแปลความหมายของมัน ดังนั้นโดยทั่วไปการรวบรวม JIT ก็คือการรวบรวม AOT เสร็จสิ้นก่อนดำเนินการ (ตีความ) ใช่ไหม และล่าม JIT เป็นโปรแกรมที่มีทั้งคอมไพเลอร์ JIT และล่ามและรวบรวมรหัส (JITs มัน) ก่อนที่มันจะตีความมัน? โปรดอธิบายความแตกต่าง

11
การสำรองการอ้างสิทธิ์ที่ C ++ สามารถทำได้เร็วกว่า JVM หรือ CLR ด้วย JIT คืออะไร [ปิด]
ชุดรูปแบบที่เกิดขึ้นซ้ำ ๆ ใน SE ที่ฉันสังเกตเห็นในคำถามหลายข้อเป็นข้อโต้แย้งอย่างต่อเนื่องว่า C ++ นั้นเร็วกว่าและ / หรือมีประสิทธิภาพมากกว่าภาษาระดับสูงกว่าอย่าง Java ข้อโต้แย้งคือ JVM หรือ CLR ที่ทันสมัยสามารถมีประสิทธิภาพได้เช่นเดียวกับ JIT และอื่น ๆ สำหรับงานที่เพิ่มมากขึ้นและ C ++ นั้นมีประสิทธิภาพมากขึ้นถ้าคุณรู้ว่าคุณกำลังทำอะไรและทำไมการทำสิ่งต่าง ๆ จะเพิ่มประสิทธิภาพการทำบุญ นั่นชัดเจนและสมเหตุสมผลดี ฉันต้องการทราบคำอธิบายพื้นฐาน (หากมีสิ่งนั้น ... ) ว่าทำไมและอย่างไรงานบางอย่างจะเร็วขึ้นใน C ++ กว่า JVM หรือ CLR? มันเป็นเพราะ C ++ ถูกคอมไพล์เป็นรหัสเครื่องในขณะที่ JVM หรือ CLR ยังคงมีโอเวอร์เฮดของการประมวลผลของการคอมไพล์ JIT ณ รันไทม์? เมื่อฉันพยายามที่จะศึกษาหัวข้อทั้งหมดที่ฉันพบคือข้อโต้แย้งเดียวกับที่ฉันระบุไว้ข้างต้นโดยไม่มีข้อมูลรายละเอียดใด ๆ …
119 java  c++  performance  jit 

4
คอมไพเลอร์ JIT สำหรับ C, C ++ และไลค์
มีคอมไพเลอร์ทันเวลาหรือไม่สำหรับภาษาที่คอมไพล์เช่น C และ C ++ (ชื่อแรกที่นึกได้คือ Clang และ LLVM! แต่ฉันไม่คิดว่าพวกเขาจะสนับสนุน) คำอธิบาย: ฉันคิดว่าซอฟต์แวร์สามารถได้รับประโยชน์จากข้อเสนอแนะการทำโปรไฟล์รันไทม์และการรวบรวมฮอตสปอตที่รันไทม์ให้ได้ประสิทธิภาพสูงสุดแม้สำหรับภาษาที่คอมไพล์ระหว่างเครื่องเช่น C และ C ++ การปรับให้เหมาะสมแบบแนะนำตัวด้วยโปรไฟล์ทำหน้าที่คล้ายกัน แต่ด้วยความแตกต่าง JIT จะมีความยืดหยุ่นมากขึ้นในสภาพแวดล้อมที่แตกต่างกัน ใน PGO คุณเรียกใช้ไบนารีของคุณก่อนที่จะปล่อย หลังจากคุณเผยแพร่แล้วจะไม่มีการรวบรวมผลตอบรับจากสภาพแวดล้อม / อินพุตที่รันไทม์ ดังนั้นหากรูปแบบการป้อนข้อมูลมีการเปลี่ยนแปลงมันจะสอบสวนเพื่อปรับประสิทธิภาพ แต่ JIT ใช้งานได้ดีแม้ในสภาพนั้น อย่างไรก็ตามฉันคิดว่ามันเป็นเรื่องที่ถกเถียงกันอยู่ว่าการรวบรวม JIT นั้นมีประโยชน์มากกว่าค่าใช้จ่ายของตัวเอง

4
ทำไมหลังจากรีสตาร์ทแต่ละครั้งไซต์. NET ภายในเครื่องของฉันต้องใช้เวลาโหลดเป็นครั้งแรก [ปิด]
ฉันกำลังพัฒนาเว็บไซต์โดยใช้แพลตฟอร์ม. NET ฉันมักจะปรับใช้เว็บไซต์เหล่านี้ใน IIS ท้องถิ่นของฉันเพื่อให้ฉันสามารถทดสอบพวกเขาและดูการทำงานของพวกเขาก่อนที่จะมีชีวิตอยู่ อย่างไรก็ตามทุกครั้งที่ฉันรีสตาร์ท windows ดูเหมือนว่าเว็บไซต์ใช้เวลานานในการรันครั้งแรก ฉันรู้เกี่ยวกับ JIT และฉันก็ตระหนักถึงคำถามนี้แต่ก็ไม่ตอบคำถามของฉัน JIT เกิดขึ้นทุกครั้งที่คุณรีสตาร์ท windows หรือไม่ มันเกี่ยวข้องกับการสร้างกระบวนการ w3wp.exe หรือไม่? ทำไมเว็บไซต์จึงช้าสำหรับคำขอแรกหลังจากรีสตาร์ทแต่ละครั้ง
27 .net  asp.net  performance  iis  jit 

4
Chrome V8 ทำงานอย่างไร และทำไม JavaScript ไม่ได้รวบรวม JIT ตั้งแต่แรก?
ฉันได้ทำการค้นคว้าล่าม / คอมไพเลอร์แล้วฉันก็สะดุดกับ JIT-Compilation โดยเฉพาะ V8 Javascript Engine ของ Google Chrome คำถามของฉันคือ - จะเร็วกว่าการตีความมาตรฐานอย่างไร ทำไมการรวบรวม JIT จึงไม่ถูกใช้ตั้งแต่แรก? ความเข้าใจปัจจุบันของฉัน โปรแกรม Javascript ทุกตัวจะเริ่มต้นเป็นซอร์สโค้ดไม่ว่าวิธีการดำเนินการจะถูกแปลเป็นรหัสเครื่องในที่สุด ทั้งการรวบรวม JITและการตีความต้องเป็นไปตามเส้นทางนี้ดังนั้นการรวบรวม JIT จะเร็วขึ้นอย่างไร มันดูเหมือนว่า JIT รวบรวมเป็นนวัตกรรมที่ค่อนข้างเก่า , ตามออกของวิกิพีเดียJIT รวบรวมบทความ "คอมไพเลอร์ JIT ที่ได้รับการตีพิมพ์ครั้งแรกนั้นมีสาเหตุมาจากการทำงานบน LISP โดย McCarthy ในปี 1960 " "Smalltalk (c. 1983 ) เป็นผู้บุกเบิกด้านใหม่ของการรวบรวม JIT ตัวอย่างเช่นการแปลรหัสเครื่องทำได้ตามความต้องการและผลลัพธ์ถูกแคชไว้เพื่อใช้ในภายหลังเมื่อหน่วยความจำขาดแคลนระบบจะลบรหัสนี้และสร้างใหม่ เมื่อมันต้องการอีกครั้ง " เหตุใดจึงต้องได้รับการตีความ …

1
ความสัมพันธ์ระหว่างล่ามเมตาวงกลมเครื่องเสมือนและประสิทธิภาพที่เพิ่มขึ้นคืออะไร
ฉันได้อ่านเกี่ยวกับล่ามเมตาวงกลมบนเว็บ (รวมถึง SICP) และฉันได้ตรวจสอบโค้ดของการใช้งานบางอย่าง (เช่น PyPy และ Narcissus) ฉันได้อ่านเกี่ยวกับสองภาษาค่อนข้างมากซึ่งใช้ประโยชน์จากการประเมิน metacircular, Lisp และ Smalltalk เท่าที่ฉันเข้าใจ Lisp เป็นคอมไพเลอร์โฮสติ้งด้วยตนเองเป็นครั้งแรกและ Smalltalk มีการใช้งาน JIT "จริง" เป็นครั้งแรก สิ่งหนึ่งที่ฉันไม่เข้าใจอย่างสมบูรณ์คือล่าม / คอมไพเลอร์เหล่านั้นจะบรรลุผลการปฏิบัติงานที่ดีได้อย่างไรหรือกล่าวอีกนัยหนึ่งทำไม PyPy จึงเร็วกว่า CPython มันเป็นเพราะการสะท้อน? และจากการวิจัย Smalltalk ของฉันทำให้ฉันเชื่อว่ามีความสัมพันธ์ระหว่าง JIT เครื่องเสมือนและการไตร่ตรอง เครื่องเสมือนเช่น JVM และ CLR อนุญาตการวิพากษ์วิจารณ์ประเภทจำนวนมากและฉันเชื่อว่าพวกเขาใช้งานได้อย่างยอดเยี่ยมในการรวบรวม Just-in-Time (และ AOT ฉันคิดว่า?) แต่เท่าที่ฉันรู้ Virtual Machines นั้นเป็นซีพียูที่พวกเขามีชุดคำสั่งพื้นฐาน Virtual Machines นั้นมีประสิทธิภาพหรือไม่เนื่องจากประกอบด้วยข้อมูลประเภทและข้อมูลอ้างอิง ฉันถามสิ่งนี้เพราะหลายภาษาที่แปลและเรียบเรียงได้ใช้ …

3
ทำไม Python จึงไม่ได้รับการปรับให้เหมาะกับการใช้งาน Javascript สมัยใหม่?
การใช้งานจาวาสคริปต์สมัยใหม่เช่น V8 (Chrome), SpiderMonkey (Firefox) และ Chakra (IE / Edge) ล้วนมีการรวบรวม JIT และการเพิ่มประสิทธิภาพอื่น ๆ จำนวนมากเพื่อปรับปรุงประสิทธิภาพ ทำไมหลามจึงไม่มีสิ่งเหล่านี้ ฉันดู PyPy และ IronPython ซึ่งทั้งคู่อ้างว่าความเร็วเพิ่มขึ้น PyPy ฉันไม่เข้าใจว่าการใช้งาน Python ในภาษาไพ ธ อนเป็นภาษาที่ตีความจะเร็วกว่าการนำไปใช้อ้างอิงใน C. IronPython แนวคิดเดียวกัน แต่ฉันไม่เห็นว่า. NET Framework จะเพิ่มความเร็วอย่างไร
11 python-3.x  jit 

1
รหัสเครื่อง JIT และบิต Execution Disable
รหัสเครื่องที่สร้างจากรันไทม์เป็นอย่างไร (เช่นผลลัพธ์ของ JIT) ซึ่งดำเนินการโดย CPU จริง ๆ ถ้า CPU / OS มีบิต Execution Disable? เท่าที่ฉันทราบตัวประมวลผลและระบบปฏิบัติการที่ทันสมัยหลายตัวรวมถึงการสนับสนุน NX บิต (รวมถึง Intel และ ARM) ซึ่งป้องกันรหัสเครื่องที่เก็บไว้ที่อยู่อื่นนอกเหนือจากส่วนรหัสของไบนารีที่รวบรวมจากการถูกประมวลผล เห็นได้ชัดว่านี่เป็นข้อได้เปรียบด้านความปลอดภัยที่ดีเพราะมันป้องกันการโจมตีการฉีดรหัสเชลล์ แต่เครื่องยนต์ของ JIT เช่น LLVM ซึ่งสร้างรหัสเครื่องจักรแบบไดนามิกได้รับสิ่งนี้ได้อย่างไร
10 machine-code  jit  llvm 

13
ทางเลือกที่พิมพ์แบบคงที่เพื่อ JavaScript บนหน้าเว็บจะเป็นประโยชน์?
การตั้งค่าสำหรับการพิมพ์แบบไดนามิกและแบบคงที่ส่วนใหญ่เป็นเรื่องของรสนิยมและผู้คนที่แตกต่างกันพบว่าพวกเขาเหมาะสมมากหรือน้อยในสถานการณ์ที่แตกต่างกัน คำถามของฉันคือจะเป็นไปได้หรือไม่ที่จะมีทางเลือกให้พิมพ์ JavaScript เพื่อการเพิ่มหน้าเว็บฝั่งไคลเอ็นต์ ฯลฯ ?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.