mistupv / JavaSlicer

A program slicer for Java, based on the system dependence graph (SDG).
https://mist.dsic.upv.es/JavaSlicer/demo/
GNU Affero General Public License v3.0
52 stars 18 forks source link

graphviz-java dependency is too big and under-utilized #8

Closed cargaji closed 4 years ago

cargaji commented 4 years ago

That dependency alone adds ~20MB, while only being used to run dot -Tpng file.dot -o file.png, which can be easily replaced.

On the other hand, it includes classes for nodes, edges, clusters and graphs that could be used, avoiding the need to create toGraphvizRepresentation methods.

cargaji commented 4 years ago

It is possible that graphviz-java includes the binaries for all graphviz engines for the most common systems (win32, win64, macos and linux). That would explain its size and the four blobs (.so files) that made up most of the library's size.

I think the decision of bundling the binaries depends on the intended usage for this project; probably the graph visualization will be inconsequential and the real result is the slice. The graphs can be analyzed by developers, who can easily install graphviz in their system.

jacosro commented 4 years ago

This could be solved in #14.

Removing graphviz-java is OK. However, this should be considered as optimization, which is something we should not care about yet (20MB is not that big).