3.2.3. Direct CompilersAdirect compilertranslates either Java source c การแปล - 3.2.3. Direct CompilersAdirect compilertranslates either Java source c ไทย วิธีการพูด

3.2.3. Direct CompilersAdirect comp

3.2.3. Direct Compilers
Adirect compilertranslates either Java source code or bytecodes into machine instructions that are directly executable on the designated target processor (refer to Figure 2). The main difference between a direct compiler and a JIT compiler is that the compiled code generated by a direct compiler is available for future executions of the Java program. In JIT compilation, since the translation is done at run-time, compilation speed requirements limit the type and range of code optimizations that can be applied. Direct compilation is done statically, however, and so can apply traditional time-consuming optimization techniques, such as data-flow analysis, interprocedural analysis, and so on [Aho et al. 1986], to improve the performance of the compiled code. However, because they provide static compilation, direct compilers cannot support dynamic class loading. Direct compilation also results in a loss of portability since the generated code can be executed only on the specific target processor. It should be noted that the portability is not completely lost if the original bytecodes or source code are still available, however.
Caffeine[Hsieh et al. 1996] is a Java bytecode-to-native code compiler that generates optimized machine code for the X86 architecture. The compilation process involves several translation steps. First, it translates the bytecodes into an internal language representation, called Java IR, that is organized into functions and basic blocks. The Java IR is then converted to a machine-independent IR, calledLcode, using stack analysis, stackto-register mapping, and class hierarchy analysis. The IMPACT compiler [Chang et al. 1991] is then used to generate an optimized machine-independent IR by applying optimizations such as inlining, data-dependence and interclass analysis to improve instruction-level parallelism (ILP). Further, machine-specific optimizations, including peephole optimization, instruction scheduling, speculation, and register allocation, are applied to generate the optimized machine-specific IR. Finally, optimized machine code is generated from this machine-specific IR. Caffeine uses an enhanced memory model to reduce the overhead due to additional indirections specified in the standard Java memory model. It combines the Java class instance data block and the method table into one object block and thus requires only one level of indirection. Caffeine supports exception handling only through array bounds checking. It does not support garbage collection, threads, and the use of graphics libraries.
The Native Executable Translation (NET) compiler [Hsieh et al. 1997] extends the Caffeine prototype by supporting garbage collection. It uses a mark-andsweep garbage collector which is invoked only when memory is full or reaches a predefined limit. Thus, NET eliminates the overhead due to garbage collection in smaller application programs that have low memory requirements. NET also supports threads and graphic libraries.
The IBM High Performance Compiler for Java (HPCJ) [Seshadri 1997] is another optimizing native code compiler targeted for the AIX, OS/2, Windows95, and WindowsNT platforms. HPCJ takes both Java source code and bytecodes as its input. If the Java source code is used as an input, it invokes the AIX JDK’s Java source-to-bytecode compiler (javac) to produce the bytecodes. Java bytecodes are translated to an internal compiler intermediate language (IL) representation. The common back-end from IBM’s XL family of compilers for the RS/6000 is used to translate the IL code into an object module (.o file). The object module is then linked to other object modules from the Java application program and libraries to produce the executable machine code. The libraries in HPCJ implement garbage collection, Java APIs, and various runtime system routines to support object creation, threads, and exception handling.
A common back-end for the native code generation allows HPCJ to apply various language-independent optimizations, such as instruction scheduling, common subexpression elimination, intramodular inlining, constant propagation, global register allocation, and so on. The bytecodeto-IL translator reduces the overhead for Java run-time checking by performing a simple bytecode simulation during basic block compilation to determine whether such checks can be eliminated. HPCJ reduces the overhead due to method indirection by emitting direct calls for instance methods that are known to be final or that are known to belong to a final class. It uses a conservative garbage collector since the common back-end does not provide any special support for garbage collection.
0/5000
จาก: -
เป็น: -
ผลลัพธ์ (ไทย) 1: [สำเนา]
คัดลอก!
3.2.3 คอมไพเลอร์โดยตรง
adirect compilertranslates ทั้งซอร์สโค้ดจาวาหรือ bytecodes เป็นคำแนะนำเครื่องที่จะปฏิบัติการได้โดยตรงบนหน่วยประมวลผลเป้าหมายที่กำหนด (โปรดดูรูปที่ 2) แตกต่างหลักระหว่างคอมไพเลอร์โดยตรงและคอมไพเลอร์ JIT คือรหัสเรียบเรียงที่สร้างขึ้นโดยคอมไ​​พเลอร์โดยตรงสามารถใช้ได้สำหรับการประหารชีวิตในอนาคตของโปรแกรม java ใน JIT สะสมตั้งแต่การแปลที่จะทำที่ใช้เวลาต้องการความเร็วรวบรวม จำกัด ชนิดและช่วงของการเพิ่มประสิทธิภาพรหัสที่สามารถนำมาใช้ โดยตรงรวบรวมทำแบบคงที่ แต่และเพื่อให้สามารถใช้เวลานานเทคนิคการเพิ่มประสิทธิภาพแบบดั้งเดิมเช่นการวิเคราะห์ข้อมูลการไหลของการวิเคราะห์ interprocedural และอื่น ๆ [aho ตอัล 1986] เพื่อปรับปรุงประสิทธิภาพการทำงานของรหัสเรียบเรียงแต่เพราะพวกเขาให้คงที่รวบรวมคอมไพเลอร์โดยตรงไม่สามารถสนับสนุนการโหลดแบบไดนามิกชั้น โดยตรงการรวบรวมยังส่งผลในการสูญเสียในการพกพาตั้งแต่รหัสที่สร้างขึ้นสามารถดำเนินการได้เฉพาะในการประมวลผลเป้าหมายที่เฉพาะเจาะจง มันควรจะตั้งข้อสังเกตว่าการพกพาไม่ได้หายไปอย่างสมบูรณ์หาก bytecodes เดิมหรือรหัสต้นฉบับยังคงมีอยู่ แต่.
คาเฟอีน [hsieh ตอัล1996] เป็นจาวาคอมไพเลอร์ที่รหัสพื้นเมืองที่สร้างรหัสเครื่องที่ดีที่สุดสำหรับ x86 สถาปัตยกรรม การรวบรวมเกี่ยวข้องกับขั้นตอนการแปลหลาย ครั้งแรกก็แปล bytecodes เป็นตัวแทนภาษาภายในที่เรียกว่า java ir ที่จัดเป็นฟังก์ชั่นและบล็อกขั้นพื้นฐาน ir จาวาจะถูกแปลงไปแล้ว ir เครื่องอิสระ calledlcode,โดยใช้การวิเคราะห์กองทำแผนที่ stackto ลงทะเบียนและการวิเคราะห์ลำดับชั้น คอมไพเลอร์ผลกระทบ [ช้างเอตอัล 1991] จะถูกนำมาใช้ในการสร้างเครื่อง ir อิสระที่ดีที่สุดโดยใช้การเพิ่มประสิทธิภาพเช่น inlining, ข้อมูลการพึ่งพาอาศัยและการวิเคราะห์ interclass ในการปรับปรุงการเรียนการสอนในระดับขนาน (ILP) ต่อการเพิ่มประสิทธิภาพเครื่องเฉพาะรวมถึงการเพิ่มประสิทธิภาพของช่องมอง,การเรียนการสอนการจัดตารางการเก็งกำไรและการจัดสรรลงทะเบียนจะถูกนำมาใช้ในการสร้าง ir เฉพาะเครื่องที่ดีที่สุด ในที่สุดรหัสเครื่องที่ดีที่สุดจะถูกสร้างขึ้นจาก ir เฉพาะเครื่องนี้ คาเฟอีนใช้รูปแบบหน่วยความจำที่เพิ่มขึ้นเพื่อลดค่าใช้จ่ายเนื่องจากการ indirections เพิ่มเติมที่ระบุไว้ในหน่วยความจำแบบจาวามาตรฐานมันรวมข้อมูลบล็อกเช่นคลาส java และตารางวิธีการลงในบล็อกวัตถ​​ุอย่างใดอย่างหนึ่งจึงต้องมีเพียงหนึ่งระดับของความร้าย คาเฟอีนสนับสนุนการจัดการข้อยกเว้นเพียงผ่านอาร์เรย์ตรวจสอบขอบเขต มันไม่สนับสนุนการเก็บขยะ, หัวข้อและการใช้ห้องสมุดกราฟิก
แปลปฏิบัติการพื้นเมือง (สุทธิ) คอมไพเลอร์ [hsieh ตอัล1997] ขยายต้นแบบคาเฟอีนโดยการสนับสนุนการเก็บขยะ จะใช้เก​​็บขยะเครื่องหมาย andsweep ซึ่งถูกเรียกเฉพาะเมื่อหน่วยความจำเต็มหรือถึงขีด จำกัด ที่กำหนดไว้ล่วงหน้า จึงช่วยลดค่าใช้จ่ายสุทธิจากการเก็บขยะในโปรแกรมขนาดเล็กที่มีความต้องการหน่วยความจำต่ำ สุทธิยังสนับสนุนหัวข้อและห้องสมุดกราฟิก
ibm คอมไพเลอร์ที่มีประสิทธิภาพสูงสำหรับจาวา (hpcj) [Seshadri 1997] เป็นอีกหนึ่งการเพิ่มประสิทธิภาพของคอมไพเลอร์พื้นเมืองรหัสกำหนดเป้​​าหมายสำหรับ Aix, OS / 2, windows95 และแพลตฟอร์ม WindowsNT hpcj ใช้เวลาทั้งซอร์สโค้ดจาวาและ bytecodes เป็นปัจจัยการผลิต ถ้าซอร์สโค้ดจาวาจะใช้เป็นอินพุทก็จะเรียก jdk Aix ของจาวาคอมไพเลอร์แหล่งที่มาเพื่อ bytecode (javac) การผลิต bytecodesbytecodes java มีการแปลที่จะคอมไพเลอร์ภายในภาษากลาง (il) การแสดง ร่วมกันหลังจบจากครอบครัว xl ibm ของคอมไพเลอร์เพื่อ rs/6000 จะใช้ในการแปลรหัส il ลงในโมดูลวัตถุ (o แฟ้ม.) โมดูลวัตถุที่ถูกเชื่อมโยงไปยังโมดูลวัตถุอื่น ๆ จากโปรแกรมจาวาและห้องสมุดในการผลิตเครื่องรหัสปฏิบัติการห้องสมุดใน hpcj ดำเนินการเก็บขยะ API สำหรับจาวาและระบบการปฏิบัติต่างๆรันไทม์เพื่อสนับสนุนการสร้างวัตถุเธรดและการจัดการข้อยกเว้น.
ร่วมกันหลังจบการสร้างรหัสพื้นเมือง hpcj ช่วยให้การใช้ภาษาอิสระการเพิ่มประสิทธิภาพต่างๆเช่น การเรียนการสอนการตั้งเวลาการกำจัดนิพจน์ย่อยทั่วไป inlining intramodular การขยายพันธุ์อย่างต่อเนื่องการจัดสรรการลงทะเบียนทั่วโลกและอื่น ๆ แปล bytecodeto-il ลดค่าใช้จ่ายสำหรับ java เวลาทำงานการตรวจสอบโดยการจำลอง bytecode ง่ายในระหว่างการรวบรวมบล็อกขั้นพื้นฐานเพื่อตรวจสอบว่าการตรวจสอบดังกล่าวสามารถถูกกำจัดhpcj ลดค่าใช้จ่ายอันเนื่องมาจากวิธีการร้ายโดยเปล่งสายตรงสำหรับวิธีการเช่นที่เป็นที่รู้จักเป็นครั้งสุดท้ายหรือที่เป็นที่รู้จักกันจะเป็นชั้นสุดท้าย จะใช้เก​​็บขยะตั้งแต่อนุรักษ์นิยมร่วมกันหลังจบไม่ได้ให้การสนับสนุนเป็นพิเศษสำหรับการเก็บขยะ.
การแปล กรุณารอสักครู่..
ผลลัพธ์ (ไทย) 2:[สำเนา]
คัดลอก!
3.2.3 การคอมไพเลอร์โดยตรง
Adirect compilertranslates Java ทั้งแหล่งรหัสหรือ bytecodes เป็นคำแนะนำเครื่องที่ปฏิบัติโดยตรงบนตัวประมวลผลเป้าหมายที่กำหนดไว้ (ดูรูปที่ 2) หลักความแตกต่างระหว่างคอมไพเลอร์ JIT คอมไพเลอร์โดยตรงคือว่า คอมไพล์รหัสที่สร้างขึ้น โดยคอมไพเลอร์โดยตรงสำหรับดำเนินการในอนาคตของโปรแกรม Java ในการคอมไพล์ JIT ตั้งแต่เสร็จการแปลในขณะทำงาน ความต้องการความเร็วในการคอมไพล์จำกัดชนิดและช่วงของรหัสเพิ่มประสิทธิภาพที่สามารถใช้ คอมไพล์เสร็จฟิกแบบคง อย่างไรก็ตาม โดยตรงและเพื่อ ให้สามารถใช้เทคนิคเพิ่มประสิทธิภาพเวลาแบบดั้งเดิม เช่นการวิเคราะห์การไหลข้อมูล การวิเคราะห์ interprocedural และอื่น ๆ [Aho et al. 1986], เพื่อปรับปรุงประสิทธิภาพของรหัสที่คอมไพล์ อย่างไรก็ตาม เนื่องจากพวกเขาให้คอมไพล์คง คอมไพเลอร์โดยตรงไม่สนับสนุนการโหลดแบบไดนามิกคลาส คอมไพล์โดยตรงผลขาดทุนของพอร์ตยังเนื่องจากรหัสที่สร้างขึ้นสามารถดำเนินการกับตัวประมวลผลเฉพาะเป้าหมายเท่านั้น ควรสังเกตว่า พกพาไม่หายไปทั้งหมดถ้ารหัส bytecodes หรือแหล่งต้นฉบับยังคงมี อย่างไรก็ตามการ
คาเฟอีน [Hsieh et al ปี 1996] เป็นคอมไพเลอร์รหัส bytecode พื้นเมืองชวาที่สร้างรหัสเครื่องให้เหมาะสำหรับ X 86 สถาปัตยกรรม การคอมไพล์เกี่ยวข้องกับหลายขั้นตอนแปล ครั้งแรก มันแปล bytecodes ที่เป็นตัวแทนภาษาภายใน IR, Java ที่แบ่งตามหน้าที่และบล็อกพื้นฐานที่เรียกว่า Java IR แล้วแปลงเป็นแบบอิสระเครื่อง IR, calledLcode ใช้วิเคราะห์กอง stackto การลงทะเบียนการแมป และวิเคราะห์ลำดับชั้นของคลาส คอมไพเลอร์ผลกระทบ [ช้างร้อยเอ็ด al. 1991] ถูกใช้เพื่อสร้าง IR เป็นเครื่องอิสระให้เหมาะ โดยการใช้เพิ่มประสิทธิภาพเช่น inlining, interclass และพึ่งพาข้อมูลวิเคราะห์เพื่อปรับปรุงการ parallelism ระดับคำสั่ง (ILP) เพิ่มเติม เครื่องเฉพาะประสิทธิภาพ รวมถึงการแอบปรับให้เหมาะสม ใช้คำสั่งการจัดกำหนดการ เก็งกำไร และการปัน ส่วนลงทะเบียน สร้างใดเฉพาะของเครื่องให้เหมาะ ในที่สุด สร้างรหัสเครื่องให้เหมาะจากนี้เฉพาะเครื่องใด คาเฟอีนใช้แบบจำลองขั้นสูงหน่วยความจำเพื่อลดค่าโสหุ้ยเนื่องจาก indirections ที่ระบุไว้ในแบบจำลองมาตรฐาน Java หน่วยความจำเพิ่มเติม รวมบล็อกข้อมูลอินสแตนซ์คลาส Java และตารางวิธีการเป็นบล็อกวัตถุหนึ่ง และจึง ต้องการระดับเดียวของ indirection คาเฟอีนสนับสนุนข้อยกเว้นการจัดการผ่านการตรวจสอบขอบเขตอาร์เรย์เท่านั้น มันไม่สนับสนุนการเก็บรวบรวมขยะ กระทู้ และการใช้ไลบรารีรูปภาพ
ภาษาปฏิบัติแปล (สุทธิ) คอมไพเลอร์ [Hsieh et al ปี 1997] ขยายต้นแบบของคาเฟอีน โดยสนับสนุนการเก็บรวบรวมขยะ ใช้เก็บขยะหมาย andsweep ซึ่งจะถูกเรียกเมื่อหน่วยความจำเต็ม หรือถึงขีดจำกัดที่กำหนดไว้ล่วงหน้า ดังนั้น NET ลดค่าโสหุ้ยเนื่องจากการเก็บรวบรวมขยะในโปรแกรมประยุกต์ขนาดเล็กที่มีความต้องการหน่วยความจำน้อย NET สนับสนุนกระทู้และไลบรารีรูปภาพ
IBM สูงประสิทธิภาพสำหรับจาวา (HPCJ) [Seshadri 1997] เป็นอื่นประสิทธิภาพรหัสภาษาคอมไพเลอร์เป้าหมายแพลตฟอร์มอิ๊กซ์ซอง OS/2, Windows95 และ WindowsNT HPCJ ใช้รหัสแหล่งที่มาของ Java และ bytecodes เป็นอินพุทของ ถ้าใช้รหัสแหล่งที่มาของ Java เป็นอินพุต มันเรียกใช้คอมไพเลอร์แหล่ง bytecode Java ของ JDK อิ๊กซ์ซอง (javac) ผลิต bytecodes มีแปล Java bytecodes เพื่อการนำเสนอภาษาระดับกลาง (IL) คอมไพเลอร์ภายใน การทั่วไปส่วนหลังจากครอบครัว XL ของ IBM ของคอมไพเลอร์สำหรับ RS/6000 ใช้แปลรหัส IL เป็นโมดูวัตถุ (.o แฟ้ม) แล้วได้ลิงค์กับลอื่น ๆ วัตถุโมวัตถุจากโปรแกรมประยุกต์ Java และไลบรารีการผลิตรหัสเครื่องปฏิบัติ ไลบรารีใน HPCJ ดำเนินการเก็บรวบรวมขยะ Java APIs และคำสั่งขณะทำงานระบบต่าง ๆ เพื่อสนับสนุนวัตถุสร้าง กระทู้ และข้อยกเว้นการจัดการไว้
แบบทั่วไปส่วนหลังสำหรับการสร้างรหัสภาษาช่วยให้ HPCJ เพื่อใช้เพิ่มประสิทธิภาพภาษาอิสระต่าง ๆ คำสั่งการจัดกำหนดการ นิพจน์ย่อยตัดทั่วไป intramodular inlining คง แพร่กระจาย การปันส่วนลงทะเบียนส่วนกลาง และอื่น ๆ แปล bytecodeto IL ช่วยลดค่าใช้จ่ายในการรันจาวาตรวจสอบ โดยทำการจำลอง bytecode อย่างในระหว่างการคอมไพล์บล็อกพื้นฐานในการกำหนดว่า เช็คดังกล่าวสามารถตัดเวลา HPCJ ลดค่าโสหุ้ยเนื่องจากวิธีการ indirection โดยเปล่งเรียกโดยตรงเช่นวิธีที่เป็นที่รู้จักกันเป็นครั้งสุดท้าย หรือที่รู้จักกันเป็นชั้นสุดท้าย ใช้เก็บขยะหัวเก่าเนื่องจากส่วนหลังที่ร่วมให้การสนับสนุนใด ๆ พิเศษสำหรับเก็บรวบรวมขยะ
การแปล กรุณารอสักครู่..
ผลลัพธ์ (ไทย) 3:[สำเนา]
คัดลอก!
3.2.3 . โดยตรงคอมไพเลอร์
adirect compilertranslates ทั้ง Java ซอร์สโค้ดหรือ bytecodes เข้าไปในเครื่องคำแนะนำที่ได้รับโดยตรงที่ปฏิบัติการได้ในที่ที่กำหนดเป้าหมายโปรเซสเซอร์(ดูรูปที่ 2 ) ข้อแตกต่างที่สำคัญระหว่างคอมไพเลอร์โดยตรงและคอมไพเลอร์ด่านอีป้องเป็นรหัสที่รวบรวมที่สร้างขึ้นโดยคอมไพเลอร์โดยตรงที่มีอยู่สำหรับเรื่องอนาคตของโปรแกรม Java ในรวบรวมด่านอีป้องนับตั้งแต่การแปลที่ได้ทำเวลาใช้ความเร็วความต้องการรวบรวมการจำกัดความหลากหลายและ ประเภท ของการปรับแต่งซอร์สโค้ดที่สามารถนำมาใช้ รวบรวมโดยตรงเป็นการกระทำรูปแบบสแตติกอย่างไรก็ตามและดังนั้นจึงสามารถใช้เทคนิคการปรับแต่งต้องใช้เวลานานแบบดั้งเดิมเช่นการวิเคราะห์ข้อมูลและการวิเคราะห์การไหลของ interprocedural ดังนั้นในวันที่[ aho et al . 1986 ]เพื่อปรับปรุง ประสิทธิภาพ การทำงานของรหัสคอมไพล์ได้.อย่างไรก็ตามเนื่องจากพวกเขาให้รวบรวมแบบสแตติกคอมไพเลอร์โดยตรงไม่สามารถรองรับการโหลด Class แบบไดนามิก รวบรวมโดยตรงนอกจากนี้ยังได้ผลในการสูญเสียที่พกพาสะดวกเนื่องจากรหัสของเกิดขึ้นที่สามารถดำเนินการเฉพาะในโปรเซสเซอร์เป้าหมายเฉพาะ ควรบันทึกไว้ด้วยว่าไม่ได้พกพาที่สูญหายหาก bytecodes แบบดั้งเดิมหรือซอร์สโค้ดจะยังคงจัดให้บริการแต่ถึงอย่างไรก็ตาม.
คาเฟอีน[ hsieh et al .อย่างสมบรูณ์แบบ1996 ]เป็นคอมไพเลอร์ bytecode - - พื้นเมืองรหัส Java ที่จะสร้างรหัสเครื่องที่ปรับแต่งสำหรับสถาปัตยกรรม X 86 ที่ การรวบรวมสิ่งที่เกี่ยวข้องกับขั้นตอนการแปลหลายแห่ง เป็นครั้งแรกที่จะแปลง bytecodes เข้าไปในการเป็นตัวแทน ภายใน ที่เรียกว่า ภาษา Java อินฟราเรดที่มีการจัดในช่วงตึกแบบเรียบง่ายและมีฟังก์ชันการใช้งาน Java อินฟราเรดจะถูกแปลงเป็นอินฟราเรดเครื่อง - อิสระที่ calledlcode แล้วโดยใช้การวิเคราะห์ Stack stackto - การลงทะเบียนและการทำแผนที่การวิเคราะห์โครงสร้างแบบลำดับชั้น ส่งผลกระทบต่อคอมไพเลอร์[ช้าง et al .ได้ 1991 ]ถูกใช้เพื่อสร้างอินฟราเรดเครื่อง - อิสระที่ได้รับการปรับแต่งโดยการนำข้อมูลเช่น inlining - การพึ่งพาและการวิเคราะห์ interclass เพื่อปรับปรุงการทำงานแบบขนานการเรียนการสอน - ระดับ( ilp )แล้ว การปรับแต่งเครื่องแบบเฉพาะเพิ่มเติมรวมทั้งการปรับแต่งรูที่เจาะไว้สำหรับดูการจัดตารางเวลาการเรียนการสอนการเก็งกำไรและการจัดสรรลงทะเบียนจะถูกนำไปใช้ในการสร้างอินฟราเรดเครื่อง - เฉพาะซึ่งได้รับการปรับแต่งด้าน สุดท้ายคือรหัสเครื่องที่ปรับแต่งจะถูกสร้างขึ้นจากอินฟราเรดแบบเครื่องรุ่นนี้ คาเฟอีนจะใช้รุ่นของหน่วยความจำที่เพิ่มขึ้นเพื่อลดค่าใช้จ่ายที่เกิดจากการ indirections เพิ่มเติมที่ระบุในรุ่นหน่วยความจำ Java มาตรฐานได้เป็นอาคารก่ออิฐที่ประกอบด้วยตารางข้อมูลตัวอย่างเช่น Class และวิธีการ Java ที่เข้าสู่หนึ่งในอาคารก่ออิฐและวัตถุทำให้มีระดับหนึ่งของอ้อม คาเฟอีนสนับสนุนยกเว้นการจัดการกับเฉพาะผ่านทางเขตความหลากหลายการตรวจสอบ แต่จะไม่รองรับการเก็บขยะเธรดและใช้งานของไลบรารีกราฟิก
พื้นเมืองที่ปฏิบัติการได้การแปล(ราคาสุทธิ)ที่คอมไพเลอร์[ hsieh et al .1997 ]ขยายต้นแบบคาเฟอีนโดยสนับสนุนการเก็บขยะ มีการใช้เครื่องหมายตัวเก็บขยะ - andsweep ซึ่งมีการปลุกเร้าขึ้นเท่านั้นเมื่อหน่วยความจำเต็มหรือเกินขีดจำกัดที่กำหนดไว้ล่วงหน้า ทำให้กำไรสุทธิจะช่วยขจัดปัญหาเรื่องค่าใช้จ่ายที่เนื่องจากการเก็บขยะในโปรแกรมแอปพลิเคชันที่มีขนาดเล็กลงมีความต้องการหน่วยความจำต่ำ สุทธิยังสนับสนุนเธรดและไลบรารี ภาพ กราฟิก
IBM , ประสิทธิภาพ ในการทำงานสูงคอมไพเลอร์ของ Java ( hpcj )[ seshadri 1997 ]เป็นคอมไพเลอร์รหัสพื้นเมืองการปรับแต่งอีกเป้าหมายใน Aix OS / 2 , Windows 95 และแพลตฟอร์มเช่น WindowsNT hpcj ใช้เวลาซอร์สโค้ดจาวาและ bytecodes ทั้งสองเป็นอินพุตของตน หากมีโค้ดจาวาแหล่งที่มาที่จะใช้เป็นอินพุตเซอร์วิสนี้ Java คอมไพเลอร์แหล่งที่มาที่ไปของ Aix bytecode jdk ( javac )เพื่อผลิต bytecodes ได้bytecodes Java เป็นการ ภายใน คอมไพเลอร์กลาง ภาษา ( IL )เป็นผู้แทนที่ ทั่วไป Back - end ออกจากช่องใส่ขนาด XL สำหรับครอบครัวของ IBM ของคอมไพเลอร์ของ RS / 6000 มีการใช้รหัสในการแปล, IL ที่เข้าไปในวัตถุโมดูล(. O ไฟล์) โมดูลวัตถุที่มีความเชื่อมโยงกับโมดูลออบเจกต์โค้ดโปรแกรมอื่นๆได้จากแอปพลิเคชันและไลบรารีในการผลิตเครื่องที่ปฏิบัติการได้ Java แล้วที่ไลบรารีใน hpcj ใช้ถังขยะคอลเลคชั่น, Java API ,และแอพพลิเคชันระบบรูทีนในการสนับสนุนการสร้างวัตถุ,เธรด,และข้อยกเว้นการจัดการ.
ที่ทั่วไป Back - end สำหรับคนพื้นเมือง hpcj รหัสรุ่นช่วยให้การใช้ ภาษา ต่างๆโดยแยกเป็นอิสระได้รับการปรับแต่ง,เช่นการเรียนการสอนการจัดตารางเวลา,ทั่วไป subexpression กำจัด intramodular inlining ,คงที่แพร่,การจัดสรรลงทะเบียนระดับโลกและที่จะเป็นไปได้ แปล bytecodeto - IL ช่วยลดค่าใช้จ่ายสำหรับการตรวจสอบเวลาใช้งาน Java โดยการทำการจำลอง bytecode แบบเรียบง่ายในระหว่างรวบรวมเป็นอาคารก่ออิฐแบบเรียบง่ายในการตรวจสอบว่าเช็คดังกล่าวสามารถกำจัดhpcj ช่วยลดค่าใช้จ่ายที่เกิดจากการใช้งานโดยอ้อมวิธีการโทรโดยตรงสำหรับวิธีการยกตัวอย่างเช่นที่เป็นที่รู้จักกันดีในเรื่องจะเป็นครั้งสุดท้ายหรือที่มีชื่อเสียงเป็น Class สุดท้ายที่ มีการใช้ที่รองกากอนุรักษ์นิยมที่นับตั้งแต่ทั่วไป Back - end ที่ไม่ให้การสนับสนุนแบบพิเศษใดๆสำหรับการเก็บขยะ.
การแปล กรุณารอสักครู่..
 
ภาษาอื่น ๆ
การสนับสนุนเครื่องมือแปลภาษา: กรีก, กันนาดา, กาลิเชียน, คลิงออน, คอร์สิกา, คาซัค, คาตาลัน, คินยารวันดา, คีร์กิซ, คุชราต, จอร์เจีย, จีน, จีนดั้งเดิม, ชวา, ชิเชวา, ซามัว, ซีบัวโน, ซุนดา, ซูลู, ญี่ปุ่น, ดัตช์, ตรวจหาภาษา, ตุรกี, ทมิฬ, ทาจิก, ทาทาร์, นอร์เวย์, บอสเนีย, บัลแกเรีย, บาสก์, ปัญจาป, ฝรั่งเศส, พาชตู, ฟริเชียน, ฟินแลนด์, ฟิลิปปินส์, ภาษาอินโดนีเซี, มองโกเลีย, มัลทีส, มาซีโดเนีย, มาราฐี, มาลากาซี, มาลายาลัม, มาเลย์, ม้ง, ยิดดิช, ยูเครน, รัสเซีย, ละติน, ลักเซมเบิร์ก, ลัตเวีย, ลาว, ลิทัวเนีย, สวาฮิลี, สวีเดน, สิงหล, สินธี, สเปน, สโลวัก, สโลวีเนีย, อังกฤษ, อัมฮาริก, อาร์เซอร์ไบจัน, อาร์เมเนีย, อาหรับ, อิกโบ, อิตาลี, อุยกูร์, อุสเบกิสถาน, อูรดู, ฮังการี, ฮัวซา, ฮาวาย, ฮินดี, ฮีบรู, เกลิกสกอต, เกาหลี, เขมร, เคิร์ด, เช็ก, เซอร์เบียน, เซโซโท, เดนมาร์ก, เตลูกู, เติร์กเมน, เนปาล, เบงกอล, เบลารุส, เปอร์เซีย, เมารี, เมียนมา (พม่า), เยอรมัน, เวลส์, เวียดนาม, เอสเปอแรนโต, เอสโทเนีย, เฮติครีโอล, แอฟริกา, แอลเบเนีย, โคซา, โครเอเชีย, โชนา, โซมาลี, โปรตุเกส, โปแลนด์, โยรูบา, โรมาเนีย, โอเดีย (โอริยา), ไทย, ไอซ์แลนด์, ไอร์แลนด์, การแปลภาษา.

Copyright ©2024 I Love Translation. All reserved.

E-mail: