Faster index for Java, from crazy idea to reality

schedule 11:00 AM - 11:45 AM place Sigma Hall 1 people 4 Attending

Did you ever have to cancel Open Type dialog because you didn't have time to wait for the search indices to initialize? Does slowness of populating the Call Hierarchy view annoy you? We suspect that for the majority of Eclipse Java users the answer to these questions is yes.

The proposed solution to these and many other JDT sluggishness problems is a new index containing an order of magnitude more information about Java code than the old JDT indexes and caches. The technology chosen for the new, faster JDT index is heavily influenced by the CDT index that has been in use for almost a decade and proved to be very efficient and flexible. CDT borrowed a lot of code and ideas from JDT. Now it's time to pay back.

Come to this talk to learn about the design of the new index and to see how it makes JDT blazingly fast.

 
2 favorite thumb_down thumb_up 0 comments visibility_off  Remove from Watchlist visibility  Add to Watchlist
 

Outline/structure of the Session

  • Why JDT is so slow?
  • Comparison to CDT
  • Design of the new index
    • Virtual memory and paging
    • Index objects
    • Corruption detection
    • Bidirectional pointers
    • Concurrent reading and update
    • High-level structure of the index objects
  • Demo
  • Performance numbers
  • Current status
  • Future plans
  • Q&A

Learning Outcome

For JDT contributors this is an opportunity to learn about the new important technology coming to CDT and, hopefully, join the gargantuan of adapting JDT code to use the new index. For everybody else this is an opportunity to learn about an interesting way to efficiently handle large amount of highly interconnected data in Java.

Target Audience

Eclipse users and Eclipse plugin developers

schedule Submitted 1 year ago

Comments Subscribe to Comments

comment Comment on this Proposal

    • Liked Allahbaksh Asadullah
      keyboard_arrow_down

      Allahbaksh Asadullah / Avitash Purohit - Java 9 a boon to Enterprises

      45 mins
      Talk
      Intermediate

      Java is the language of choice in enterprises. Many of the large software systems are built using Java. The key reason for Java being language of choice was the tool support, robust JVM, statically typed language and modularity. Modularity is one of the key aspects of the design. Eclipse (built on Java) is the wonderful example of a modular software system based on OSGi specification (Equinox). Project Jigsaw which is umbrella project is aimed to design and develop a standard module system which is compatible with OSGi. Brining modularity within the platform will add many improvement and will also provide the ability to run it down to small devices. Jigsaw has been one of the major features of JDK 9.0. The talk will cover details of project Jigsaw. 

      Java is mostly used presently at server side. Improvement in the server side processing and ability to evolve with the new specification and protocol would boost the performance. HTTP/2 which is the latest specification makes use of streams. Java 9 brings native support of HTTP/2.

      Java has been a programming language of choice for many years in academia, till the less verbosity, better interpreters and tools for JavaScript, Python evolved. The language evolved a bit 2014 with the introduction of Lambda in Java 8, which provided less verbosity. Still the absence of Read-Eva-Print Loop (REPL) moved the academia to embrace python as the language of choice for teaching problem solving to the students. Java 9 is bringing jShell which provides REPL functionality in Java 9.

    • Liked G Bhanu Prakash
      keyboard_arrow_down

      G Bhanu Prakash - JDK-9 - Modules and Java Linker (JLink)

      45 mins
      Talk
      Intermediate

      Java 9 is going to provide several developer tools which complement the modular system and enhance developer productivity.

      I plan to give overview of new Java Linker tool that would assist in creating a modular Java runtime. "jlink" assembles and optimizes a set of modules and their dependencies and "jmod" for creating modular packages with class files and resources. "jimage" which is 5x more performant than zip or jar formats.

      I plan to give interactive session in how to create a modular JDK image with specified root modules using jlink. Describe the plugin api for extension using custom modules.

      I shall give insights on tools usage and internals which would help developers in decision making along with benchmark results.

    • Liked Nadeesh TV
      keyboard_arrow_down

      Nadeesh TV - Invokedynamic under the hood

      45 mins
      Talk
      Intermediate

      To exploit the cross platform nature and powerfulness of the  JVM, most of the nonJava programming languages (python, ruby, clojure etc) had ported themselves to run on JVM. But performance of these nonJava languages were poor compared to their nonJVM version. Java 7 introduced a new byte code instruction invokedynamic (indy) to support dynamic languages running on the JVM. The invokedynamic instruction simplifies and potentially improves implementations of compilers and runtime systems for dynamic languages on the JVM.  Later in Java 8, indy became the backbone of the Java 8's most popular feature lambda expression.

       

       

       

    • Liked Vaibhav Choudhary
      keyboard_arrow_down

      Vaibhav Choudhary - Welcoming G1 Garbage Collector With Eclipse

      45 mins
      Talk
      Intermediate

      Java Platforms team is all set for JDK9 release. I am associated with G1 from last 6 years. Finally G1 is a default collector in JDK9. From 2009, G1 has improved a lot and the bench-marking says its the best we can offer :). Eclipse gives a very beautiful view of G1 in working.

    • Liked Manoj NP
      keyboard_arrow_down

      Manoj NP / Sasikanth Bharadwaj / Jay - Eclipse JDT & Java 9 - The Story so far.

      20 mins
      Talk
      Beginner

      Java 9 introduces a major enhancement for modularity that helps define modules - The modular structure brings out a new paradigm shift in the way the programmer would program. From the perspective of JDT and its friends, this change means a relook at the existing concepts - starting from Java Model, through other core pillars of JDT. With the inputs from the EclipseConNA 2016, the JDT core is undergoing a change to incorporate these change both conceptually and at the core implementation level. In this talk, we will provide a brief introduction to the Java 9,  especially to those parts which affect JDT, we would also "redefine" some of the concepts in the Java Model, and then we will talk about the challenges faced and the solutions provided in JDT as a whole for Java 9.

    • Liked Deepu Xavier
      keyboard_arrow_down

      Deepu Xavier - Preparing your code for JDK 9

      45 mins
      Talk
      Intermediate

      Java 9 is packed with lot of new features aimed at improving developer experience and at improving Java applications. Apart from the widely talked about Jigsaw, Java 9 also features the Multi-Release JAR files for ensuring backwards compatibility while upgrading, decreased memory consumption through Compact String, Java 9 REPL- JShell, Version String upgrade and so on. In this session, we will touch upon some of these excellent features and on how to prepare your code so that you can make the best use of them while moving to java 9.

    • Liked Noopur Gupta
      keyboard_arrow_down

      Noopur Gupta - Mastering your Eclipse IDE - Tips, Tricks, Java 8 tooling & More!

      Noopur Gupta
      Noopur Gupta
      Software Engineer
      IBM
      schedule 1 year ago
      Sold Out!
      45 mins
      Demonstration
      Beginner

      The Eclipse IDE provides a lot of powerful features and capabilities. With so much functionality at your disposal, many users don't use the full potential of the IDE. To be most productive, mastering your IDE is as important as mastering your source code.

      In this talk, I will unleash many invaluable tips and tricks that will allow you to better use the Eclipse IDE and make you more productive in your routine development tasks.

      Once you know how to leverage these powerful features of Eclipse to the fullest, you are going to enjoy working with Eclipse more than you could ever expect.

      I will cover various areas from efficiently organizing your workspace content to navigating, coding and debugging in Eclipse, and provide you a glimpse of some cool new Eclipse features.

      With Java 8 out the door, it is an exciting time to be a Java developer. The new constructs in Java 8 look nice but may not be so intuitive for developers. This is where Eclipse helps you to become more productive while writing and understanding programs with Java 8 constructs. I will show you how to make your experience with Java 8 more convenient and pleasant by using some new tooling features provided by Eclipse as part of its Java 8 support.

      I will also highlight useful tools like the AST and Java Element views, plug-in spies etc. that make working with Eclipse more effective.

      During this talk, you will have many "Ah, I didn't know Eclipse can do that!" moments. Some of the examples include:

      • Determining who last modified a line of code and when
      • Popping up an in-place outline of the element at cursor position
      • Bookmarks
      • Split editors
      • Grouping and sharing breakpoints
      • Print-points
      • Smartly stepping into a single method within a series of chained or nested method calls while using Java debugger
      • Identifying and navigating to the functional method from lambda expressions and method references

      Come and learn about the best Eclipse IDE capabilities that you might not be knowing yet. There will be something new for everybody.

    • Liked Vaibhav Choudhary
      keyboard_arrow_down

      Vaibhav Choudhary - Deep Dive in Lambdas - A Performance Analysis With Eclipse and JMH

      45 mins
      Talk
      Intermediate

      JDK8 adoption was the best Java Adoption. And when we talk of Java 8, we come across functional programming and lambdas. I saw many talks going around on how to use Lambdas. Yes, it is still a nightmare for many developers to use :D. Lets first focus on why to use Lambdas. What are the performance benefits by using Lambdas.

       

      In this talk, I want to show you the performance analysis of Lambdas using Java micro benchmarking. Eclipse has excellent support for JMH. In a quick, we can see a Lambda and a similar non-lambda code benchmarking.

       

      Agenda will look like this :-

      1. Lambda implementation and InvokeDynamic

      2. Capturing and Non-capturing lambdas.

      3. Performance Matrix for both the lambdas.

      4. Eclipse Plugin for JMH - How to use it for benchmarking.

      5. A real demo for Lambdas. (Can't do much but surely 2-3 demos as the warmup takes time)

      6. When to use Lambdas and when not to use.

       

    • Liked Paul Verest
      keyboard_arrow_down

      Paul Verest - Changing Eclipse from outside, Nodeclipse way

      Paul Verest
      Paul Verest
      Senior Architect
      ZTEICT
      schedule 1 year ago
      Sold Out!
      45 mins
      Talk
      Beginner

      History of Nodeclipse from Node.js for Eclipse to Eclipse Node.

      What is happening within Eclipse from outsider view.