2025-08-12 · 8 min čtení

Proč Monosnap zamrzá váš počítač a jak to opravit

Jste uprostřed pracovní relace — IDE otevřené, prohlížeč s dvaceti záložkami, Slack běží, možná Docker na pozadí. Váš počítač začne zpomalovat. Myš se zadrhává. Aplikace reagují pět sekund. Otevřete Správce úloh a tam to je: Monosnap používá 800 MB, 1,2 GB, někdy i více než 2 GB RAM.

Toto není chyba, kterou jste nahlásili a očekáváte opravu. Jedná se o systémový problém zakořeněný v architektuře Monosnapu. Uživatelé jej hlásí roky a nebyl vyřešen, protože základní příčina je zásadní pro to, jak je Monosnap postaven.

Tento článek vysvětluje, proč se to děje, jak to diagnostikovat, dočasná řešení a — když už toho máte dost — trvalou opravu.

Hlavní příčina: Electron a úniky paměti

Monosnap je postaven na Electronu, frameworku, který spouští webové aplikace jako desktopové aplikace sdružováním Chromia (engine za Chrome) a Node.js. Každá aplikace Electron v podstatě spouští webový prohlížeč na pozadí, a proto aplikace Electron mají tendenci spotřebovávat více zdrojů než nativní aplikace.

Samotný Electron inherentně nezpůsobuje úniky paměti — dobře postavené aplikace Electron spravují paměť efektivně. Ale Electron usnadňuje zavádění úniků paměti a ztěžuje jejich detekci. Kombinace garbage collection JavaScriptu, renderovacího pipeline Chromia a event loopu Node.js vytváří více ploch, kde může docházet k úniku paměti.

V případě Monosnapu se z uživatelských zpráv a systémové analýzy objevuje několik hlášených vzorců úniků:

Akumulace obrazových bufferů

Každý snímek obrazovky, který Monosnap zachytí, existuje jako obrazový buffer v paměti. V dobře implementovaném nástroji jsou tyto buffery uvolněny poté, co je obrázek uložen nebo nahrán. V Monosnapu uživatelské zprávy naznačují, že obrazové buffery z předchozích zachycení nejsou plně uvolněny, což způsobuje růst paměti s každým pořízeným snímkem obrazovky. Pořiďte 50 snímků obrazovky v jedné relaci a máte 50 částečně zadržených obrazových bufferů spotřebovávajících RAM.

Nafouknutí procesu renderování

Aplikace Electron používají pro své uživatelské rozhraní procesy rendereru (v podstatě karty Chrome). Editor, náhled a okna nastavení Monosnapu běží každý jako proces rendereru. Pokud tyto procesy nejsou řádně vyčištěny po zavření oken, jejich alokace paměti přetrvávají. Během dlouhé relace s opakovaným otevíráním a zavíráním editoru se to hromadí.

Úniky posluchačů událostí

Posluchači událostí JavaScriptu, kteří jsou registrováni, ale nikdy neregistrováni, jsou klasickým zdrojem úniků paměti v aplikacích Electron. Každý posluchač drží referenci, která brání garbage collectoru uvolnit přidruženou paměť. V nástroji, který neustále naslouchá globálním hotkeyům, změnám schránky a událostem zobrazení, se i malé úniky posluchačů časem sčítají.

Jak diagnostikovat problém

Pokud máte podezření, že Monosnap zpomaluje váš systém, zde je návod, jak to potvrdit:

Kontrola ve Správci úloh

  1. Stiskněte Ctrl+Shift+Esc pro otevření Správce úloh
  2. Klikněte na „Více podrobností“, pokud vidíte zjednodušené zobrazení
  3. Klikněte na záhlaví sloupce „Paměť“ pro seřazení podle využití RAM
  4. Hledejte položky „Monosnap“ – může jich být více (jedna pro každý proces Electron)
  5. Poznamenejte si celkovou paměť napříč všemi procesy Monosnap

Normální paměť v klidovém stavu pro nástroj na snímání obrazovky je 30-60 MB. Pokud je celková paměť Monosnapu nad 300 MB, máte únik. Nad 500 MB je to vážné. Nad 1 GB aktivně degraduje váš systém.

Hlubší pohled do Sledování prostředků

Pro více podrobností otevřete Sledování prostředků (resmon z dialogu Spustit):

  1. Přejděte na kartu Paměť
  2. Najděte procesy Monosnap
  3. Zkontrolujte „Pracovní sada“ (skutečná fyzická RAM použitá) a „Soukromá“ (paměť exkluzivní pro Monosnap)
  4. Sledujte tyto hodnoty po dobu 30 minut běžného používání – pokud mají tendenci stoupat, aniž byste pořizovali snímky obrazovky, únik je potvrzen

Dočasná řešení

Tato řešení zvládají příznaky. Neopravují základní únik.

Pravidelně restartujte Monosnap

Nejjednodušší řešení. Klikněte pravým tlačítkem na ikonu Monosnapu v oznamovací oblasti, ukončete a znovu spusťte. Tím se vymaže veškerá nahromaděná paměť. Někteří uživatelé nastaví úlohu v Plánovači úloh Windows, aby restartovala Monosnap každých několik hodin.

Vypněte cloudovou synchronizaci

Funkce cloudové synchronizace Monosnapu udržují v paměti další připojení a data. Pokud nepoužíváte cloudové úložiště, vypněte ji v Nastavení. To neodstraní úniky, ale může snížit rychlost růstu paměti.

Omezte aktivitu na pozadí

Vypněte funkce, které nepoužíváte: monitorování schránky, automatické snímání, integrační pluginy. Každá aktivní funkce přidává posluchače událostí a procesy na pozadí, které mohou unikat.

Nastavte limit paměti pomocí Windows

Můžete vytvořit skript, který monitoruje využití paměti Monosnapu a automaticky jej restartuje, když překročí prahovou hodnotu:

# PowerShell script — save as restart-monosnap.ps1
$threshold = 500MB
$process = Get-Process -Name "Monosnap" -ErrorAction SilentlyContinue
if ($process -and ($process.WorkingSet64 -gt $threshold)) {
    Stop-Process -Name "Monosnap" -Force
    Start-Sleep -Seconds 2
    Start-Process "C:\Program Files\Monosnap\Monosnap.exe"
}

Naplánujte spuštění každou hodinu přes Plánovač úloh. Je to provizorní řešení, ale účinné.

Trvalé řešení: Přepněte na nativní nástroj

Trvalým řešením úniků paměti založených na Electronu je přestat používat nástroj založený na Electronu. Nativní aplikace pro screenshoty – vytvořené přímo na API operačního systému bez běhového prostředí webového prohlížeče – nemají stejnou plochu pro úniky paměti.

Maxisnap je nativně vytvořen pro Windows. Nepoužívá Electron, Chromium ani Node.js. Používá přímo Windows API pro snímání obrazovky, GDI+ pro zpracování obrazu a lehké UI frameworky pro editor anotací. Výsledek:

  • ~35 MB RAM v klidu — a zůstává na ~35 MB. Žádný růst v čase. Žádné úniky.
  • Nainstalováno pod 70 MB — ve srovnání s Monosnapem, který má 200+ MB (většina z toho je přibalený Chromium)
  • Nula procesů Electronu — jeden proces ve Správci úloh, předvídatelné využití zdrojů
  • Není potřeba restartovat — běží týdny bez růstu paměti

Sada funkcí pokrývá vše, co většina uživatelů Monosnapu potřebuje: snímání oblasti, snímání celé obrazovky, 11 nástrojů pro anotace (včetně rozostření citlivých dat) a nahrávání přes SFTP, FTP, S3 nebo HTTP. Podívejte se na celé srovnání.

Migrace z Monosnapu na Maxisnap

Přechod trvá asi pět minut:

  1. Stáhnout Maxisnap — Pod 70 MB, instalace trvá asi minutu
  2. Naučte se klávesové zkratkyCtrl+Alt+5 (oblast), Ctrl+Alt+6 (celá obrazovka), Ctrl+Alt+7 (automatické nahrávání). Kompletní průvodce zkratkami zde.
  3. Nakonfigurujte nahrávání (volitelné) — Pokud jste používali cloud Monosnapu, nastavte nahrávání přes SFTP na váš vlastní server pro podobný pracovní postup snímání-na-odkaz, aniž byste záviseli na cloudu Monosnapu.
  4. Zakažte spouštění Monosnapu — Nastavení > Obecné > zrušte zaškrtnutí „Spustit při startu“
  5. Povolte spouštění Maxisnapu — Nastavení > zaškrtněte „Spustit s Windows“

Vaše screenshoty z cloudu Monosnapu zůstanou přístupné přes webové rozhraní Monosnapu i po odinstalaci desktopové aplikace. Nové screenshoty budou procházet přes Maxisnap.

Proč tento problém nebude opraven

Úniky paměti v Electronu jsou notoricky obtížně opravitelné, protože jsou rozloženy napříč vrstvami frameworku. Únik v procesu rendereru vyžaduje jiné ladění než únik v hlavním procesu nebo ve vrstvě Node.js. Nalezení a oprava každého úniku v komplexní aplikaci Electron je v podstatě neustálý projekt – nikoli jednorázová oprava.

Tým Monosnapu by musel buď investovat značné inženýrské úsilí do profilování paměti a nápravy úniků, nebo přepsat aplikaci bez Electronu. Ani jedno se nezdá být na jejich plánu, vzhledem k tomu, že problém přetrvává napříč několika hlavními verzemi.

Pro uživatele to znamená, že problém nezmizí. Můžete jej spravovat restarty a dočasnými řešeními, nebo jej můžete eliminovat přechodem na nástroj, který s sebou nenese režii Electronu.

Závěrečné myšlenky

Nástroj na snímání obrazovky by měl být neviditelný. Měl by sedět v systémové liště, spotřebovávat zanedbatelné zdroje a zachytit vaši obrazovku, když stisknete klávesovou zkratku. Neměl by být důvodem, proč váš počítač zamrzne během prezentace.

Pokud spotřeba paměti Monosnapu ovlivňuje vaši práci, pomohou výše uvedené dočasné opravy. Ale trvalé řešení je zřejmé: použijte nástroj vytvořený pro tuto práci bez zátěže webového prohlížeče běžícího na pozadí.

Stáhnout Maxisnap a porovnejte svůj Správce úloh před a po. Rozdíl je okamžitý. Zdarma pro osobní použití — vyzkoušení nic nestojí.

Jste připraveni vyzkoušet lepší nástroj pro snímání obrazovky?

Stáhněte si Maxisnap zdarma a uvidíte rozdíl.

Stáhnout Maxisnap zdarma