abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
včera 22:55 | Zajímavý článek

V bitmapových obrázcích bývají často ukrytá užitečná data, která jsou ovšem běžně nepřístupná. V článku Full-textové prohledávání komiksů a jiných obrázků (dostupné přes Tor) autor prakticky ukazuje, jak si postahovat komiksy a rozpoznat v nich text pomocí OCR nástroje Tesseract. Následně Ghostscriptem vkládá všechny komiksy do jednoho velkého PDF, ve kterém jde vyhledávat text (který byl původně jen shlukem grafických bodů v bitmapách). Uvedený postup lze použít i k užitečnějším věcem, jako např. indexování nestrukturovaných dat na disku.

Monika Kokešová | Komentářů: 4
včera 22:44 | Pozvánky

17. až 19. května se uskuteční další ročník putovní konference české a slovenské Drupal komunity - tentokrát v Hustopečích na Moravě. Bude se věnovat nejnovějším trendům v Drupalu, ale i v postupech a nástrojích pro vývoj a správu webových aplikací. Můžete se těšit na odborné přednášky, workshopy, neformální debaty i přehlídku nejzajímavějších projektů. Podrobnosti a vstupenky najdete na drupalcs.camp.

Eva Rázgová | Komentářů: 0
včera 22:22 | Nová verze

Byla vydána verze 4.0 textového editoru GNU nano (Wikipedie). Podrobný přehled novinek a oprav v oznámení v diskusním listu info-nano nebo v souboru ChangeLog na Savannah.

Ladislav Hagara | Komentářů: 0
23.3. 17:11 | Komunita

Na konferenci herních vývojářů GDC 2019 (Game Developers Conference) měla svůj stánek i společnost Red Hat. Návštěvníci si mohli zahrát počítačové hry na Fedoře 29 s Cinnamonem a Lutrisem.

Ladislav Hagara | Komentářů: 0
23.3. 15:33 | Komunita

O víkendu probíhá v Cambridgi (MA) konference LibrePlanet 2019 organizovaná Nadací pro svobodný software (FSF). Na programu je řada zajímavých přednášek. Sledovat je lze také online.

Ladislav Hagara | Komentářů: 1
22.3. 21:33 | Humor

Richard M. Stallman v článku Install Fests: What to Do about the Deal with the Devil navrhuje, jak se vypořádat s morálním dilematem, zda na „installfestech“ (akcích, kde zkušení uživatelé pomáhají nováčkům nainstalovat GNU/Linux na přinesený hardware) instalovat také nesvobodný software, typicky ovladače. Vzdělávací přístup je „škola hrou“, kdy instalace právě nesvobodného softwaru provádí postava „Ďábla“.

Fluttershy, yay! | Komentářů: 11
22.3. 14:44 | Komunita

Dalších sedm produktů od společnosti ThinkPenguin získalo certifikaci RYF (Respects Your Freedom, Respektuje vaši svobodu) udělovanou Nadací pro svobodný software (FSF). Poprvé získal certifikaci USB mikrofon, konkrétně TPE-USBMIC. Certifikace RYF byla představena v říjnu 2012.

Ladislav Hagara | Komentářů: 0
22.3. 13:33 | Komunita

Na Humble Bundle lze získat počítačovou hru Tacoma (YouTube, Wikipedie) běžící také v Linuxu zdarma. Speciální akce končí v neděli v 18:00.

Ladislav Hagara | Komentářů: 0
22.3. 11:11 | Zajímavý projekt

Na Kickstarteru byla spuštěna kampaň na podporu zařízení NexDock 2. Jedná se o přenosnou dokovací stanici aneb notebook bez procesoru a paměti. Stačí připojit podporovaný telefon s Androidem nebo Raspberry Pi.

Ladislav Hagara | Komentářů: 0
22.3. 09:55 | Zajímavý článek

Před týdnem byly vydány nové verze 4.2.11.1, 5.0.7.2, 5.1.6.2, 5.2.2.1 a 6.0.0.beta3 frameworku pro vývoj webových aplikací Ruby on Rails (Wikipedie). Opraveny byly 3 bezpečnostní chyby: CVE-2019-5418, CVE-2019-5419 a CVE-2019-5420. Analýza CVE-2019-5418 (zobrazit si lze libovolný soubor na serveru, například /etc/passwd) na blogu Chybeta.

Ladislav Hagara | Komentářů: 1
Kolik balíčků (v tisících) máte nainstalovaných na svém systému?
 (4%)
 (14%)
 (33%)
 (30%)
 (19%)
 (3%)
 (2%)
 (1%)
 (3%)
Celkem 234 hlasů
 Komentářů: 23, poslední včera 17:36
Rozcestník

Dotaz: Serverová aplikace C++ - paměť

21.12.2018 22:27 __blr__
Serverová aplikace C++ - paměť
Přečteno: 1189×
Zdravím,

potřebuji naprogramovat aplikaci v C++ běžící pod Linuxem. V ideálním případě aplikace poběží nonstop, restart aplikace (daemona) nebude žádaný a očekávám, že vždy přinese problémy.

Rád bych se proto zeptal na zkušenosti s různými aplikacemi buď vámi psanými, nebo běžně dostupnými (Apache):

aplikace bude postupem času alokovat relativně malé bloky paměti pro jednotlivé třídy (od několika bajtů po max. desítky kB), některé si ponechá, ale jiné bude alokovat a uvolňovat. Maximální počet jednotlivých tříd bude omezen. Po nějakém měsíci provozu očekávám max. stovky MB, jak využité, tak i alokované a uvolněné.

Má význam zabývat se fragmentací dynamicky alokované paměti (případně jak), nebo jsou v jádru k dispozici nástroje, které si s tím poradí?

Jsou s běžně používanými aplikacemi (daemony) typu Apache problémy v dlouhodobém provozu bez restartu (zpomalení, apod.) ?

Díky

Odpovědi

21.12.2018 22:35 debian+
Rozbalit Rozbalit vše Re: Serverová aplikace C++ - paměť
Isto ziadne restarty? Ani restart pri update "C++ standart library"? Co ak nieco zblne a bude nutny restart?

Nikdy - to sa hovorilo aj o Titaniku.

V cistom C si vies lahlo pamet ukladat RAW na disk a po restarte si nacitat (ak sa nechces nejako transponovat-parsovat).

A co riesis pamet, pamet je lacna. Max par 100MB vies v pohode daj VPS s dobrou cenou. A ako budes casto pristupovat k tej pamete (mame swap aj).
21.12.2018 23:06 __blr__
Rozbalit Rozbalit vše Re: Serverová aplikace C++ - paměť
Nepsal jsem, že restart nebude nikdy. Ale určitě nepředpokládám update každý měsíc/půlrok.

Jde o to, že budu alokovat paměť a zase uvolňovat, ale občas si nějaký blok nechám v paměti. Tudíž nutně vzniknou v paměti fragmenty.
Jendа avatar 21.12.2018 23:22 Jendа | skóre: 75 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Serverová aplikace C++ - paměť
nebo jsou v jádru k dispozici nástroje, které si s tím poradí?
Co s tím jádro může dělat jiného než případné nepoužívané stránky odswapovat na disk?
22.12.2018 09:57 Sten
Rozbalit Rozbalit vše Re: Serverová aplikace C++ - paměť
Jádro nijak fragmentaci paměti neřeší, to si řeší jednotlivé aplikace samy pomocí alokátorů (v C++ to řeší výchozí operátor new).

Dlouhodobě běžící služby tohle řeší pomocí prefork: hlavní proces pouze udržuje konfiguraci, práci dělají potomci vytvoření přes fork, kteří se po určitém množství práce zabijí. Alternativou je použití vláken a vlastních alokátorů alokujících z anonymního mmap, který se při ukončení vlákna po určitém množství práce uvolní, ale je složité něco takového napsat.
22.12.2018 14:37 __blr__
Rozbalit Rozbalit vše Re: Serverová aplikace C++ - paměť
Aha, díky za info.

V podstatě se též jedná o síťovou aplikaci, taky budu využívat fork, ale potomci musí vydržet po celou běhu programu. Data bych nerad držel u rodiče a přes sdílenou paměť využíval v potomcích kvůli bezpečnosti.

Defacto mi jde o to, jak přesvědčit alokátor, aby "recykloval" alokovanou paměť.
Jendа avatar 22.12.2018 20:02 Jendа | skóre: 75 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Serverová aplikace C++ - paměť
To víceméně dělá; v C jsou věci jako mallopt a malloc_info, které umožňují tohle ladit, doufám, že alokátory v C++ budou mít něco podobného.
24.12.2018 10:34 __blr__
Rozbalit Rozbalit vše Re: Serverová aplikace C++ - paměť
A jak je to s alokací a recyklací polí (lib. typu) ?

Jinými slovy by mi na to měla odpovědět dokumentace k std::allocator ?
24.12.2018 20:28 MadCatX | skóre: 22 | blog: dev_urandom
Rozbalit Rozbalit vše Re: Serverová aplikace C++ - paměť
C++ žádný vlastní alokátor paměti nemá. std::allocator z libstdc++ alokuje paměť operátorem new, který zavolá Cčkový malloc(). Chování tedy bude záviset na tom, jak je na dané platformě malloc implementován.

Problém, který řešíš bys neměl vyšetřovat teď ale až potom, co napíšeš a obenchmarkuješ nějaký prototyp. Pokud se ukáže, že výchozí systémový alokátor nestačí, překlopíš to na nějaký jiný.
24.12.2018 11:25
Rozbalit Rozbalit vše Re: Serverová aplikace C++ - paměť
skrytý komentář Náš administrátor shledal tento komentář závadným.

trolling

Zobrazit komentář
24.12.2018 12:56 __blr__
Rozbalit Rozbalit vše Re: Serverová aplikace C++ - paměť
Jádro aplikace by mělo běžet kromě PC i na embedded Linuxu s relativně nízkým výkonem CPU (spotřeba) a malou RAM.

V čem se Ti C++ nezdá?
14.1. 15:53 Sulo
Rozbalit Rozbalit vše Re: Serverová aplikace C++ - paměť
No ak ti môžem ešte poradiť.

Fragmentáciu pamäte nevyriešiš nejakými nástrojmi. Je to na programátorovi, aby si to vyriešil, bez ohľadu na jazyk.

Práve tým, že budeš alokovať a uvoľnovať a držať nejaké prvky alokované, tak tá fragmentácia nastane alebo nie.

Tak práve pre dlho bežiacu sererovú aplikáciu ( a s maximálnym počtom nejakých prvkov ) by som všetko, čo treba na začiatku programu alokoval a uvoľnil až pri ukončení programu. Presne kvôli fragmentácii pamäti.

Nejaké pole o veľkosti maximalneho počtu prvkov.

15.1. 22:47 Kojot
Rozbalit Rozbalit vše Re: Serverová aplikace C++ - paměť
Vzhledem k tomu, že má být maximální počet jednotlivých tříd omezen, tak se dá dopředu alokovat buffery pro jejich maximální počet. Inicializaci pak provádět pomocí placement operatoru new a destrukci přímým voláním destruktoru. Samozřejmě je potřeba si udržovat informaci o volných a inicializovaných pozicích v bufferech pro jednotlivé třídy. Podle mě to ale většinou nemá cenu. Několik démonů běžících 24/7 jsem dělal a neměl jsem zatím problémy s pamětí i s výchozím alokátorem, ale taky to běželo na běžném serveru s dostatkem GB RAM.
18.1. 07:16 frr | skóre: 33
Rozbalit Rozbalit vše Re: Serverová aplikace C++ - paměť
Proč mám pocit, že je to řádově menší problém, než cokoli server-side s garbage collectorem?
[:wq]

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.