Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Javaの登場と発展

1,019 views

Published on

PPLサマースクール2016「商用Java処理系の研究開発」のパート1です.
http://ppl.jssst.or.jp/index.php?ss2016

Published in: Software
  • Yes you are right. There are many research paper writing services available now. But almost services are fake and illegal. Only a genuine service will treat their customer with quality research papers. ⇒ www.WritePaper.info ⇐
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Javaの登場と発展

  1. 1. 2016年年9⽉月6⽇日     ⼩小野寺  ⺠民也  http://ibm.biz/onodera     ⽇日本アイ・ビー・エム(株)  東京基礎研究所 PPLサマースクール2016「商⽤用Java処理理系の研究開発」 Javaの登場と発展 1 Javaの登場と発展  /  ⼩小野寺  ⺠民也 JavaTMおよびすべてのJava関連の 商標およびロゴはOracleやその関連 会社の米国およびその他の国にお ける商標または登録商標です.
  2. 2. © 2016 IBM Corporation 概要:⽇日本アイ・ビー・エム(株)東京基礎研究所はJava⾔言語の黎黎明期からその処理理系に関する研究開発を リードし,IBM開発部⾨門と協業して業務アプリケーションの基盤として使われるJava処理理系を世に送り出し てきた.特に,Just-In-TimeコンパイラとJava仮想マシンの主要構成要素については各種の先進的技術を考 案し,世界トップクラスの性能を達成するとともに,多数の学会発表も⾏行行ってきている.本セミナーでは, この商⽤用Java処理理系の研究開発に関する経験をもとに,以下の内容について述べる. 1 Javaの登場と発展(30分,講師:⼩小野寺⺠民也) 1995年年のJavaの登場とその後の受容の過程を概観し,Java登場時にどのような性能上の課題があったかを 述べ,続く2つのセッションへの導⼊入とする.また,性能向上の研究開発における標準ベンチマークの重 要さについても⾔言及する(「まとめと展望」へ移動). 2 Java仮想マシンの実装技術(2時間,講師:河内⾕谷清久仁) Java⾔言語処理理系の実装について詳説する.まずJava仮想マシンの概要について述べ,その主要な構成要素 として,クラス管理理とインタープリタ,ヒープ管理理とガベージコレクション,スレッド管理理と同期機構, JITコンパイラとの連携,などについて説明する.性能改善のために⾏行行った各種⼿手法についても触れる. 3 Java Just-In-Timeコンパイラの実装技術(2時間,講師:⽯石崎⼀一明) Javaの動的コンパイラの実装について詳説する.まず構成の概要について述べ,主な最適化,動的コンパ イラ特有の最適化,Java⾔言語特有の最適化,について説明する.また,Java⾔言語からSIMDやGPUなどの ハードウェア機構を使う試みについても述べる.商⽤用コンパイラの実装に関する経験談についても触れる. 4 まとめと展望(1時間,講師:⼩小野寺⺠民也) まとめとして,プログラミング⾔言語の実装技術の歴史を概観し,Javaの誕⽣生と発展に果たした役割につい て考えてみたい. 2 商⽤用Java処理理系の研究開発 Javaの登場と発展  /  ⼩小野寺  ⺠民也
  3. 3. © 2016 IBM Corporation3 講師紹介 ⼩小野寺  ⺠民也(おのでら  たみや)  http://ibm.biz/onodera ⽇日本アイ・ビー・エム(株)技術理理事,東京基礎研究所  サービス型コンピューティング  部⻑⾧長.1988年年東 京⼤大学⼤大学院理理学系研究科情報科学専⾨門課程博⼠士課程修了了.同年年⽇日本アイ・ビー・エム(株)⼊入社.以来, 同社東京基礎研究所にて,プログラミング⾔言語およびミドルウェアおよびシステムソフトウェアの研究開 発に従事.  情報処理理学会第41回(平成2年年後期)全国⼤大会学術奨励賞,同平成7年年度度⼭山下記念念研究賞,同平 成16年年度度論論⽂文賞,同平成16年年度度業績賞,各受賞.理理学博⼠士.⽇日本ソフトウェア科学会会員(元・理理事), 情報処理理学会シニア会員,ACM Distinguished Scientist. 河内⾕谷  清久仁(かわちや  きよくに)  http://ibm.biz/kawatiya ⽇日本アイ・ビー・エム(株)シニア・テクニカル・スタッフ・メンバー,東京基礎研究所  ディープ・コン ピューティング&アナリティクス  部⻑⾧長.1987年年東京⼤大学⼤大学院理理学系研究科情報科学専攻修⼠士課程修了了. 同年年⽇日本アイ・ビー・エム(株)⼊入社.以来,同社東京基礎研究所にてOSやプログラミング⾔言語処理理系な どの研究に従事.最近は,Javaの性能問題分析などにも携わる.博⼠士(政策・メディア).1994年年情報処 理理学会⼤大会奨励賞,2005年年同・論論⽂文賞,2008年年⽇日本ソフトウェア科学会⾼高橋奨励賞,各受賞.⽇日本ソフト ウェア科学会編集副委員⻑⾧長(元・理理事),情報処理理学会シニア会員,ACM Distinguished Engineer. ⽯石崎  ⼀一明(いしざき  かずあき)  http://ibm.biz/ishizaki ⽇日本アイ・ビー・エム(株)東京基礎研究所  リサーチ・スタッフ・メンバー.1992年年早稲⽥田⼤大学理理⼯工学研 究科修⼠士課程修了了.同年年⽇日本アイ・ビー・エム(株)⼊入社.以来,同社東京基礎研究所にて,Fortran⾔言語 の並列列化コンパイラ,Java⾔言語の動的コンパイラ,Python⾔言語の動的コンパイラ,などのプログラミング ⾔言語処理理系の研究に従事.最近は,JavaやApache Sparkからの,GPUその他アクセラレータ活⽤用⽅方法に興 味を持つ.情報処理理学会平成16年年度度業績賞受賞.博⼠士(情報科学).⽇日本ソフトウェア科学会理理事,情報 処理理学会会員,ACM Senior Member. Javaの登場と発展  /  ⼩小野寺  ⺠民也
  4. 4. May 23, 1995 – Sun announces Java at SunWorld. 4 May 1995
  5. 5. © 2016 IBM Corporation5 World Wide Webの誕⽣生と席巻 !  In March 1989 Tim Berners-Lee issued a proposal to the management at CERN for a system called "Mesh”. !  On 6 August 1991, Tim Berners-Lee published a short summary of the World Wide Web project on the newsgroup alt.hypertext. !  On 23 January 1993, Mosaic was released by the National Center for Supercomputing Applications (NCSA). !  On 4 April 1994, Jim Clark and Mark Andreessen founded Netscape (as Mosaic Communications Corporation). !  On 1 October 1994, Tim Berners-Lee founded the World Wide Web Consortium (W3C). Javaの登場と発展  /  ⼩小野寺  ⺠民也
  6. 6. © 2016 IBM Corporation May 23, 1995 – Sun announces Java at SunWorld. 6 May 1995 John Gage, the director of the Science Office of the Sun Microsystems, along with Marc Andreessen, co-founder and executive vice president at Netscape, announced that Java technology wasn't a myth and that it was going to be incorporated into Netscape Navigator.
  7. 7. © 2016 IBM Corporation7 Javaの特徴 ! Simple, Object-Oriented, and Familiar ! Robust and Secure ! Architecture Neutral and Portable ! High Performance ! Interpreted, Threaded, Dynamic The Java Programming Environment A White Paper James Gosling and Henry McGilton, May 1995 Javaの登場と発展  /  ⼩小野寺  ⺠民也
  8. 8. © 2016 IBM Corporation8 The Language for Internet Programming !  “The Web community quickly noticed that Java was something new and important.” !  “With Java as the extension language, a Web browser could have limitless capabilities.” !  “Programmers could write an applet once and it would then run on any machine, anywhere.” !  “Visitors to Java powered Web pages could use the content found there with confidence that nothing would damage their machine.” 1996(Quote from Preface) Javaの登場と発展  /  ⼩小野寺  ⺠民也
  9. 9. © 2016 IBM Corporation9 Pure Java Browsers ! Sun released HotJava on March 24, 1997. ! Netscape announced Javagator on June 11, 1997. –  for Network computers. –  cancelled on June 30, 1998. Javaの登場と発展  /  ⼩小野寺  ⺠民也
  10. 10. © 2016 IBM Corporation10 Javaの宿痾 ! 起動が遅い (Long startup time) –  dynamic class loading –  interpreter execution –  JIT compiling ! メモリ消費量量が多い (Memory bloat) –  Object header (2-3 words) –  Unicode Javaの登場と発展  /  ⼩小野寺  ⺠民也
  11. 11. 11 Java History Java May 23 1995 Java 2 v1.4 June 4 2002 Java 5 Sep 30 2004 Java 6 Dec 11 2006 Java 2 v1.3 May 8 2000 Java 7 July 28 2011 Java 8 Mar 11 2014 Javagator cancelled June 30 1998
  12. 12. 再浮上 !  The Java HotSpot Performance Engine released on April 27, 1999. – As an add-on for Java 1.2 (and became the default in Java 1.3). – Based on the technologies (for Smalltalk) of Animorphic which Sun acquired in 1997. !  Java 2 Enterprise Edition 1.2 released on December 12, 1999. – Java Servlet, Java Server Pages (JSP), Enterprise JavaBeans (EJB), Java Transaction API (JTA), Java Message Service (JMS), … 12 Javaの登場と発展  /  ⼩小野寺  ⺠民也
  13. 13. Java History 13 Java May 23 1995 Java 2 v1.4 June 4 2002 Java 5 Sep 30 2004 Java 6 Dec 11 2006 Java 2 v1.3 May 8 2000 Java 7 July 28 2011 Java 8 Mar 11 2014 Java 2 v1.2 Dec 8 1998
  14. 14. 他の言語との比較 14 October, 1995The Java Programming Environment A White Paper James Gosling and Henry McGilton, May 1995
  15. 15. Java Overhead 15 Attributes Features Overhead Object- Oriented Virtual by default Virtual method calls Small methods (e.g. setter/getter) Robust Memory safety Null checks Array bounds checks Neutral Bytecode Interpreter Garbage Collection Garbage Collection Garbage Collection Threaded MT-safe libraries Synchronized method calls Exceptions Exception handling Exception handling October, 1995
  16. 16. Java Overhead Innovates Implementation Technologies 16 Overhead Implementation Technologies Compiler Runtime Virtual method calls Small methods Devirtualization, Inlining Polymorphic Inline Cache Null checks Array bounds checks Partial Redundancy Elimination Trap instruction exploitation Interpreter Dynamic Compiler Efficient interpreters Garbage Collection Escape analysis Efficient garbage collection Footprint reduction Synchronized method calls Escape analysis Lock elision Efficient monitors HTM instruction exploitation Exception handling Exception-directed inlining Stack cutting/unwinding OS-‐‑‒based unwinding
  17. 17. Sovereign JVM/JIT J9/Testarossa IBM Java History 17 Java May 23 1995 Java 2 v1.4 June 4 2002 Java 5 Sep 30 2004 Java 6 Dec 11 2006 Java 2 v1.3 May 8 2000 Java 7 July 28 2011 Java 8 Mar 11 2014 Java 2 v1.2 Dec 8 1998
  18. 18. IBM東京基礎研究所の主な研究成果 18 PLDI Programming Language Design and Implementation ASPLOS Architectural Support for Programming Languages and Operating Systems OOPSLA Object-Oriented Programming, Systems, Languages, and Applications ECOOP European Conference on Object-Oriented Programming PACT Parallel Architectures and Compilation Techniques CGO Code Generation and Optimization JVM Java Virtual Machine Research and Technology Symposium VEE Virtual Execution Environments 主な研究成果=下記会議での発表したもの
  19. 19. 最適化研究の⻩黄⾦金金律律 19
  20. 20. IBM東京基礎研究所の主な研究成果 20 Overhead Implementation Technologies Compiler Runtime Virtual method calls Small methods Devirtualization [OOPSLA’00] Method inlining [JVM’02] Null checks Array bounds checks Null check elimination [ASPLOS’00] Interpreter Dynamic Compiler (次ページ) Bytecode Fetch Optimization [APSLOS’02] Garbage Collection String deduplication [OOPSLA’08, VEE’14] NUMA-aware memory management [OOPSLA’09] Allocation site profiling [VEE’10] Object access profiling [ASPLOS’12] Synchronized method calls Bimodal locks [OOPSLA’99] Lock reservation [OOPSLA’02, ECOOP’04, PACT’04] Lock elision [PLDI’10] Exception handling Exception directed optimization [OOPSLA’01]
  21. 21. IBM Research – Tokyoの主な研究成果 21 Overhead Implementation Technologies Compiler Runtime Interpreter Dynamic Compiler – Framework/Technique Dynamic Optimization framework [OOPSLA’01] Region-based compilation [PLDI’03] Cross-platform effectiveness study [OOPSLA’03] Trace-based compilation [CGO’11, ASPLOS’11, OOPSLA’11, OOPSLA’12] Dynamic Compiler – Profiling Path Profiling [PACT’03] Profiling with hardware [OOPSLA’09] Dynamic Compiler – Code Generation Register allocation [PLDI’02, PACT’03, PLDI’06, CGO’10] Instruction scheduling [CGO’03] Sign extension elimination [PLDI’02] Stride prefetching [PLDI’03] Idiom recognition [ASPLOS’06]
  22. 22. 22 Thank You Merci Grazie Gracias Obrigado Danke Japanese French Russian GermanItalian Spanish Portuguese Arabic Traditional Chinese Simplified Chinese Hindi Romanian Korean Multumesc Turkish Teşekkür ederim English

×