You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@netbeans.apache.org by GitBox <gi...@apache.org> on 2017/12/10 19:12:01 UTC
[GitHub] mdindoffer opened a new pull request #322: Migrate to Files.new* creation of I/O streams during IDE boot
mdindoffer opened a new pull request #322: Migrate to Files.new* creation of I/O streams during IDE boot
URL: https://github.com/apache/incubator-netbeans/pull/322
This change drops the usage of FileInputStream and FileOutputStream in classes that affect the boot up of the IDE in order to help relieve the pressure on the GC via circumventing the finalization.
I've measured the most notable offenders during the boot to reside in core, bootstrap and openide.filesystems modules:


However, the **vastly** more prominent and omnipresent case of finalizable input streams can be observed in the ZipFileInputStreams originating from ZipFile and JarFile objects:

As far as I know, there's no trivial solution to resolve those finalizations, but will look around for possible improvements there.
As for the GC performance, I've repeatedly measured very small improvements in the GC invocations with default JVM settings:
Vanilla - http://gceasy.io/diamondgc-report.jsp?oTxnId_value=43107dc9-d949-4990-8585-684685aa4d02
PR - http://gceasy.io/diamondgc-report.jsp?oTxnId_value=3c5f83a2-05d6-4edf-9719-35d5fd14ff6c
The improvements are rather small, but please do note the measurements were taken on a new fairly powerful desktop PC with clean NB builds (zero projects imported, etc...). Therefore the gain might be bigger on lower end machines, where NB might be run (e.g. local schools?) or during real life usage scenarios. I encourage such tests, if in doubt.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
With regards,
Apache Git Services