Vlastností myslím vlastnost beany. Pomocí setteru nastavím String, za
pár chvil pomocí getteru získávám null...


Dne 22. září 2011 11:01 Roman Kratochvil
<[email protected]> napsal(a):
> "je ve vlastnosti místo Stringu null"
>
> Sice není dvakrát srozumitelné, co tím myslíte (jaká "vlastnost"?
> java.util.Properties?), ale zdá se mi, že GC je zde falešná stopa... Pokud
> je nakonec ve "vlastnosti" null, tak bych tipnul, že je to normální
> reference (nějak dosažitelná Vaším kódem), a pokud tam byl předtím String,
> tak to nemohl vymazat GC, protože ten nikdy žádné dosažitelné (reachable)
> reference nemaže...
> Pokud se ta knihovna konfiguruje pomocí Properties, podstrčte jí takové,
> které jsou nemodifikovatelné. Tím se snadno najde viník, který nastavuje ono
> null - až to zkusí, dojde k výjimce a ze stack trace poznáte, kdo to byl.
>
> Roman
>
>
>
> Dne 22.9.2011 9:31, Libor Jelinek napsal(a):
>>
>> Dobrý den,
>> nene o optimalizaci nejde. Dohledávám podivné chování closed-source
>> externí knihovny. V rámci jedné své metody si uložím si String objekt
>> do knihovní instance. Volám další své metody a někdy
>> po jedné jindy po dvou nebo třech volání je ve vlastnosti místo
>> Stringu null. Odkaz na knihovní instanci držím jako field po celou
>> dobu.
>>
>> Přiznám se, že také příliš nerozumím k čemu a jak použít k tomuto
>> aspektové programování (pro mě dosud abstraktní pojem). Jediné po čem
>> skutečně toužím je prostý log co bylo GCed... Zdá se, že to svede jen
>> JProfiler za 450 EUR.
>>
>> Libor
>>
>> Dne 21. září 2011 17:59 "Zdeněk Troníček"<[email protected]>
>>  napsal(a):
>>>
>>> Dobrý den,
>>>
>>> k čemu to potřebujete? Pokud Vám jde o to, zjistit, kterých objektů je v
>>> paměti nejvíce, doporučuji tento postup: nastavte velikost young generace
>>> tak, aby docházelo pouze k Full GC. Např. pro Java2DDemo funguje -Xmn14M
>>> -Xmx16M.
>>> A použijte přepínač -XX:+HeapDumpBeforeFullGC.
>>> Tím se před každým Full GC provede heap dump do souboru. Tyto soubory lze
>>> pak prohlížet např. ve VisualVM.
>>>
>>> Z.T.
>>> --
>>> Zdenek Tronicek
>>> FIT CTU in Prague
>>>
>>>
>>> Libor Jelinek napsal(a):
>>>>
>>>> Dobrý den,
>>>> existuje nějaký způsob jak zjistit jméno třídy objektu, které bylo
>>>> "garbage collected" Javou?
>>>>
>>>> Přidání parametrů do (Oracle) JVM
>>>>     -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps
>>>>
>>>> jen vypisuje vyčištěnou pamět, nikoli co bylo vyčištěno.
>>>>
>>>> Google mi též nepomohl.
>>>>
>>>> Díky
>>>> Libor
>>>>
>>>>
>>>
>
>

Odpovedet emailem