cs.phhsnews.com


cs.phhsnews.com / Proč jsou ty prohřešky tak nepřesné?

Proč jsou ty prohřešky tak nepřesné?


Na první pohled se zdá, že vytváření přesného odhadu času by mělo být poměrně snadné. Koneckonců, algoritmus vytvářející graf pokroku zná všechny úkoly, které musí udělat před časem ... správně?

Z velké části je pravda, že zdrojový algoritmus neví, co potřebuje udělat před časem. Určitý čas, který bude vyžadovat provedení každého kroku, je však velmi obtížný, ne-li prakticky nemožný úkol.

Všechny úkoly nejsou vytvořeny rovnocenné

Nejjednodušší způsob implementace pruhu postupu je použití grafického reprezentace čítače úkolů. Kde je procento dokončeno jednoduše vypočteno jako Dokončené úkoly / Celkový počet úkolů . Zatímco toto je logický smysl pro první myšlenku, je důležité si uvědomit, že některé úkoly trvají déle.

Zvažte následující úkoly prováděné instalátorem:

  1. Vytvořte strukturu složek
  2. Dekomprimujte a kopírujte
  3. Vytvořte položky v položce Start
  4. V tomto příkladu by kroky 1, 3 a 4 byly velmi rychlé, zatímco krok 2 by trval nějakou dobu. Takže vývojový panel, který pracuje na jednoduchém počtu, bude velmi rychle skákat na 25%, chvíli se zastaví, zatímco krok 2 bude pracovat, a pak bude skákat na 100% téměř okamžitě.

Tento typ implementace je vlastně poměrně častý mezi bary postupu protože, jak bylo uvedeno výše, je snadné jej realizovat. Nicméně, jak vidíte, je vystaveno nepřiměřeným úlohám, které se skládají z procenta progrese

aktuálního , protože se týká zbývajícího času. Chcete-li toto vyřešit, některé pokročilé sloupce mohou používat implementace, kde jsou váhy váženy. Zvažte výše uvedené kroky, kde je přiřazena relativní váha pro každý krok:

Vytvořit strukturu složek. [Hmotnost = 1]

  1. Dekomprimujte a zkopírujte soubory o velikosti 1 GB. [Hmotnost = 7]
  2. Vytvoření položek registru. [Hmotnost = 1]
  3. Vytvořte položky nabídky. [Hmotnost = 1]
  4. Pomocí této metody se lišta postupu pohybuje v krocích po 10% (celková váha je 10), kroky 1, 3 a 4 pohybují tyč 10% po dokončení a krok 2 se pohybují 70%. Zatímco určitě není dokonalý, metody jako je tento jsou jednoduchý způsob, jak přidat k procentu barvy pokroku trochu více přesnosti.

Předchozí výsledky nezaručují budoucí výkon

Zvažte jednoduchý příklad toho, že vás požádám o počítání na 50 Používám stopky, abych vás časil. Řekněme, že počítáte na 25 za 10 sekund. Bylo by rozumné předpokládat, že počítáte zbývající čísla za dalších 10 sekund, takže ukazatel průběhu bude ukazovat 50% a 10 sekund zbývajících.

Jakmile dosáhne počet 25, začnu házet tenisové míče na vás. Je pravděpodobné, že se to vaše rytmus zlomí, protože se vaše koncentrace přesunula od přísného započítávání čísel do vyhýbavých míčů, které vám hodili cestu. Za předpokladu, že jste schopni pokračovat v počítání, vaše tempo jistě zpomalilo. Takže nyní se průběžný pruh stále pohybuje, ale s mnohem pomalejším tempem s předpokládaným časem, který zůstává buď v klidu, nebo ve skutečnosti vyšším.

Pro praktičtější příklad toho zvážíte stahování souboru. Aktuálně stahujete 100 MB soubor rychlostí 1 MB / s. To je velmi snadné určit odhadovaný čas dokončení. Ale 75% z toho, že některé hity za přetížení sítě a rychlost stahování klesne na 500 KB / s.

V závislosti na tom, jak prohlížeč vypočítá zbývající čas, může vaše ETA okamžitě přejít z 25 sekund na 50 sekund

Zbývající velikost / Rychlost stahování ) nebo s největší pravděpodobností prohlížeč používá algoritmus s klouzavým průměrem, který by se přizpůsobil kolísání přenosové rychlosti bez zobrazování dramatických skoků uživateli. algoritmus válcování s ohledem na stahování souboru může fungovat takto: Rychlost přenosu za posledních 60 sekund je zapamatována s nejnovější hodnotou nahrazující nejstarší (např. 61. hodnota nahrazuje první)

Efektivní přenos míra pro výpočet je průměr těchto měření.

  • Zbývající čas se vypočítá jako:
  • Velikost zbývající / efektivní Rychlost stahování
  • Takže pomocí našeho scénáře výše (z důvodu jednoduchosti použijeme 1 MB = 1.000 KB): naše 60 pamatovaných hodnot by mělo být 1000 KB. Efektivní přenosová rychlost je 1000 kB (60 000 KB / 60), což znamená, že zbývá 25 sekund (25 000 KB / 1 000 KB).

U 76 sekund (kde rychlost přenosu klesne na 500 KB) se stává ~ 992 KB (59,500 KB / 60), což zbyde zbývajícího času ~ 24,7 sekundy (24,500 KB / 992 KB).

  • 77 sekund: Efektní rychlost = ~ 983 KB ~ 24,4 sekundy (24 000 KB / 983 KB)
  • U 78 sekund: Efektivní rychlost = 975 KB (58,500 KB / 60), což zbylo zbývajícího času ~ 24,1 sekundy (23,500 KB / 975 KB). vzorek, který se zde objevuje, poněvadž pokles rychlosti stahování je pomalu začleněn do průměru, který se používá k odhadu zbývajícího času. Při této metodě, pokud ponoření trvalo pouze 10 sekund a pak se vrátilo na 1 MB / s, je pravděpodobné, že uživatel si všimne rozdílu (s výjimkou velmi malého stánku v předpokládaném odpočítávání času).
  • - Jedná se jednoduše o metodologii pro předávání informací konečnému uživateli o skutečné základní příčině ...
  • Nemůžete přesně určit něco, co je nedeterministická

Nakonec, nepřesnost pruhu pokroku se snižuje na skutečnost, že se snaží určit čas pro něco, co je nedeterministická. Vzhledem k tomu, že počítače zpracovávají úkoly jak na požádání, tak na pozadí, je téměř nemožné vědět, jaké systémové prostředky budou v budoucnosti k dispozici - a to je dostupnost systémových prostředků, které jsou potřebné pro dokončení jakékoli úlohy. > Použití jiného příkladu předpokládejme, že používáte aktualizaci programu na serveru, který provádí poměrně intenzivní aktualizaci databáze. Během tohoto procesu aktualizace uživatel odesílá náročnou žádost do jiné databáze spuštěné v tomto systému. Nyní musí serverové zdroje, konkrétně pro databázi, zpracovávat požadavky jak na upgrade, tak na dotaz spuštěný uživatelem - scénář, který bude určitě vzájemně škodlivý pro dobu provádění. Alternativně může uživatel iniciovat velký požadavek na přenos souborů, který by zdanil propustnost ukládání dat, která by také snížila výkon. Nebo by se mohla spustit naplánovaná úloha, která provádí proces náročný na paměť. Získáte nápad.

Jako možná realističtější instance pro každodenní uživatele - zvažte spuštění služby Windows Update nebo antivirové kontroly. Obě tyto operace provádějí operace náročné na zdroje na pozadí. Výsledkem toho je, že každý postup závisí na tom, co uživatel v té době dělá. Pokud čtete svůj e-mail během běhu, pravděpodobně bude poptávka po systémových zdrojích nízká a průběžný pruh se bude posunovat důsledně. Na druhou stranu, pokud děláte úpravu grafiky, pak bude vaše poptávka po systémových zdrojích mnohem větší, což způsobí, že pohybový posun bude schizofrenní.

Celkově je prostě bez křišťálové koule. Dokonce ani samotný systém neví, jakou zatížení bude v budoucnosti existovat.

V konečném důsledku to opravdu nemá záležitost

Záměrem ukazatele postupu je dobře naznačit, že je skutečně dosaženo pokroku a příslušný proces není zavěšen. Je pěkné, když je ukazatel pokroku přesný, ale obvykle je to jen nepatrná nepríjemnost, když tomu tak není. Z velké části se vývojáři nebudou věnovat hodně času a úsilí algoritmům pokrokových barů, protože upřímně řečeno, jsou mnohem důležitější úkoly věnovat se časům.

Samozřejmě máte všechno právo být zlobí když okamžitě dokončíte ukazatel pokroku až na 99%, a pak vyčkejte 5 minut na zbývající jedno procento. Pokud však příslušný program funguje dobře, připomeňte si, že vývojář měl své priority rovno.


Jak třídit text v aplikaci Word

Jak třídit text v aplikaci Word

Když většina lidí myslí na třídění textu v aplikaci, přemýšlí o třídění buněk v tabulce aplikace Excel. Můžete však text v aplikaci Word třídit, pokud existuje něco, co řekne aplikaci Word, kde jednotlivé části textu začínají a končí.V tomto článku vám ukážeme několik způsobů, jak můžete třídit text, seznamy a tabulky v aplikaci Word. Všimněte si, že pokud máte v aplikaci Excel

(How-to)

Sdílejte přínosy Amazon Prime s přáteli a rodinou

Sdílejte přínosy Amazon Prime s přáteli a rodinou

Amazon Prime je jednou z těch neuvěřitelně užitečných funkcí Amazonu, díky čemuž je tak snadné udržet si nákup na svých stránkách. Po několika letech používání Amazonu jsem si uvědomil, že budu kupovat věci, které by mohly vrátit náklady za 99 dolarů za čas. Ze všech věcí, které kupuji, je 80% objednané online a 80% z toho je z Amazonu. Schopnost získat zboží za dva dny

(How-to)