Zjištění, zda je program NAPROSTO nahrán v operační paměti – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Zjištění, zda je program NAPROSTO nahrán v operační paměti – Java – Fórum – Programujte.comZjištění, zda je program NAPROSTO nahrán v operační paměti – Java – Fórum – Programujte.com

 

solomon0
Newbie
2. 6. 2014   #1
-
0
-

Zdravím,
dlouho si s tímto lámu hlavu.

Jak zjistím, že je program naprosto načten v operační paměti (zkrátka naprosto spuštěn)?
Vím, že existuje metoda isAlive(), ale ta mi zjistí, zda je proces spouštěn, nikoli naprosto načten.

Vážím si každé odpovědi.

Nahlásit jako SPAM
IP: 88.101.22.–
2. 6. 2014   #2
-
0
-

Tohle mě nikdy nenapadlo

Zasláno z mobilního telefonu.

Nahlásit jako SPAM
IP: 89.24.241.–
Kit+15
Guru
2. 6. 2014   #3
-
0
-

#1 solomon
Java umožňuje dynamické načítání tříd. Není tedy možné zjistit, zda je načteno všechno, protože kdykoli je možné načíst další třídu.

K čemu to vlastně potřebuješ?

Nahlásit jako SPAM
IP: 147.229.242.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
solomon0
Newbie
2. 6. 2014   #4
-
0
-

#3 Kit
Pro upřesnění: Program má za úkol zjistit (jak kompatibilitu, tak hardwarové, softwarové nároky), zda daná aplikace na onom zařízení bude běžet.
Tudíž potřebuje ke spočítání nároků naprosto "spuštěný" program.

Nahlásit jako SPAM
IP: 88.101.22.–
solomon0
Newbie
2. 6. 2014   #5
-
0
-

#3 Kit
Mám zatím jediný nápad:

Pomocí rozhraní Sigar zjistím aktuálně načtenou paměť (zaokrouhlenou např. na megabyty) a pokud po uběhnutí určeného časového limitu se ve while cyklu objeví stejná hodnota v dané proměnné, program pokračuje v počítání, jinak se while cyklus dále opakuje.

RADĚJI PRAXE:

while(!(prvníproměnná == prvníproměnnáPoDalšímUběhnutí)){

                                       //Aby se do počítání nepletla ram, kterou používá můj program:
long prvníproměnná = volnáPaměť-(Runtime.getRuntime().totalMemory - Runtime.getRuntime().freeMemory());
užitečnosti.zastav(1000);
long prvníproměnnáPoDalšímUběhnutí = volnáPaměť-(Runtime.getRuntime().totalMemory - Runtime.getRuntime().freeMemory());

}

Máte lepší nápad?

Nahlásit jako SPAM
IP: 88.101.22.–
Flowy0
Věrný člen
2. 6. 2014   #6
-
0
-

#5 solomon
ano ... prestan riesit sprostosti ... o to ze program ma dost prostriedkov sa stara JVM a ked to nezvlada tak OS ... ak sa ti zda ze program moze pracovat rychlejsie tak najdi rychlejsiu cestu ... robit benchmark nema absolutne ziadny vyznam pretoze v case kedy bude potrebne max mnozstvo prostriedkov bude benchmark aj tak neplatny (resp JVM moze tvoj program v tom case prelozit inak a teda su pre teba hodnoty z benchmarku zbytocne)

Nahlásit jako SPAM
IP: 95.103.237.–
https://github.com/Flowy
solomon0
Newbie
3. 6. 2014   #7
-
0
-

#6 Flowy
Zřejmě si mě nepochopil.
Já nezjišťuji, kolik MŮJ program zabírá operační paměti, ale kolik JINÝ program zabírá ram.
Pro příklad: Potřebuji zjistit, jestli můj počítač zvládne hru World of Tanks - zkusím tento program, ten mi to zjistí.

Chápeš?

Nahlásit jako SPAM
IP: 88.101.22.–
p3can
~ Anonymní uživatel
312 příspěvků
3. 6. 2014   #8
-
0
-

#7 solomon
mam takovy dojem ze to ani neni mozne, protoze jak zminoval Kit tak java muze jednotlive moduly dynamicky nacitat. nehlede na ruzne casti kodu ktere se pousti nedeterministicky takze co se tyce mnozstvi pameti co zabere nejaky program tak je to podle me nezmeritelne.

co se tyce dalsich zavislosti tak to taky nechapu jak to chces merit nebo jak detailne to chces merit, protoze pokud vim tak napriklad 3D hry volaji nativni knihovny psane v c++ nebo jinych jazycich a nevim jak chces v kompilovanem kodu zjistovat konkretni pozadovane hw vybaveni.

Nahlásit jako SPAM
IP: 77.92.213.–
Flowy0
Věrný člen
3. 6. 2014   #9
-
0
-

#7 solomon
java neni stavana na taketo zasahovanie do systemu ... pouzi C ak to tak velmi potrebujes ale je to hlupost

#8 p3can
ako moze byt nieco na pc pustane nedeterministicky?

Nahlásit jako SPAM
IP: 95.103.237.–
https://github.com/Flowy
p3can
~ Anonymní uživatel
312 příspěvků
3. 6. 2014   #10
-
0
-

#9 Flowy
neni nedeterministicka chovani takove chovani jez je rizene nahodou ? a neni to prakticky chovani "vsech" her? kdyz mam mapu na ktere je 5 botu a ja pujdu pokazde jen rovne tak pokazde dostanu jiny vysledek, protoze chovani botu je ovlivneno nahodnymy cisly.

Nahlásit jako SPAM
IP: 77.92.213.–
Flowy0
Věrný člen
3. 6. 2014   #11
-
0
-

nahodne cisla v pc niesu uplne nahodne ... procesor v pc je tazko deterministicky ... ak tvoj procesor robi nedeterministicke operacie potom je pokazeny ...

procesor ti pre rovnaky vstup vzdy vrati rovnaky vysledok

Nahlásit jako SPAM
IP: 95.103.237.–
https://github.com/Flowy
p3can
~ Anonymní uživatel
312 příspěvků
3. 6. 2014   #12
-
0
-

#11 Flowy
co ? xD tak zaprve normalni trida Random neni mozna "uplne" nahodna. ale napr. trida RNGCryptoServiceProvider z .NET pouziva jako vstup pro generovani nahodnych cisel tolik vstupu ze se vysledna hodnota da povazovat za nahodnou nehlede na to ze napr. intel uz ma vlastni HW random generator zabudovany primo v procesoru.

jinak hlaska "procesor ti pre rovnaky vstup vzdy vrati rovnaky vysledok" se da mozna aplikovat na scitaci a odcitaci operace ale je absolutne mimo pokud se bavime o realnem komplexnim programu na desktopovem OS. nepouzivaji hry nahodou mechanismy ktere dynamicky za chodu prizpusobuji "narocnost sceny" tak aby bylo dosazeno vzdy idealniho fps ? (nemluvim o Vsynch ani fps locku)

Nahlásit jako SPAM
IP: 77.92.213.–
Flowy0
Věrný člen
3. 6. 2014   #13
-
0
-

nemyslim si ze sa tu zhodneme ... to ze pouziva mnozstvo vstupov neni dovod predpokladat ze je vystup nahodny ... procesor ti pre rovnaky vstup da vzdy rovnaky vystup a preto je deterministicky ak budes mat dva rovnake procesory do ktorych das dva rovnake vstupy v roznom case tak ten ktory skonci prvy zaroven predpovie to co vyda ten druhy ... to ci je random generator implementovany softwarovo alebo hardwarovo nic nemeni na tom ze stale generuje len pseudonahodne cisla ... jediny skutocne nahodny jav o ktorom viem je stiepenie atomov (ak vies o inom tak napis) ... ak neimplementujes takyto jav do procesora tak procesor bude stale deterministicky ... ak by procesor nebol deterministicky tak by sa asi tazko dal pouzivat na vypocty ... FYI procesor sa sklada z tranzistorov a tento vie len scitat ... vsetky ostatne funkcie su zalozene na poskladani scitania a pamete

sam si povedal ze mechanizmy predpovedaju buducnost ked sa snazia optimalizovat nastavenia pre idealne fps ... to je jedna z mnozstva vyhod ze procesor je deterministicky ... ak by nebol tak by asi tazko mohol fungovat pre predpoved pocasia alebo pocitanie

Nahlásit jako SPAM
IP: 95.103.237.–
https://github.com/Flowy
p3can
~ Anonymní uživatel
312 příspěvků
3. 6. 2014   #14
-
0
-

ty se furt bavis o instrukcich ale. ja se bavim o komplexni operaci.

jak dlouho trva otevreni souboru xls souboru v excelu ? to ti nikdo nerekne protoze zalezi na velikosti/obsahu toho souboru. pak zalezi na stavu os. mas pri tom pusteny skype ? mas spustene icq ? jakou verzi excelu (vcetne zaplaty) mas ? jaky je to procesor ? je pretaktovany? jakou ma aktualni frekvenci?

proste nejsi schopny nikdy rict jak dlouho to bude trvat. pokud bys mel v "laboratornich" podminkach 2 uplne stejne pc kde bude absolutne stejny os a vsechny programy a pustil je na milisekundu presne tak mozna si schopny deterministicky predpovedet jak dlouho se ten soubor bude otevirat. jinak proste jen spekulujes nebo pocitas s "prumernymi" casy coz neni zrovna moc deterministicke :).

tema prispevku bylo mereni "zavislosti a metrik" jinych programu. ja tvrdem ze to proste nejde protoze vychazis jen z odhadu a prumeru mereni.

Nahlásit jako SPAM
IP: 77.92.213.–
Flowy0
Věrný člen
4. 6. 2014   #15
-
0
-

#14 p3can
sam si vymenoval par vstupov ktore rozhoduju o vysledku ... ak by si ich vsetky presne poznal (do takej urovne ako ich pozna procesor) tak by si dokazal predpovedat co bude vystupom ... ak by si nedokazal predpovedat co procesor spravi pri danych vstupoch tak by nemohol fungovat ako procesor pocitaca ktory je riadeny algoritmom ... meranie zdrojov pocitaca urcite je mozne ale je to tak nakladna cinnost ze sa odhaduje len priblizne a jednorazovo (minimalne a odporucane poziadavky) ... merat to nema v OOP vyznam a cisto v jave sa to predpokladam ani robit neda (musel by si pouzit externe knihovny napr v C)

Nahlásit jako SPAM
IP: 91.148.1.–
https://github.com/Flowy
solomon0
Newbie
4. 6. 2014   #16
-
0
-

Už to zřejmě mám.
Zde je odpověď: 

while(!(dokonprvní == dokondruhé)||dokonprvní > dokondruhé){
prvníbod = vir.použitápaměť() - (javapaměť.totalMemory()-javapaměť.freeMemory());	
zkraťprvní = String.valueOf(prvníbod);
zkraťprvní = zkraťprvní.substring(0, 3);
dokonprvní = Long.valueOf(zkraťprvní);
užit.zastav(1000, chyba+"Pozastavení běhu programu."+konecchyby);
druhýbod = vir.použitápaměť() - (javapaměť.totalMemory()-javapaměť.freeMemory());
zkraťdruhé = String.valueOf(druhýbod);
zkraťdruhé = zkraťdruhé.substring(0, 3);
dokondruhé = Long.valueOf(zkraťdruhé);
System.out.print(".");
Nahlásit jako SPAM
IP: 88.101.22.–
p3can
~ Anonymní uživatel
312 příspěvků
4. 6. 2014   #17
-
0
-

#16 solomon
jinak samozrejme plati to co rikal KIT o tom ze programy vytvorene v jave i v .NET umi dynamicky za chodu nacitat knihovny takze pokud na zkoumanem programu nenasimulujes plnou funkcionalitu (coz asi neni ani mozne) tak sou ty cisla nic nevypovidajici

Nahlásit jako SPAM
IP: 77.92.213.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 38 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý