Յուրաքանչյուր ոք, ով աշխատում է Windows-ի առաջադրանքների ժամանակացույցում, վաղ թե ուշ կբախվի գործարկման ժամանակի անբացատրելի տարբերություններին: PHP սկրիպտը, որն աշխատում է 5 րոպեում հրամանի տողում, հանկարծակի տևում է 20 րոպե, երբ գործարկվում է Windows Task Scheduler-ի միջոցով: Նույն օգտատերը, նույն իրավունքները, նույն կոդը՝ կատարման ժամանակը չորս անգամ: Ի՞նչ էր կատարվում այնտեղ։
Ժամեր անց Վրիպազերծում, Գործընթացների մոնիտորինգի նիստերը և կազմաձևման անհամար համեմատությունները, լուծումը ցնցող պարզ էր. Windows-ի առաջադրանքների պլանավորումը լռելյայնորեն սահմանում է գործընթացի ավելի ցածր առաջնահերթություն: Task Scheduler-ում առաջադրանքների լռելյայն արժեքն է 7 (Նորմալից ցածր), ոչ 4-6 (Նորմալ), ինչպես կսպասեիք: Այս թվացյալ փոքր տարբերությունը կարող է հանգեցնել I/O ինտենսիվ գործառնությունների կատարողականության զանգվածային կորուստների:
Windows-ի առաջնահերթության մակարդակները մանրամասն ներկայացված են:
| Արժեք | Առաջնահերթություն | Նկարագրություն |
|---|---|---|
| 0 | Իրական ժամանակում | Ամենաբարձր առաջնահերթություն (զգուշություն!) |
| 1 | Բարձր | Բարձր առաջնահերթություն |
| 2-3 | Նորմայից բարձր | Նորմալի մասին |
| 4-6 | Նորմալ | Ստանդարտ ինտերակտիվ գործընթացների համար |
| 7 | Նորմայից ցածր | DEFAULT-ը առաջադրանքների ժամանակացույցում |
| 8-9 | Նորմայից ցածր | Նույնիսկ ավելի ցածր |
| 10 | Անգործուն | Ամենացածր առաջնահերթությունը |
Առաջադրանքների ժամանակացույցում առաջնահերթության հետ կապված խնդիրը բազմակողմանի է. Երբ դուք արտահանում եք առաջադրանք և նայում XML-ին, հաճախ կգտնեք ոչ Առաջնահերթության կարգավորում։ Այնուհետև Windows-ը լուռ կօգտագործի լռելյայն արժեքը։ 7. Գրաֆիկական ինտերֆեյսը (GUI) ցուցադրում է այս արժեքը արտահանման ժամանակ, բայց այն հստակորեն չի պահվում առաջադրանքի մեջ։ Ավելի ցածր առաջնահերթությունը ոչ միայն հանգեցնում է պրոցեսորի ժամանակի կրճատման, այլև:
- Սահմանափակված սկավառակի մուտքի/ելքի գործողություններ
- Ցանցի ավելի ցածր առաջնահերթություն
- Ֆայլային համակարգի վատ քեշավորում
- Տվյալների բազայի մուտքի ուշացումներ
Նույնիսկ եթե դուք օգտագործում եք նույն օգտատիրոջը և միացնում եք «Գործարկել ամենաբարձր արտոնություններով» տարբերակը, առաջադրանքը կատարվում է Windows-ի այլ կայանում/աշխատասեղան միջավայրում՝ տարբեր առաջնահերթություններով: Խնդիրը հայտնաբերելու համար կարող եք օգտագործել PowerShell-ը՝ բոլոր առաջադրանքները իրենց իրական առաջնահերթություններով ցուցակագրելու համար::
38b7fa6c77dc344401485cd338ea4128
Գրեթե բոլոր առաջադրանքներս առաջնահերթությամբ էին ընթանում 7. Մենք այժմ հատուկ կերպով շտկում ենք մի քանի առաջադրանքների առաջնահերթությունը միանգամից:
38b7fa6c77dc344401485cd338ea4128
Առաջնահերթությունը սահմանելուց հետո 4 (Սովորաբար) իմ PHP սկրիպտը նորից աշխատեց սպասված 300 վայրկյանում: Եթե դուք առաջադրանքներ եք կազմաձևել որոշակի օգտվողի հաշվի հետ, կարող եք պարզապես մուտքագրել սա 10-րդ տողում հետևյալ կերպ.:
38b7fa6c77dc344401485cd338ea4128