Bug #2716

very long Groovy compilation time when launching import modules for the first time in a session

Added by Matthieu Decorde about 1 year ago. Updated about 1 month ago.

Status:New Start date:01/16/2020
Priority:Urgent Due date:
Assignee:- % Done:

0%

Category:Macros Spent time: -
Target version:TXM 0.8.2

Description

Currently there is a very long compilation time before running any Groovy script (at first run or after editing a script).

Solution 0

The GroovyScriptEngine classloader needs to access all ClassLoaders to find out unknown classes (e.g a TXM extension classes like the "URSCorpora" class)

reduce the number of tested ClassLoader when the GroovyScriptEngine loads a class :
  • only use TXM plugin loaders -> ~ 70 loaders
  • only use the "*.rcp" plugin loaders (they contains the "*.core" plugin loaders) -> 34 loaders
  • resolve TXM plugin dependancies to only keep the necessary plugin loaders (e.g the "org.txm.rcp" plugin is included in all "*.rcp" plugins) ->
  • test the EclipseClassLoader name against the loaded class package name

Solution A

Do not compile the import modules scripts if sources are not newer than the class files. Hence :
- ship the import modules Groovy classes with TXM
- generalize to all Groovy scripts if possible
- compare the class file compilations date with the last source modifications date

Find a way to:
- pre-compile Groovy scripts published by TXM plugins (org.txm.groovy.core, etc.)
- and ensure the pre-compiled classes are overriden by the TXMHOME/scripts/groovy/user Groovy scripts

Solution B

- restore the Groovy class files build by the RCP build
- if necessary, force the GroovyScriptEngine to recompile the import module files (importer, annotate, compiler, pager) and their dependencies (Groovy classes)

Associated revisions

Revision 3004
Added by Matthieu Decorde about 1 month ago

less ClassLoader to check when calling Groovy scripts refs #2716

History

#1 Updated by Matthieu Decorde 5 months ago

  • Subject changed from RCP: X.X, pre-compile Groovy scripts to very long Groovy compilation time when launching import modules for the first time in a session
  • Description updated (diff)

#2 Updated by Matthieu Decorde 5 months ago

  • Description updated (diff)

#3 Updated by Matthieu Decorde 5 months ago

  • Priority changed from Normal to High

#4 Updated by Matthieu Decorde about 1 month ago

  • Priority changed from High to Urgent

#5 Updated by Matthieu Decorde about 1 month ago

  • Description updated (diff)

#6 Updated by Matthieu Decorde about 1 month ago

  • Description updated (diff)

#7 Updated by Matthieu Decorde about 1 month ago

  • Description updated (diff)

Also available in: Atom PDF