Diskuze: Potrebujem poradit pri hladani stringu

C# .NET .NET (C# a Visual Basic) Potrebujem poradit pri hladani stringu American English version English version

Avatar
Tayson
Člen
Avatar
Tayson:

Zdravim uz som tu nieco porobne riesil ale potrebujem radu alebo nejake usmernenie ako dalej pretoze sa neviem pohnut z miesta. Mam nejaky textovy subor do ktoreho sa mi zapisuju logy. Tento textovy subor sa stale zaplnuje logami ak je to potrebne a moze mat velkost aj 200 MB. Ja z tohot textoveho suboru potrebujem vytiahnut v urcity okamih nejake data. Vyzera to nasledovne:

Class A

{

//nejaka trieda kde v cykle while bezi premenna ktora vycitava logy a zapisuje ich do premennej

while(true)

{

//tu sa to uklada do premennej log_string a rovno sa to zapisuje do textoveho suboru a vsetko tu funguje v poriadku

}

}

Toto by bolo v poriadku ale mam triedu druhu

Class B

{

// tu sa mi vykonava nejaky kod a tu potrebujem dane data analyzovat v urcity cas... vlastne tie logy posiela zariadenie a to zariadenie sa restartuje teda ho restartujem ja a po restarte to zariadenie vypise log ze sa restartovalo a ja od toho restartu potrebujem smerom hore cize na zaciatok prejst niektore stringy a skontrolovat data

}

Jeden moj napad bol taky ze som si z premennej v Class A spravil staticku a potom som si v Class B vytvoril metodu ktoru som spustal vo vlakne a vlastne tu staticku premennu som ukladal do Listu <> ale nefungovalo to uplne podla mojich predstav pretoze neboli tam vsetky data.

 
Odpovědět 21.11.2013 10:29
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na Tayson
Jiří Gracík:

je docela dobrá praktika ho po nějaké době vzít, přejmenovat třeba na log_x a pokračovat v zapisování do čistého logu, pak se bude hledat lépe ;)

Nahoru Odpovědět 21.11.2013 10:34
Creating websites is awesome till you see the result in another browser ...
Avatar
Tayson
Člen
Avatar
Odpovídá na Jiří Gracík
Tayson:

No ale tak mal by som potom zbytocne vela suborov narobenych a malych a podla mna je to zbytocne

 
Nahoru Odpovědět 21.11.2013 10:42
Avatar
Odpovídá na Tayson
Martin Gabriel:

Podle mě je zbytečné mít 200mb texťák. :-/
Stejně to jinak než přes pole nepřečteš od konce... a do statiky bych se moc nepouštěl.

Nahoru Odpovědět 21.11.2013 10:58
"Be the change you want to see in the world" - Michael Scofield
Avatar
Tayson
Člen
Avatar
Odpovídá na Martin Gabriel
Tayson:

A co je podla teba priatelskejsie ako 200 MB textovy subor ? potrebujem aby sa tie data zapisovali do nejakeho textoveho suboru aby si to vedel stale hoci kto otovorit a precitat

 
Nahoru Odpovědět 21.11.2013 11:08
Avatar
Odpovídá na Tayson
Martin Gabriel:

Proč to vlastně nedáváš do databáze? To by bylo mnohem elegantnější.

Nahoru Odpovědět 21.11.2013 11:15
"Be the change you want to see in the world" - Michael Scofield
Avatar
Tayson
Člen
Avatar
Tayson:

No tak to mas pravdu ale zas by tam bolo velmi velke mnoztvo dat a ja potrebujem rychlejsi sposob zapisu a to je to textoveho suboru lepsie... ked ja ten textovi subor skomprimujem do .rar tak 200MB sa zmensi iba na 4MB a to by sa uz do operacnej pamate dalo nacitat... alebo pouzit iny format suboru pre zapis dat

 
Nahoru Odpovědět 21.11.2013 11:22
Avatar
Kit
Redaktor
Avatar
Odpovídá na Martin Gabriel
Kit:

Zápis do databáze má obvykle mnohem vyšší režii právě proto, aby čtení bylo rychlejší. Logy se zapisují často, ale čtou jen občas. Proto je výhodnější optimalizovat zápis, tedy logovat do textového souboru.

Nahoru Odpovědět  +1 21.11.2013 11:57
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Martin Gabriel:

To jsem netušil. Dík za objasnění. :)

Nahoru Odpovědět 21.11.2013 12:35
"Be the change you want to see in the world" - Michael Scofield
Avatar
Luboš Běhounek (Satik):

Pokud ty logy chceš nějak zpracovávat, tak bych použil databázi.

200 MB už mi nepřijde jako moc optimální velikost pro "aby si to vedel stale hoci kto otovorit a precitat".

200MB na log je docela hodně, typicky má log soubor pár KB, max pár MB.
Co tam loguješ? Potřebuješ všechno co loguješ opravdu logovat? A pokud DB opravdu nevyhovuje, tak bych taky preferoval ty logy nějak logicky rozdělovat do více souborů.

Nahoru Odpovědět 21.11.2013 13:08
:)
Avatar
Kit
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
Kit:

Vždyzky záleží na tom, jak často do toho logu leze. Pokud několikrát za minutu, tak by textový soubor skutečně nebyl ideální, ale čtení 200 MB souboru trvá na mém Atomu 0,3 s, což není taková hrůza.

Nahoru Odpovědět 21.11.2013 13:47
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek (Satik):

Máš disk s rychlostí čtení 666,666... MB/s? Pěkné :)

Mě šlo spíš o to zpracování dat, když je to v DB, tak zavolám jeden select, tady si to bude muset parsovat...

EDIT: Co to máš za disk? Mé SSD čte max 450 cca MB/s :(

Editováno 21.11.2013 14:06
Nahoru Odpovědět 21.11.2013 14:02
:)
Avatar
Odpovídá na Kit
Michal Žůrek (misaz):

prosím tě co to máš za SSD? Taky bych si ho koupil, jestliže reálná přenosová rychlost je opravdu tak vysoká

Nahoru Odpovědět 21.11.2013 14:16
Nesnáším {}, proto se jim vyhýbám.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
Kit:

To bylo z diskové cache, ten soubor měl jen 1 GB a četl ho 1,3 s.

Nahoru Odpovědět 21.11.2013 14:33
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek (Satik):

Co máš za disk, že máš diskovou cache velkou 1GB? Můj 2TB Seagate plotňák má diskovou cache jen 64MB :(

Nahoru Odpovědět 21.11.2013 14:46
:)
Avatar
Kit
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
Kit:

Disková cache v RAM. Mám 2 GB a systém 1 GB využil jako mezipaměť s diskem, protože ji v tu chvíli nepotřeboval.

Nahoru Odpovědět 21.11.2013 15:16
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek (Satik):

Ale tam ten soubor běžně nemáš, pokud ho nepoužíváš nějak často :)

Nahoru Odpovědět 21.11.2013 15:22
:)
Avatar
Kit
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
Kit:

No jo, napoprvé to z disku četlo jen 100 MB/s, ale snad jsme se bavili o častém prohledávání, ne?

Nahoru Odpovědět 21.11.2013 15:26
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
mkub
Redaktor
Avatar
mkub:

aby som to vysvetlil... Linux v skutocnosti vyuziva iba cast pamate RAM, zvysok vyuzitelnej RAM tvori CACHE disku, kam si nacitava otvarane subory, ale akonahle potrebuje viac pamate tak si pozicia potrebne mnozstvo z CACHE disku v RAM
to vsetko prebieha v ramci kernelu transparentne, uzivatel, si nicoho nevsimne

 
Nahoru Odpovědět  +2 21.11.2013 17:46
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 19 zpráv z 19.