compressed-tracemonkey
- 페이지 수
- 14
- 형식
- 크기
- 992 KB
- 언어
- VI · Tiếng Việt
- 조회수
- 762
- 댓글
- 0
- Lượt tải
- 5
미리보기 생성 중...
- 문서명
- compressed-tracemonkey
- 목차
- 이 문서는 명확한 목차가 없습니다.
- 페이지 수
- 14 페이지
- 업로더
- ThiNganHang
상세 요약을 생성 중입니다. 잠시 후 다시 확인해주세요.
설명
Trích nội dung tài liệu
Trace-based Just-in-Time Type Specialization for Dynamic Languages Andreas Gal∗+, Brendan Eich∗ , Mike Shaver∗ , David Anderson∗ , David Mandelin∗ , Mohammad R. Haghighat$ , Blake Kaplan∗ , Graydon Hoare∗ , Boris Zbarsky∗ , Jason Orendorff∗ , Jesse Ruderman∗ , Edwin Smith#, Rick Reitmaier#, Michael Bebenita+, Mason Chang+#, Michael Franz+ Mozilla Corporation∗ {gal,brendan,shaver,danderson,dmandelin,mrbkap,graydon,bz,jorendorff,jruderman}@mozilla.com Adobe Corporation# {edwsmith,rreitmai}@adobe.com Intel Corporation$ {mohammad.r.haghighat}@intel.com University of California, Irvine+ {mbebenit,changm,franz}@uci.edu Abstract Dynamic languages such as JavaScript are more difficult to compile than statically typed ones. Since no concrete type information is available, traditional compilers need to emit generic code that can handle all possible type combinations at runtime. We present an alternative compilation technique for dynamically-typed languages that identifies frequently executed loop traces at run-time and then generates machine code on the fly that is specialized for the actual dynamic types occurring on each path through the loop. Our method provides cheap inter-procedural type specialization, and an elegant and efficient way of incrementally compiling lazily discovered alternative paths through nested loops. We have implemented a dynamic compiler for JavaScript based on our technique and we have measured speedups of 10x and more for certain benchmark programs. Categories and Subject Descriptors D.3.4 [Programming Languages]: Processors — Incremental compilers, code generation. General Terms Design, Experimentation, Measurement, Performance. Keywords JavaScript, just-in-time compilation, trace trees. 1. Introduction Dynamic languages such as JavaScript, Python, and Ruby, are popular since they are expressive, accessible to non-experts, and make deployment as easy as distributing a source file. They are used for small scripts as well as for complex applications. JavaScript, for example, is the de facto standard for client-side web programming Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. PLDI’09, June 15–20, 2009, Dublin, Ireland. Copyright c 2009 ACM 978-1-60558-392-1/09/06. . . $5.00 and is used for the application logic of browser-based productivity applications such as Google Mail, Google Docs and Zimbra Collaboration Suite. In this domain, in order to provide a fluid user experience and enable a new generation of applications, virtual machines must provide a low startup time and high performance. Compilers for statically typed languages rely on type information to generate efficient machine code. In a dynamically typed programming language such as JavaScript, the types of expressions may vary at runtime. This means that the compiler can no longer easily transform operations into machine instructions that operate on one specific type. Without exact type information, the compiler must emit slower generalized machine code that can deal with all potential type combinations. While compile-time static type inference might be able to gather type information to generate optimized machine code, traditional static analysis is very expensive and hence not well suited for the highly interactive environment of a web browser. We present a trace-based compilation technique for dynamic languages that reconciles speed of compilation with excellent performance of the generated machine code. Our system uses a mixedmode execution approach: the system starts running JavaScript in a fast-starting bytecode interpreter. As the program runs, the system identifies hot (f
자주 묻는 질문
이 문서를 어떻게 다운로드하나요?
“compressed-tracemonkey” 문서의 가격은 30,000đ입니다. PayOS를 통해 지갑을 충전한 다음, '다운로드'를 클릭하여 원본 파일을 구매하고 저장하세요.
이 문서는 몇 페이지로 되어 있나요?
이 문서는 14페이지입니다. 다운로드하기 전에 온라인으로 미리 볼 수 있습니다.
다운로드하기 전에 미리 볼 수 있나요?
네. 이 페이지의 온라인 리더를 통해 문서를 미리 본 후 (처음 몇 페이지) 다운로드 여부를 결정할 수 있습니다.
compressed-tracemonkey
미리보기 생성 중...
Trích nội dung tài liệu
Trace-based Just-in-Time Type Specialization for Dynamic Languages Andreas Gal∗+, Brendan Eich∗ , Mike Shaver∗ , David Anderson∗ , David Mandelin∗ , Mohammad R. Haghighat$ , Blake Kaplan∗ , Graydon Hoare∗ , Boris Zbarsky∗ , Jason Orendorff∗ , Jesse Ruderman∗ , Edwin Smith#, Rick Reitmaier#, Michael Bebenita+, Mason Chang+#, Michael Franz+ Mozilla Corporation∗ {gal,brendan,shaver,danderson,dmandelin,mrbkap,graydon,bz,jorendorff,jruderman}@mozilla.com Adobe Corporation# {edwsmith,rreitmai}@adobe.com Intel Corporation$ {mohammad.r.haghighat}@intel.com University of California, Irvine+ {mbebenit,changm,franz}@uci.edu Abstract Dynamic languages such as JavaScript are more difficult to compile than statically typed ones. Since no concrete type information is available, traditional compilers need to emit generic code that can handle all possible type combinations at runtime. We present an alternative compilation technique for dynamically-typed languages that identifies frequently executed loop traces at run-time and then generates machine code on the fly that is specialized for the actual dynamic types occurring on each path through the loop. Our method provides cheap inter-procedural type specialization, and an elegant and efficient way of incrementally compiling lazily discovered alternative paths through nested loops. We have implemented a dynamic compiler for JavaScript based on our technique and we have measured speedups of 10x and more for certain benchmark programs. Categories and Subject Descriptors D.3.4 [Programming Languages]: Processors — Incremental compilers, code generation. General Terms Design, Experimentation, Measurement, Performance. Keywords JavaScript, just-in-time compilation, trace trees. 1. Introduction Dynamic languages such as JavaScript, Python, and Ruby, are popular since they are expressive, accessible to non-experts, and make deployment as easy as distributing a source file. They are used for small scripts as well as for complex applications. JavaScript, for example, is the de facto standard for client-side web programming Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. PLDI’09, June 15–20, 2009, Dublin, Ireland. Copyright c 2009 ACM 978-1-60558-392-1/09/06. . . $5.00 and is used for the application logic of browser-based productivity applications such as Google Mail, Google Docs and Zimbra Collaboration Suite. In this domain, in order to provide a fluid user experience and enable a new generation of applications, virtual machines must provide a low startup time and high performance. Compilers for statically typed languages rely on type information to generate efficient machine code. In a dynamically typed programming language such as JavaScript, the types of expressions may vary at runtime. This means that the compiler can no longer easily transform operations into machine instructions that operate on one specific type. Without exact type information, the compiler must emit slower generalized machine code that can deal with all potential type combinations. While compile-time static type inference might be able to gather type information to generate optimized machine code, traditional static analysis is very expensive and hence not well suited for the highly interactive environment of a web browser. We present a trace-based compilation technique for dynamic languages that reconciles speed of compilation with excellent performance of the generated machine code. Our system uses a mixedmode execution approach: the system starts running JavaScript in a fast-starting bytecode interpreter. As the program runs, the system identifies hot (f
- 문서명
- compressed-tracemonkey
- 목차
- 이 문서는 명확한 목차가 없습니다.
- 페이지 수
- 14 페이지
- 업로더
- ThiNganHang
상세 요약을 생성 중입니다. 잠시 후 다시 확인해주세요.
댓글 (0)
댓글이 없습니다. 첫 댓글을 남겨보세요!
[Mẫu] Giấy cam kết bổ sung hồ sơ ứng tuyển ngân hàng
[Mẫu] Thông tin ứng viên thực tập sinh - Đông Á Bank (DAB)
Ngân hàng câu hỏi Trắc nghiệm Tin học văn phòng - Office 2003
Bí kíp ôn thi BIDV 2017
Bản mô tả công việc - Thư ký kinh doanh
Tiểu luận - Kinh tế phát triển - Phân tích nhận định "Việt Nam đã kiên định chọn hướng phát triển lấy con người làm trọng tâm ..."
Đề cương - Luật vận tải
600 Câu trắc nghiệm Tư tưởng Hồ Chí Minh
Tài liệu ôn tập Nguyên lý kế toán
Bài tập Xác suất thống kê đại học - có lời giải

댓글 (0)
댓글이 없습니다. 첫 댓글을 남겨보세요!