Diskuze: System.OutOfMemoryException
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 17 zpráv z 17.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


"OutOfMemory" již podle názvu znamená, že ti došla paměť
Zřejmě tam cpeš nějaká velká
data v cyklu.
No tak to mi doslo ze to bude nieco s pamatou ... necakal som ze par stringov ju dokaze takto zahltit
Záleží jak to máš napsané. C# paměť uvolňuje sám, ale jsou situace, kdy to nedělá. Pokud máš server, kde ti stále jede jedna metoda, tak je možné, že po ní neuklidí, protože vlastně nikdy neskončí. Můžeš zkusit občas zavolat GC.Collect(), tím explicitně zavoláš mechanismus, který paměť uvolňuje. Dokud sem ale nevložíš kód, tak na to těžko přijdeme.
Mam takyto kod spusteny vo vlakne
while(!work)
{
if (!communication.receivedString.Contains("retazec1"))
{
if (communication.receivedString.Contains("retazec2"))
{
string_receive.Add(communication.receivedString);
}
}
else
{
work=true;
}
}
Uzmi to nevypisuje tu vynimku pretoze som tam pridal jednu podmienku a filtrujem data ale problem mam v tomto tu:
string_receive.Add(communication.receivedString);
vlastne pridavam staticku premennu do Listu<> ale mam pocit ze tam zapise stale tu istu hodnotu do celeho Listu
Jak jsem psal, pokud tam pořád cpeš další a další data a nikdy je nemažeš, tak ti togicky někdy dojde paměť.
Ale prečo mi to do Listu neuklada z tej premennej retazce ... treba vytvorit List<string []> ???
Protože tam cpeš statiku, tím tam vlastně nacpeš "odkaz" na ten text a jakmile ho změníš a chceš ho znovu uložit tak se změní všechny, protože všechny vedou k tomu jednomu
No ostane tam posledný uložený text mam pocit a neuloží tam všetky ako chcem. Nevieš mi poradit ako to spravit aby tam ukladalo normálne texty teda celé vety a aby som si mohol potom vytiahnut obsah ? teda chcel by som to takto aby ked dám string_receive[2] aby vypisalo vetu v tom poradi
Dokud sem nevložíš celý kód aplikace, tak ti těžko někdo poradí.
Ved kod som vlozil hore ... akurat to mi nejde tak si myslim zeby to malo stacit dokonca si to spustam vo vlakne ... nepotrebujem nic len ukladat data konretne typu string do Listu<string> ale problem je v tom ze sa mi tam asi neukladaju spravne ... tie data su vety ktore maju co ja viem 6 a viac slov a potrebujem si do Listu<> ulozti dajme tomu na prve miesto prvu vetu a tak dalej a potom si to vybrat a zobrazit celu vetu
Sice jsi ten kód dal nahoru, ale ne to jak získáš 'communication.receivedString'
To je premenná v triede communication ktorá je verejná a statická a do tejto premennej sa ukladajú prijaté dáta cez UDP protkol. Táto premenná sa dynamicky mení z každými prijatími dátama v cykle while. A volám si ju takto communication.receivedString
Zobrazeno 17 zpráv z 17.