Grupy dyskusyjne Google nie obsługują już nowych postów ani subskrypcji z Usenetu. Treści historyczne nadal będą dostępne.

Odchudzanie jar

0 wyświetleń
Przejdź do pierwszej nieodczytanej wiadomości

Sebastian Bialy

nieprzeczytany,
15 paź 2007, 15:53:3115.10.2007
do
Mam taki problem:

a) mam duży zbiór klas tworzących "framework" dla moich aplikacji

b) ze względów praktycznych nie chce dzielić ich na osobne biblioteki -
są dość zwarte i nie jest łatwo mi wydzielić sensowne podzbiory. Ale
nawet jesli podziele problem pozostanie tylko rozdrobniony.

c) mam pare programów (main) korzystających z różnych częsci tego
frameworka.

d) w każdym wypadku istnieje jakaś część martwych klas które nie
uczestniczą w runtime konkretnego maina.

Pytanie: czy po zbudowaniu docelowego jara możliwe jest "posprzątanie" z
niego bezużyteczych plików class ? Poszukuje czegoś w rodzaju
analizatora który na podstawie manifestu będzie w stanie rekurencyjnie
oznaczyć używane pliki i usunąć zbędne w jarze. Stukam i pukam na google
i coś nie mogę znaleźć, pewnie nie znam własciwych słów kluczowych.
Zalezy mi na wersji post-build działającej na jarze a nie na źródłach.

PS. Nie korzystam z żadnych technik dynamicznego ładowania klas,
wyłącznie statyczny runtime.

Jacek Laskowski

nieprzeczytany,
15 paź 2007, 16:38:1215.10.2007
do
Sebastian Bialy wrote:

> Pytanie: czy po zbudowaniu docelowego jara możliwe jest "posprzątanie" z
> niego bezużyteczych plików class ?

Spróbuj -verbose:class podczas wywołania programu, np.

$ java -verbose:class -version

Z taką listą używanych klas tworzysz nowy jar. Oczywiście może się
zdarzyć, że jakieś funkcjonalności nie wywołasz podczas testów
"uszczuplających" i wtedy NCDFE ;-)

Jacek

--
Jacek Laskowski
http://www.JacekLaskowski.pl

artur.z...@gmail.com

nieprzeczytany,
16 paź 2007, 02:37:4116.10.2007
do
On 15 Paź, 21:53, Sebastian Bialy <h...@poczta.onet.pl> wrote:
>
> Pytanie: czy po zbudowaniu docelowego jara możliwe jest "posprzątanie" z
> niego bezużyteczych plików class ? Poszukuje czegoś w rodzaju
> analizatora który na podstawie manifestu będzie w stanie rekurencyjnie
> oznaczyć używane pliki i usunąć zbędne w jarze. Stukam i pukam na google
> i coś nie mogę znaleźć, pewnie nie znam własciwych słów kluczowych.
> Zalezy mi na wersji post-build działającej na jarze a nie na źródłach.
>
Szukalem kiedys czegos takiego, ale nie moge teraz sie tego doszukac,
nie wiem czy nie jest to to: http://jarg.sourceforge.net/

--
Pozdrawiam,
Artur

Piotr Kobzda

nieprzeczytany,
16 paź 2007, 05:27:2916.10.2007
do
Sebastian Bialy wrote:

> Pytanie: czy po zbudowaniu docelowego jara możliwe jest "posprzątanie" z
> niego bezużyteczych plików class ? Poszukuje czegoś w rodzaju
> analizatora który na podstawie manifestu będzie w stanie rekurencyjnie
> oznaczyć używane pliki i usunąć zbędne w jarze. Stukam i pukam na google
> i coś nie mogę znaleźć, pewnie nie znam własciwych słów kluczowych.
> Zalezy mi na wersji post-build działającej na jarze a nie na źródłach.

Zobacz też na GenJar:
http://genjar.sourceforge.net/
http://mindprod.com/jgloss/genjar.html

Nigdy nie użyłem, więc gdyby nie działało jak należy, możesz wyciągnąć
te zależności samemu, trzeba tylko nieco w class-file'ach pogrzebać... :)


piotr

Leonard Milcin

nieprzeczytany,
16 paź 2007, 06:04:4516.10.2007
do
Jacek Laskowski wrote:
> Sebastian Bialy wrote:
>
>> Pytanie: czy po zbudowaniu docelowego jara możliwe jest
>> "posprzątanie" z niego bezużyteczych plików class ?
>
> Spróbuj -verbose:class podczas wywołania programu, np.
>
> $ java -verbose:class -version
>
> Z taką listą używanych klas tworzysz nowy jar. Oczywiście może się
> zdarzyć, że jakieś funkcjonalności nie wywołasz podczas testów
> "uszczuplających" i wtedy NCDFE ;-)
>
> Jacek
>

Dokładnie. Statyczna analiza plików .class w przypadku ogólnym nie
pozwala na ustalenie które klasy są używane a które nie. Dopiero
rzeczywiste uruchomienie systemu może w tym pomóc.

Z pomysłów: możnaby zapisywać listę używanych klas do pliku i napisać
jakiś task dla ant-a który będzie czytał listę + jakieś dodatkowe reguły
i kopiował pliki do katalogu przejściowego z którego później zostanie
utworzony jar.

Pozdrawiam,
Leonard

--
duc, sequere, aut de via decede

Nowe wiadomości: 0