Iš pirmo žvilgsnio atrodytų, kad tikslus laiko apskaičiavimas turėtų būti gana lengvas. Galų gale, pažangų juostos generavimo algoritmas supranta visas užduotis, kurias reikia atlikti anksčiau laiko ... tiesa?
Iš esmės tiesa, kad šaltinio algoritmas žino, ką reikia padaryti prieš laiką. Tačiau kiekvieno žingsnio atlikimo laikas yra labai sudėtinga, jei beveik neįmanoma.
Paprasčiausias pažangos juostos įgyvendinimo būdas - naudoti grafinį užduočių skaitiklio pateikimas. Jei procentas yra visiškai apskaičiuojamas kaip Užbaigtos užduotys / bendras uždavinių skaičius . Nors tai daro logišką požiūrį į pirmąją mintis, svarbu prisiminti, kad (akivaizdžiai) kai kurių užduočių atlikimas užtrunka ilgiau.
Apsvarstykite šias montuotojo atliktas užduotis:
Šiame pavyzdyje 1, 3 ir 4 žingsniai baigsis labai greitai, o 2 veiksmas užtruks šiek tiek laiko. Taigi pažangos juosta, veikianti paprastame skaičiavime, greitai peršokia iki 25%, šiek tiek sumažėja, o 2 žingsnis veikia, o tada beveik iškart peršokia iki 100%.
Šis įgyvendinimo būdas iš tikrųjų yra gana dažnas tarp pažangos juostų. nes, kaip minėta pirmiau, ją lengva įgyvendinti. Tačiau, kaip matote, dėl neproporcingų užduočių kyla faktinis pažangos procentas, nes jis susijęs su likusiu laiko momentu.
Tam, kad išspręstumėte tai, kai kuriuose pažangos juostose gali būti naudojami įdiegimai, kuriuose yra svarsčių. Apsvarstykite pirmiau pateiktus veiksmus, kur kiekvienam žingsniui priskiriamas santykinis svoris:
Naudodamiesi šiuo metodu, pažangų juosta su 10% žingsniais (kaip bendras svoris yra 10) judėtų 1, 3 ir 4 žingsniais, perkeliančius juostelę 10% baigus darbą, o 2 žingsnis ją perkelia 70%. Nors tikrai nėra tobulas, tokie metodai yra paprastas būdas pridėti šiek tiek daugiau tikslumo į progreso juostos procentą.
Apsvarstykite paprastą mano pavyzdį, kuriame prašoma suskaičiuoti iki 50 Aš naudoju chronometrą. Tarkime, kad skaičiuojate iki 25 po 10 sekundžių. Būtų pagrįsta manyti, kad likusius skaičius bus skaičiuojamos dar 10 sekundžių, taigi pažangos juostos sekimas tai parodys 50%, o likusius 10 sekundes. Kai jūsų skaičius bus 25, pradėsiu mesti teniso kamuoliukus į tave. Tikriausiai tai sutrikdys jūsų ritmą, nes jūsų koncentracija pereis nuo griežto skaičiavimo skaičiaus iki vengiančių kamuoliukų, išmestų jūsų kelią. Darant prielaidą, kad galite tęsti skaičiavimą, jūsų tempas beveik sulėtėjo. Taigi dabar pažangos juosta vis dar juda, tačiau daug lėčiau nei prognozuojamas laikas, likęs neveikliai arba faktiškai aukštėjant aukščiau.
Norėdami gauti daugiau praktinio pavyzdžio, apsvarstykite failo atsisiuntimą. Šiuo metu atsisiųsite 100 MB failą 1 MB / s greičiu. Tai labai lengva nustatyti apskaičiuotą užbaigimo laiką. Tačiau 75% ten esama, kai kurie tinklo perkrovos paspaudimai ir jūsų atsisiuntimo greitis nukrenta iki 500 KB / s.
Priklausomai nuo to, kaip naršyklė apskaičiuoja likusį laiką, jūsų ETA gali iš karto pereiti nuo 25 sekundžių iki 50 sekundžių (naudojant dabar tik valstybės:
Likęs dydis / Atsisiuntimo greitis ) arba, greičiausiai, naršyklėje naudojamas sukimojojo vidurkio algoritmas, kuris prisiderintų prie perdavimo greičio svyravimų, nerodant didelių šuolių į naudotoją. persiuntimo algoritmas, susijęs su failo parsisiuntimu, gali veikti šiek tiek panašiai:
Perdavimo greitis per pastaruosius 60 sekundžių prisimenamas naujausia verte, pakeičiančia seniausią (pvz., 61 vertė pakeičia pirmąją).
Po 75 sekundžių į atsisiuntimą, mūsų 60 atmintų reikšmių kiekvienas būtų 1,000 KB. Veiksminga perdavimo sparta yra 1 000 KB (60 000 KB / 60), o tai reiškia, kad liko 25 sekundžių (25 000 KB / 1000 KB).
Jūs negalite tiksliai nustatyti kažko, kas nėra nestandariškas
Galų gale, pažangos juostos netikslumas susilygina su tuo, kad jis bando nustatyti kažkas, kas yra nondeterminis. Kadangi kompiuteriai apdoroja užduotys tiek pagal pareikalavimą, tiek į foną, beveik neįmanoma žinoti, kokie sistemos ištekliai bus prieinami bet kuriuo metu ateityje - tai yra sistemos išteklių prieinamumas, kuris reikalingas norint atlikti bet kurią užduotį.
Kaip galbūt realesnis atvejis kasdieniniam vartotojui - apsvarstykite "Windows Update" arba virusų nuskaitymą. Abi šios operacijos atlieka intensyvias operacijas fone. Dėl to kiekvienos iš jų padaryta pažanga priklauso nuo to, ką vartotojas tuo metu daro. Jei skaitysite el. Laišką, kol tai bus vykdomas, greičiausiai sistemos išteklių paklausa bus maža, o pažangos juosta bus nuosekliai perkelta. Kita vertus, jei atliksite grafikos redagavimą, tada jūsų sistemos išteklių poreikis bus daug didesnis, todėl pažangos juostos judėjimas bus šizofreniškas. Apskritai paprasta, kad nėra kristalų kamuoliuko. Net pati sistema nežino, kokia apkrova ateityje bus bet kokioje ateityje.
Galų gale, tai iš tiesų nėra svarbu
Pažangos juostos tikslas yra gerai parodyti, kad pažanga iš tikrųjų daroma ir atitinkamas procesas nėra pakabintas. Tai malonu, kai pažangos rodiklis yra tikslus, tačiau paprastai tai yra tik nedidelis erzina, kai to nėra. Didžioji dalis kūrėjų nesiruošia skirti daug laiko ir pastangų į pažangų juostos algoritmus, nes, tiesą sakant, yra daug svarbesnių užduočių praleisti laiką.
Žinoma, jūs turite visokeriopą teisę susierzinti kai progreso juosta greitai pasiekia 99%, o likusį procentą paliekate palaukti 5 minutes. Bet jei atitinkama programa veikia gerai, tiesiog primenate, kad kūrėjas turi savo prioritetus tiesiai.
Kaip išjungti "ScreenTips" "Word 2013" versiją
Naudojant "Word" juostos komandas, galbūt pastebėjote pasirodžiusias langelius, rodomus, kai perkeliate pelę ant mygtukų. Tai yra "ScreenTips" ir gali būti naudinga kaip nuoroda. Tačiau jei jie jus atitraukia, jie yra lengvai išjungiami. Norėdami išjungti ScreenTIps, spustelėkite skirtuką "File". Užkulisių ekrane spustelėkite "Parinktys", esančių kairėje esančių elementų sąraše.
Kaip galite rasti "Chrome" plėtinius, kurie įterpia skelbimus į interneto puslapius?
Skelbimai yra interneto gyvenimo dalis, tačiau kai nesąžiningas pratęsimas prasideda sąmoningai įvedant skelbimus į naršymo procesą, tada atėjo laikas imtis veiksmų! Šiandieninė "SuperUser" Q & A žinutė turi atsakymą, kad padėtų nusivylusiam skaitytuvui išvalyti savo naršymo patirtį. Šiandienos klausimų ir atsakymų sesija ateina pas mus su "SuperUser" - "Stack Exchange", bendruomenės pagrįstos Q & A grupės svetainių dalimi.