[C#] Počítání velikosti objektu – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

[C#] Počítání velikosti objektu – .NET – Fórum – Programujte.com[C#] Počítání velikosti objektu – .NET – Fórum – Programujte.com

 

sh00ter0
Newbie
31. 5. 2011   #1
-
0
-

Zdravím,

chci se zeptat, v rámci programu si potřebuju spočítat, kolik instancí třídy se mi vejde do operační paměti. Spočítat velikost členských proměnných není problém.

Ale chci se zeptat, jak je to s metodami, zda se v paměti alokuje jedna, která se pak volá na různé objekty, nebo se pro každý objekt vytvoří metoda vlastní?

Případně pokud na to existuje nějaká metoda abych to nemusel počítat :)

Našel jsem metodu Marshall.SizeOf(typeof(trida)), ale ta mi vrací chybu

Type 'Reminder.Event' cannot be marshaled as an unmanaged structure; 

no meaningful size or offset can be computed.


Díky.

Nahlásit jako SPAM
IP: 94.113.85.–
nervak0
Věrný člen
31. 5. 2011   #2
-
0
-

Metody se samozřejmě "nealokují" pro každý objekt.

Ale...
Procesy běží ve virtuální paměti, na velikost operační paměti zapomeň. A SizeOf ti neřekne nic o tom, kolik další paměti .NET potřebuje pro správu toho objektu. Takže spočítáš velký kulový :) A určitě to ani nepotřebuješ.

Nahlásit jako SPAM
IP: 213.211.51.–
sh00ter0
Newbie
31. 5. 2011   #3
-
0
-

Já počítám s tim že bych k tomu musel připočíst pár těch kb na nějakou tu režii, a potřeboval bych to na to, abych si moh spočítat kolik instancí ještě můžu vytvořit (pomocí System.Diagnostics.PerformanceCounter jsi jsem schopen zjistit velikost volné paměti) a chci to k tomu, abych mohl uživatele informovat o momentálním využití paměti aplikace.

Nahlásit jako SPAM
IP: 94.113.85.–
31. 5. 2011   #4
-
0
-

To sh00ter : Nemám aktuálně představu, jak to řešit, ale ta informace je pro většinu lidí naprosto nepodstatná. Je to stejně užitečné jako hodiny na webové stránce.

Nahlásit jako SPAM
IP: 89.203.157.–
Dušan Janošík | web: djanosik.cz, @djanosik
liborb
~ Redaktor
+18
Guru
31. 5. 2011   #5
-
0
-

V podstatě je malá šance, že se dobereš nějakých smysluplných hodnot. jen tak si zkus, kolik instancí si můžeš vytvořit a co ti ty ukazatele ukazují za čísla - možná budeš překvapen. Nehledě na to, že kdyby si se dostal až k bodu, kdy by nebylo možné přidělit žádnou paměť, tak už by si to stejně uživateli asi na vědomí nedal :)

Nahlásit jako SPAM
IP: 78.80.52.–
sh00ter0
Newbie
31. 5. 2011   #6
-
0
-

To liborb : tak ono by stačilo uživateli říct že je paměť plná když bude zbejvat třeba 100MB že jo.

To djanosik : a myslim si že užitečný to bejt může, protože pak se dá předejít padání aplikace, popř. ošetřování výjimky. ;)

Nahlásit jako SPAM
IP: 94.113.85.–
liborb
~ Redaktor
+18
Guru
31. 5. 2011   #7
-
0
-

Chceš tak trochu suplovat funkce OS. Sice čas na webu občas užitečný je http://www.presnycas.cz/, ale ty se stejně snažíš o věc, která opravdu nikoho nezajímá :)

Nahlásit jako SPAM
IP: 78.80.52.–
sh00ter0
Newbie
31. 5. 2011   #8
-
0
-

No já si myslim že konkrétně tohle systém vůbec nezajímá, toho zajímá akorát "Máš tyhle stránky a dělej si s nima co chceš"

Nahlásit jako SPAM
IP: 94.113.85.–
liborb
~ Redaktor
+18
Guru
31. 5. 2011   #9
-
0
-

Tím jsem chtěl říct, že se přikláním k názoru, že děláš něco, co nebude mít takový efekt, jaký asi čekáš. Samozřejmě můžu být úplně vedle a ty na tomhle nasekáš milióny a budeš za vodou. Když si to vezmu ze svého pohledu ... aplikaci mi napíše, že už má jenom 100MB paměti ... a co? Zakáže mi některé funkce ... prostě nebude plně funkční? Tak ji stejně zavřu a pustím znovu ... Dělá mi to furt (a často) ... pak je nepoužitelná ...

Nahlásit jako SPAM
IP: 78.80.52.–
sh00ter0
Newbie
31. 5. 2011   #10
-
0
-

Ale ne, tak to nemyslim, je to něco jako v telefonim seznamu v mobilu, máš prostě už jen x volnejch míst...

Nahlásit jako SPAM
IP: 94.113.85.–
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, 29 hostů

Podobná vlákna

Tisk v C# a velikosti — založil durmitor

Velikosti komponent — založil pkubicek

Počítání Sessions — založil Bryant

Počítání s maticemi — založil Loloska

 

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