Skip to content

Doc bundle size #3908

Description

@vogella

I recently removed the ICU bundle from the Eclipse Platform, reducing the Eclipse SDK download by ~15MB.
While updating a client IDE in a slow environment (v-client) I noticed the docs bundles are huge.

JAR sizes of the shipped doc bundles:

Bundle JAR size
org.eclipse.platform.doc.isv 42M
org.eclipse.jdt.doc.user 9.1M
org.eclipse.jdt.doc.isv 7.9M
org.eclipse.pde.doc.user 6.0M
org.eclipse.platform.doc.user 3.8M

The working trees are far larger (600M+ for platform.doc.isv) but git-ignored.

For example, org.eclipse.platform.doc.isv:
the JAR is 42M compressed (~254M uncompressed) and is almost all generated Javadoc.

HTML category Uncompressed Files Share
Generated Javadoc (reference/api/) 230.2M 11,049 98.4%
Other HTML 3.8M 696 1.6%

So ~90% of the entire uncompressed JAR is generated Javadoc.
The same concentration applies to org.eclipse.jdt.doc.isv.

How is API info used to my knowledge:

  • AFAIK PDE uses the bundled Javadoc for hover/F1 only when the matching source bundle is not attached. This is offline; AFAIK if online it could point to online location. The full SDK ships source bundles, so editor hover/F1 renders Javadoc from these bundles. For that setup the bundled HTML is redundant.
  • The same reference is online at help.eclipse.org
  • Maybe the generated API is used for the API baseline comparison (not sure about this)

Possible directions:

  • Ship the API Javadoc as a separate, optional feature instead of bundling it by default.
  • Point org.eclipse.pde.core.javadoc at the online reference instead of a bundle if that is possible

I do not plan to work on this myself, but AFAIK @HannesWell is actively optimizing the build and download size, so this might be of interest to him.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions