Windows Performance Station - ապահով կերպով օպտիմիզացրեք օպերացիոն համակարգը և արագացրեք ձեր համակարգիչը

Windows-ի փորձարկման գործառույթը կոչվում է «Խաղի ռեժիմ» . Լրագրողի խոսքով՝ նման ռեժիմը, չնայած վերջին հայտարարությանը, ակնհայտորեն ունի ներուժ.

Այսպիսով, որքան գիտենք, այս պահին, Բնահյութ « խաղի ռեժիմ» խաղերի համար համակարգչային ռեսուրսները համապատասխանաբար վերաբաշխելն է՝ վերջիններիս տալով ամենաբարձր առաջնահերթությունը: ՋարեդԵս որոշեցի ստուգել, ​​թե ինչպես է թարմ տեղադրված համակարգը միացված Խաղի ռեժիմ . Փորձարկման համար նա ընտրեց հինգ տարբեր խաղեր, որոնցից յուրաքանչյուրը գործարկեց հինգ անգամ, որպեսզի հետագայում յուրաքանչյուր դեպքից ընտրի միջին պարամետրը:

Թեստի արդյունքներն իրենք բավականին հետաքրքիր էին։

Օրինակ, համակարգի վրա Հիմնական պրոցեսորՆերառված է i7-7700K «Խաղի ռեժիմ» , ի զարմանս լրագրողի, ոչ մի օգուտ չբերեց, ընդհակառակը, միջինը 0-1 տոկոսով նվազեցրեց խաղերի կատարումը։ ՀիթմենԱյնուամենայնիվ, պարզվեց, որ նա ընդհանրապես նման հակավարկանիշի առաջատարն է՝ ցույց տալով կատարողականի անկում միջինում 4 տոկոսով և 10 տոկոսով նվազագույն FPS ցուցանիշների համար:

Առնվազն որոշակի դրական աճ այս դեպքում ցույց տվեց Tom Clancy's The Division(վայրկյանում կադրերի նվազագույն արագության մի փոքր աճ), բայց հակառակ դեպքում, ինչպես արդեն նշվեց, միացումից Խաղի ռեժիմ ամեն ինչ ուղղակի վատացավ:

Պրոցեսորի փոխարինումը երկմիջուկ i3-7350K-ով ավելի ցածր ժամացույցի արագությամբ ցույց տվեց որոշակի պոտենցիալ «Խաղի ռեժիմ» . Այո, ժամը Եզակիության մոխիրըԵվ gta vմիջին և նվազագույն FPS-ն աճել է 1-3 տոկոսով: Մնացած խաղերում կրկին կատարողականի անկում է գրանցվել՝ տատանվում է աննշան ցուցանիշներից (նույն 0-1 տոկոսը) մինչև ավելի ամուր (11-14 տոկոս նույն ցուցանիշի համար): Հիթմեն, ինչը նույնիսկ ավելի վատ է, քան նախորդ թեստում):


Ջարեդորոշեց GTX Ti 1050-ը և R9 Fury-ն միացնել փորձարկմանը՝ սկզբնապես օգտագործվածի փոխարեն GeForce գրաֆիկական քարտեր GTX 1080 FE, բայց պատմությունը կրկնվում է: Փորձը չի հայտնաբերել որևէ լուրջ բարելավում ներառվածի համակցության մեջ «Խաղի ռեժիմ» և i7-7700K և 1050 Ti GPU-ներով համակարգեր: Եվ նույնիսկ ավելի դանդաղ պրոցեսորով, բայց դեռ նույն GTX 1050 Ti-ով, «Խաղի ռեժիմ» չի ապահովել կատարողականի զգալի առավելություններ: Սակայն լրագրողը նշել է, որ տեղ-տեղ կապը Խաղի ռեժիմ թեկուզ մի քիչ, բայց արդարացրեց իրեն, օրինակ՝ նույնի դեպքում Հիթմեն, որտեղ ցուցանիշները թեթևակի, բայց սողոսկեցին։

Ստացված տվյալների հիման վրա ս.թ. Ջարեդեզրակացրել է, որ այս պահին համակարգը հետ թույլ պրոցեսոր, բայց հզոր գրաֆիկական քարտը օգտագործման համար առաջնահերթություն է «Խաղի ռեժիմ» , քանի որ հենց դրա վրա է նկատվում ամենամեծ դրական արդյունքը։

Լրագրողը նաև հիշում է, որ թեստավորումն իրականացվել է «մաքուր» ՕՀ-ի վրա, այսինքն՝ այլ տարբերակների վրա։ օպերացիոն համակարգ, որտեղ ռեսուրսների վերաբաշխման հարցը, օգուտները Խաղի ռեժիմ դա կարող է լինել շատ ավելին: ՋարեդԻ դեպ, նա փորձեց արհեստականորեն բարձրացնել պրոցեսորային միջուկների առաջնահերթությունը խաղերի համար, բայց այն ամենը, ինչ նա ի վերջո հասավ դրանով, FPS մակարդակի կտրուկ նվազումն էր: Դրանից նա եզրակացրեց, որ կա՛մ Windows-ը լռելյայն առաջնահերթություն է անում, կա՛մ «Խաղի ռեժիմ» մինչդեռ ոչ բոլոր ֆունկցիոնալությունը ներգրավված է:

Ջարեդհիշեցնում է, որ Խաղի ռեժիմ ներկայումս ակտիվ մշակման փուլում է, հեղինակներն ամենաշատն են փնտրում արդյունավետ մեթոդներիր աշխատանքի համար, ինչը նշանակում է, որ ի վերջո, հավանաբար, շատ բան կփոխվի։ Առայժմ օգտագործումը «Խաղի ռեժիմ» թվում է, որ առավել արդարացված է ժառանգական կոնֆիգուրացիաներում: Հատկապես եթե հենց խաղի ժամանակ Կենտրոն windows թարմացումներ կորոշի, որ այժմ լավագույն ժամանակն է համակարգը թարմացնելու համար:

Հաճախ համակարգիչներ օգտագործելիս մարդիկ կարծում են, որ օպերացիոն համակարգը ապրիորի ավելի խելացի է, քան օգտատերը և չի պահանջում որևէ միջամտություն՝ օպտիմիզացնելու և կատարելագործելու համար: Բայց այս պահին բոլորը կորցնում են այն փաստը, որ ոչ միշտ ծրագրային ալգորիթմները կարող են ճիշտ կանխատեսել օգտատիրոջ պլաններն ու ցանկությունները, և մենք ինքներս ժամանակ առ ժամանակ լիովին անտրամաբանական ենք վարվում՝ բեռնելով սարքերը տարօրինակ առաջադրանքների հաջորդականությամբ: Այնուամենայնիվ, բոլորն ուզում են, որ համակարգիչները հնարավորինս արդյունավետ լինեն և անմիջապես արձագանքեն ցանկացած հրամանի, նույնիսկ եթե երաժշտությունը միացված է մի քանի տասնյակ բրաուզերում: բաց ներդիրները, սկսվեց ծանր արխիվի ապափաթեթավորումը, հետին պլանում կախված է լայնածավալ նախագիծ ունեցող Photoshop-ը, գործարկվում են տասնյակ այլ հավելվածներ։ Դրան գումարեք հարյուրավոր համակարգային գործընթացներ, և համակարգիչը կկանգնի ռեսուրսների ճիշտ բաշխման դժվարին խնդրի առաջ, և այնպես, որ որևէ մեկին անցնելիս գործարկվող հավելվածներուշացումը նվազագույն էր, և բոլոր ֆոնային գործընթացները չզրկվեցին հաշվողական հզորության ուշադրությունից:


Խնդիրը սրվում է նրանով, որ համակարգչային օպերացիոն համակարգը նախագծված է հնարավորինս բազմակողմանի և նախատեսված առավելագույնի համար տարբեր առաջադրանքներ, որը ստիպում է փոխզիջումների գնալ կատարողականի առումով՝ համեմատած նեղ ուշադրության կենտրոնում գտնվող մասնագիտացված օպերացիոն համակարգերի հետ: Զարմանալի չէ, որ մշակողները ծրագրային ապահովումՀետաքրքրված է օպտիմալացման և բարելավման մեջ Windows-ը աշխատում է. Քանի որ նրանք հենվում են օպերացիոն համակարգի որոշակի հատվածի վրա, հաճախ հաջողվում է ավելի լավ արդյունքների հասնել, քան Microsoft-ի մասնագետները։ Պատճառը կայանում է նրանում, որ երրորդ կողմի ծրագրավորողները կարող են ունենալ նոր հեռանկար և ստեղծագործ մոտեցում խնդիրների լուծմանը, նրանց պետք չէ ժամանակ ծախսել կորպորատիվ բյուրոկրատիայի վրա կամ ժամանակ ծախսել այլ սովորական խնդիրների վրա: Նրանք իրենց նպատակ են դրել ստիպել օպերացիոն համակարգն ավելի լավ աշխատել և առավելագույն ջանքեր գործադրել դրա համար:


Windows 7-ի, Windows 8-ի և Windows 10-ի աշխատանքը բարելավելու համար մենք առաջարկում ենք Windows Performance Station-ի նոր ծրագիրը, որը հավասարապես հարմար է անփորձ օգտվողների և մասնագետների համար: Առաջինը կգնահատի առանց կարգավորումների ավտոմատ աշխատանքը, օգտագործման հեշտությունը և համակարգչում վտանգավոր միջամտության բացակայությունը: Երկրորդին դուր կգա կոմունալ ծառայության պարամետրերը ինքնուրույն փոխելու հնարավորությունը և սերվերների վրա տեղակայման հեշտությունը: Windows Performance Station կոմունալը հասանելի է երեք տարբերակով՝ CORE, PRO և SERVER: Առաջինն ունի լիարժեք ֆունկցիոնալություն, բայց ամբողջովին աշխատում է ավտոմատ ռեժիմում առանց պարամետրերի, երկրորդը թույլ է տալիս ձեռքով փոխել համակարգչային օպտիմալացման կարգավորումները, երրորդը բաղկացած է մեկ գործարկվող ֆայլից, որը չի պահանջում տեղադրում և ստեղծվել է որպես ներկառուցված ուղեկից: Windows Serverկատարողականի մոնիտորինգի գործիքներ:

Անկախ հավելվածի ընտրված տարբերակից՝ հիմնական գործառույթները Windows կոմունալ ծառայություններԿատարման կայանները նույնական են լինելու.

– Հավելվածի կատարման ավտոմատ առաջնահերթություն

– Հավելվածին հասանելի միջուկների ավտոմատ բաշխում

- RAM-ի և paging ֆայլի ավտոմատ կառավարում

– Սկավառակի ընթերցման/գրելու առաջնահերթությունների ավտոմատ կառավարում

– Ծառայությունների գործարկման նպատակի որոշում, որին հաջորդում է բաշխումն ըստ կատարման առաջնահերթության

– Օգտագործված գրադարանների (մոդուլների) սահմանում՝ առաջադրանքների առաջնահերթությունների ավտոմատ դասակարգմամբ

- Խնայեք էներգիա, երբ աշխատում եք նոութբուքերի և պլանշետների մարտկոցով

Մեկ այլ կարևոր նրբերանգ- հետ աշխատանքի անվտանգությունը Windows կոմունալկատարողական կայան. Այս հավելվածներից շատերը արմատապես խանգարում են օպերացիոն համակարգի աշխատանքին, ընդհուպ մինչև բաղադրիչները փոխելն ու հեռացնելը, կամ օգտագործում են սարքաշարի ապարատային օվերկլոկավորում, ինչը սխալ կազմաձևման դեպքում կարող է հանգեցնել համակարգչի խափանումների: Ահա թե ինչու, ունենալով վատ փորձ օպտիմիզատոր հավելվածների հետ, անփորձ օգտվողներփորձեք խուսափել դրանցից ապագայում: Այնուամենայնիվ windows հավելված Performance Station-ը կառուցված է՝ հաշվի առնելով անվտանգության հիմնական հատկանիշները: Կոմունալը չի ​​օգտագործում ցանցի բաղադրիչներ և տվյալների փոխանցման այլ մեխանիզմներ: Մշակողները հույսը դրել են միայն Windows-ի հիմնական API-ի վրա՝ առանց փոխելու համակարգի ֆայլեր. Բացի այդ, Windows Performance Station-ը ուղղակիորեն չի մուտք գործում սարքավորում և չի օվերքլոկում: Սա թույլ է տալիս հեշտությամբ տեղադրել և հեռացնել հավելվածը՝ չազդելով Windows-ի և երրորդ կողմի դիմումները. Կոմունալ ծառայության աշխատանքը կապված է միայն հավելվածների կատարման առաջնահերթությունների բաշխման հետ, ինչը թույլ է տալիս նկատելի աճ համակարգչի հետ ամենօրյա աշխատանքում, բայց ոչ մի դեպքում չի վնասի օպերացիոն համակարգը և այլ հավելվածները:

Անվճար փորձաշրջանը հասանելի է կոմունալ ծրագրի ցանկացած տարբերակ տեղադրելուց և գործարկելուց հետո 60 րոպե: Լիցենզիայի արժեքը հրապարակման պահին 99 ռուբլի է, ներառյալ զեղչը:

Դիտվել է՝ 1033

Բարև սիրելի ընթերցողներ: Այսպիսով, ես հասա Habr-ին և ուզում եմ այստեղ պատմել իմ նախագծի պատմությունը: Ավելի շուտ պետք է նկարագրել իմ սեփական փորձի և աշխատանքի շատ ասպեկտներ ընդհանուր պայմաններորպեսզի չվիրավորեն խնդրո առարկա կազմակերպությունների առևտրային գաղտնիքները։

Այսպիսով, այս պատմությունըսկսել է 2013 թվականին, այն ժամանակ աշխատում էի փոշիներ և շամպուններ արտադրող խոշոր միջազգային կազմակերպությունում։ Իմ պաշտոնը համակարգային ադմինիստրատոր էր, բայց, ինչպես հաճախ է պատահում, իրականում ես «դու ծրագրավորող» էի։ Աշխատանքի էությունը որոշների պահպանումն էր EDMS համակարգեր, VBA-ում տարբեր մակրոներ գրելը, տարբեր պարզ համակարգերի ավտոմատացման կամ ինտեգրման կոմունալ ծառայություններ և այլն։

Եվ հենց միևնույն ժամանակ ես լուծում էի կազմակերպության ամենահրատապ խնդիրներից մեկը, այն է՝ բազմաթիվ աշխատակիցների նոր նոթբուքերի վրա տարբեր ծրագրերի անբավարար աշխատանքը։ Փաստորեն, ես ստիպված էի բախվել մի խնդրի հետ, որն ունեն շատ խոշոր ընկերությունների համակարգային ադմինիստրատորներ՝ անձնակազմի համակարգիչների վրա, բացի իրենց սիրելի MS Office-ից, SAP-ից, 1C-ից և այլն, կար «mcafee»-ն, որը ոչ պակաս սիրելի էր բոլոր ՏՏ-ի կողմից: մասնագետներ», punto switcher», «փոստի արբանյակ» և ինչ ոչ: Այստեղ արժե հստակեցնել, որ այս ընկերությունըայնուհետև խթանեց լիբերալ վերաբերմունքը աշխատակիցների համակարգիչների նկատմամբ և, փաստորեն, ծնեց BYOD-ը:

Քանի որ բողոքներ կային կատարողականի վերաբերյալ, ներառյալ. և ես սկսեցի փնտրել կատարողականի կարգավորող հավելվածներ, ինչպիսին է Process Lasso-ն: Իմ ընտրությունն այնուհետև ընկավ «Bill2`s Process Manager»-ի վրա: Այն ժամանակ ես գտա շատ այլընտրանքներ, բայց դրանք բոլորն ունեին ահավոր ծանրաբեռնված ինտերֆեյս և ավելի շատ ռեսուրսներ էին ուտում իրենց աշխատանքի համար, քան կարելի էր ազատել օպտիմալացման միջոցով:


Այն ժամանակ հայտնաբերված «Bill2`s Process Manager»-ը շատ առավելություններ ուներ համակարգային գործիքների նկատմամբ, քանի որ բավականին հեշտ էր կառավարելը և կարգավորելը: Փաստորեն, դա թույլ տվեց ձեզ անել նույն բանը, ինչ կարող է անել առաջադրանքների կառավարիչը, այն է՝ սահմանել հիմնական առաջնահերթությունը և հիմնական դիմակը հավելվածների համար, բայց, ի տարբերություն մենեջերի, այն հնարավորություն է տվել պահպանել այս կարգավորումները վերաբեռնումից և տարբերվող հավելվածներից հետո։ որոնք ցուցադրվում են աշխատասեղանի պատուհաններում, աշխատասեղան կամ հետին պլանում գտնվող աշխատանք:

Այս հավելվածի շնորհիվ ինձ հաջողվեց լուծել ամենահրատապ խնդիրներից մեկը՝ համակարգչին բացատրել, թե ինչ հավելվածներով եմ աշխատում հիմա, և որն է ինձ համար ավելի կարևոր՝ EXCEL-ը կամ թարմացումների ֆոնային տեղադրումը։

Բայց, չնայած այն հանգամանքին, որ ինձ համար այս հավելվածը լուծեց հիմնական խնդիրը, այն ուներ բազմաթիվ թերություններ.

  • Կազմաձևի շարունակականության բացակայություն, անհնար էր պարզապես հավելվածը մեկ համակարգչից մյուսը պատճենել նմանատիպ կոնֆիգուրացիայով, անհրաժեշտ էր այն նորից կարգավորել: Այս խնդիրը մասամբ լուծվեց՝ հարմարեցված հավելվածը Դյուրակիր գործարկիչի մեջ փաթեթավորելով: (Միգուցե ինչ-որ կերպ հնարավոր էր պարամետրերը հանել ռեեստրից, բայց այն ժամանակ ես դա չհասկացա):

  • RAM-ի կառավարման բացակայություն, մասնավորապես սեղմում պատահական մուտքի հիշողություն. Շատ թվիքերներ ունեն, այսպես կոչված, «հիշողության դեֆրագմենտացիա», որն ըստ էության անհեթեթություն է, քանի որ. RAM-ի դեֆրագրումը կատարողականի առումով լրիվ անիմաստ է: Ինձ անհրաժեշտ էր մաքրել այն տվյալները, որոնք կախված են RAM-ում և չեն ընկնում SWAP-ի մեջ, որպեսզի RAM-ի կտրուկ ծանրաբեռնվածությամբ այն արդեն անվճար լինի, և ՕՀ-ն չփորձի կռահել, թե ինչ է ձեզ անհրաժեշտ RAM-ում և ինչ ոչ: Ի դեպ, մեկ տարի անց այս գործառույթը պարբերաբար հայտնվում էր Windows 10-ում, բայց այնտեղ այն արխիվացվում է RAM-ի ներսում, ինչը նույնպես, ըստ էության, այնքան էլ չի լուծում խնդիրը:

  • I/O առաջնահերթության կառավարման բացակայությունը HDD(կամ SSD): Պարբերաբար Windows-ն ունի այս հնարավորությունը Vista-ից ի վեր, սակայն այն սկսել է ակտիվորեն օգտագործել միայն Win10-ում:

  • «Ֆոկուս» հավելվածի սահմանման բացակայությունը, քանի որ windowing-ը ամեն ինչ չէ, եթե ես աշխատում եմ մի տասնյակ հավելվածների հետ, որոնցից մեկում ինչ-որ բան կոմպիլացված է, իսկ մյուսում դիտում եմ YouTube-ը, ապա չեմ ուզում, որ YouTube-ը ուշանա, եթե պատուհանի կենտրոնացումը դրա վրա է, այլ ոչ թե մյուսի վրա: պատուհաններ.

  • Նոր տեղադրված ծրագրերի վրա կանոնն անմիջապես կիրառելու համար հավելվածներով թղթապանակ նշելու անկարողություն:
  • Իրականում, ուսումնասիրելով Windows OS-ի ճարտարապետությունը, ես անընդհատ գտնում էի շատ հիանալի մեխանիզմներ, որոնք թույլ են տալիս կատարելագործել համակարգում կատարողականությունը՝ ենթարկվելով մեկ «ԲԱՅՑ»: ԲԱՅՑ, եթե ծրագրավորողները, ովքեր գրում են իրենց ծրագրաշարը, օպերացիոն համակարգին ասեն, թե ինչ է անում իրենց ծրագրաշարը, ինչի համար է այն նախատեսված (խաղեր, ֆիլմեր և այլն) և ինչ առաջնահերթությամբ այն պետք է կիրառվի պրոցեսորի / RAM / HDD-ի վրա:

    http://s17.postimg.org/v95vgn1m7/2015_09_07_21_47_23.png?noredir=1

    Կյանքում պարզվում է, որ ծրագրաշարի միայն մի փոքր մասն է գրված՝ հաշվի առնելով Windows ծրագրային ապահովման ճարտարապետությունը, արտադրողների մեծ մասը, ներառյալ: շատ լուրջ ու մեծ, գրում են ծրագրակազմ՝ առանց էս պարամետրերը նշելու ու ՕՀ-ն օգտագործում է ամեն ինչ լռելյայն։

    Եվ սա էլ չենք խոսում այն ​​ծառայությունների մասին, որոնք բոլորովին անամոթաբար խժռում են ցանկացած հասանելի ռեսուրս, հենց որ իրադարձությունն իրագործվի (օրինակ՝ թարմացումների ներբեռնում և տեղադրում): Նրանք, ովքեր ցանկանում են ստուգել իրավիճակը իրենց ԱՀ-ում, կարող են բացել առաջադրանքների կառավարիչը և գործընթացի ներդիրում ցուցադրել «բազային առաջնահերթություն» սյունակը:

    MMCSS-ը մի փոքր շտկում է այս իրավիճակը, բայց այն չափազանց մեղմ է ազդում գործընթացների վրա՝ գրեթե առանց դրանց իրական աշխատանքի վրա ազդելու:


    Windows-ի բազմաբնույթ առաջադրանքների հետ կապված ամենից զայրացնող բանը, որն ինձ անընդհատ հետապնդում էր, երաժշտություն լսելն էր ռեսուրսներ պահանջող գործողությունների ժամանակ: Որովհետեւ Մինչ ես աշխատում էի, ես երաժշտություն էի լսում Chrome-ի միջոցով և գործարկում էի Excel-ում մեծ աղյուսակների հաշվարկները, ձայնը յուրահատկություն ուներ կախվելու հենց այն պահին, երբ պրոցեսորը լրիվ բեռնված էր կամ անընդհատ սուլում էր այս բեռի ցանկացած ցատկում: Այս իրավիճակը գրեթե ամբողջությամբ լուծվեց՝ օգտագործելով «Bill2`s Process Manager»-ը, բայց այն պետք է ձեռքով կարգաբերվեր Chrome-ին, որպեսզի չմռնչա, և պարզվեց, որ քրոմը միշտ առաջնահերթություն էր, նույնիսկ երբ երաժշտության կարիքը չկար, որն այլեւս չէր բզզում։

    Այստեղ արժե պարզաբանել, որ համակարգիչները նույնիսկ այն ժամանակ նոութբուքերի չափանիշներով բավականին հզոր էին օգտագործվում։ Այն ժամանակ դա Core i5 2430m / 8GB Ram / 256GB SSD էր:

    Միևնույն ժամանակ, BYOD-ը, որն այն ժամանակ առաջանում էր ընկերությունում, ենթադրում էր, որ աշխատողներն իրենց աշխատանքային նոութբուքերով կարող են աշխատել ամենուր, ներառյալ. տնից և, միևնույն ժամանակ, օգտագործել աշխատող ԱՀ որպես տնային համակարգիչ ֆիլմեր, խաղեր և այլն դիտելու համար:


    Այս բոլոր գործոններն ի վերջո ինձ հանգեցրին գրելու գաղափարին սեփական դիմում, որը կկլանի առկա այլընտրանքներից ամենալավը և կվերացնի դրանց թերությունները, միաժամանակ լինելով ոչ միայն որպես առաջադրանքների կառավարիչ ստեղծման ինտերֆեյս, այլ ամբողջությամբ ավտոմատ համակարգկատարողականությունը հարմարեցնել առաջադրանքին: Հիմնականում ես պատրաստվում էի իմ համակարգչի վրա ստեղծել կատարյալ BYOD շրջանակ, որը կարող էի գործարկել՝ առանց Steam-ի, iTunes-ի կամ նմանների դանդաղեցման: և խաղալ, դիտել ֆիլմեր՝ առանց կորպորատիվ ծրագրերի, հակավիրուսների և այլնի ազդեցության։

    Այս խնդիրը լուծելու համար ինձ անհրաժեշտ էր ներգրավել իմ մի քանի ընկերների, ովքեր նույնպես աշխատում էին ՏՏ ոլորտում: Նախնական միտքը մեր հարմարության համար հավելված պատրաստելն ու ՕՀ-ի և տարբեր հավելվածների աշխատանքի վերաբերյալ մեր սեփական գիտելիքներն ընդլայնելն էր:


    Դա փոքր խնդիր էր, սկզբում մենք գրել էինք Bill2`s Process Manager-ի պարզ այլընտրանք, բայց առանց կոնֆիգուրացիայի ինտերֆեյսի, որպեսզի հավելվածն աշխատի նախապես կազմաձևված կոնֆիգուրացիայով։ Հիմնական հնարքն էր որոշել, թե որ պատուհաններն են մաքսիմալացված, որ գործընթացներն են աշխատում հետին պլանում և որ հավելվածն է ուշադրության կենտրոնում: Մենք նաև անմիջապես ավելացրինք ոչ միայն գործընթացին, այլ կոնկրետ թղթապանակից բոլոր գործընթացներին առաջնահերթություն տալու տարբերակը: Գրել այս հավելվածըայն բավականին պարզ էր և առկա փորձի շնորհիվ անմիջապես պարզվեց, որ կանխում է հիշողության արտահոսքը, կարգավորիչի արտահոսքը, վթարը և այլ սխալները: հավելվածը պետք է աշխատի հետին պլանում երկար ժամանակառանց վերագործարկման: Որպեսզի հավելվածը թեթև լինի և արդյունավետ աշխատի, մենք օգտագործեցինք միայն ստանդարտ ՕՀ և WinAPI գործառույթները: Հենց սկզբում մենք նույնիսկ կարողանում էինք առանց ինտերֆեյսի։
    Հաջորդ քայլը տեղական ուսուցման ալգորիթմ գրելն էր, որը կորոշի հավելվածի նպատակը՝ ելնելով մուտքային պարամետրերից: Որպես հիմք ընդունվել է շեմային փոխանցման ֆունկցիայի վրա հիմնված նեյրոններով նեյրոնային ցանցի մաթեմատիկական մոդելը, սակայն այն ժամանակ հաշվի չեն առնվել այն քաշային գործակիցները, որոնք մենք ավելացրել ենք ավելի ուշ։ Այս նեյրոնային ցանցը սկզբում սովորել է միայն հավելվածի հետ աշխատելու ժամանակի հիմնական պարամետրերի, դրա անվան, կոնֆիգուրացիայի կանոնների և կոշտ սկավառակի վրա գտնվելու վայրի մասին (օրինակ, եթե բազմաթիվ հավելվածներ անընդհատ օգտագործվում են և չեն աշխատում ֆոն, դրանք գտնվում են նույն արմատային թղթապանակում, ինչպիսին է «C: / Games / », ապա, ամենայն հավանականությամբ, այս թղթապանակից գործարկված բոլոր հետագա հավելվածները ակտիվորեն կօգտագործվեն, և կարիք չկա նվազեցնել դրանց առաջնահերթությունը ֆոնին):

    Այս ալգորիթմը կատարելության հասցնելու համար պահանջվեց գրեթե կես տարի: Հետագայում ավելացել է վերլուծության համար մուտքային պարամետրերի քանակը, և ընտրվել են օպտիմալ կանոններ՝ երրորդ կողմի հավելվածների համար կիրառելու համար:

    Այստեղ արժե պարզաբանել, որ, ի տարբերություն դասական առաջադրանքների կառավարիչների, մենք որոշեցինք չկառավարել առաջնահերթությունները, միջուկները, RAM-ը և I/O-ն առանձին-առանձին, այլ միավորեցինք այս պարամետրերը կանոնների մեջ, որոնք համակցված էին տարբեր համամասնություններով: Օրինակ, հիմնական հավելվածի համար կանոնը = FOREGROUND (բոլոր միջուկները հասանելի են, առաջնահերթությունը միջինից բարձր է, I/O առաջնահերթությունը բարձր է, մենք չենք վերակայում RAM-ը SWAP-ում):


    Հետագայում ուսուցման ալգորիթմին ավելացվեցին պատուհանի դիրքի պարամետրերը (արդյոք հավելվածն ունի ցուցադրվող պատուհան, այն նվազագույնի է հասցված, թե առավելագույնի հասցված: Եթե այն ընդլայնվում է ամբողջ էկրանով և ֆոկուսում, ապա դուք պետք է ավելի շատ ուշադրություն դարձնեք այս գործընթացին, քան ֆոնային և այլն):

    Ծառայության սահմանումը ավելացվել է, քանի որ Նույն անունով svchost.exe ծառայության գործընթացները կատարում են բոլորովին այլ առաջադրանքներ:

    Թերևս ամենադժվարը հավելվածին սովորեցնելն էր տարբերակել նույն գործընթացները տարբեր նպատակների համար: Օրինակ, շատ բրաուզերներ աշխատում են յուրաքանչյուրի համար առանձին ներդիրառանձին պրոցես (Chrome, Firefox, Yandex, Opera և այլն), իսկ ձայնն ու վիդեոն նվագարկվում են հյուրընկալող պրոցեսներով, հետևաբար, քրոմի 20 պրոցեսներից, երբ այն ուշադրության կենտրոնում չէ, պետք է մեծացնել այն գործընթացները, որոնք ձայն են նվագում: . Նույնը վերաբերում է ցանկացած այլ գործընթացի, որը կարող է գործարկվել հետին պլանում:

    Որպեսզի կոնֆիգուրացիայի մեջ չնշանակվեն աշխարհին հայտնի բոլոր գործընթացները, ի վերջո, հավելվածը սովորեց որոշել ոչ միայն, թե որքան հաճախ է օգտվողը աշխատում գործընթացի հետ, այլև գործընթացի իրական նպատակը և դրա կարևորությունը աշխատանքի համար:

    Այսպիսով, հավելվածը սովորել է բեռը բաշխել համակարգչի առանցքային հանգույցների վրա՝ կախված նրանից, թե ինչի հետ է ներկայումս աշխատում օգտատերը: Ավելին, յուրաքանչյուր ԱՀ-ի համար բեռը բաշխվում է անհատապես՝ կախված ցանկացած հավելվածի օգտագործման սցենարից, այսինքն. արդյո՞ք այն օգտագործվում է պատուհանում, արդյո՞ք այն նվագարկում է տեսանյութ / ձայն / 3d, որքանով է օգտվողը մուտք գործում այս հավելվածին և որ թղթապանակում է գտնվում այս հավելվածը:

    Հավելվածը պարզվեց և ունիվերսալ, տեղադրումը տեղի է ունենում մի քանի կտտոցով, և շահագործման համար ոչ մի կարգավորում չի պահանջվում, ամեն ինչ ինքնաբերաբար հարմարվում է:

    Այս ամբողջ տրամաբանությունը չէր կարող գոյություն ունենալ առանց համակարգի հետ սերտ ինտեգրման, հետևաբար, բոլոր մեխանիզմներն իրականացնելու համար մենք պետք է առավելագույնս օգտագործեինք Windows API գործառույթները։ Սա թույլ տվեց նվազագույն ծախսերնախագծման հզորություն՝ հասնելու խորը միջուկի գործառույթներին և առավելագույն համատեղելիությունը x86-64 պրոցեսորով ցանկացած ԱՀ-ի հետ:

    Կարևոր էր նաև հաշվի առնել այն համակարգչի տեսակը, որի հետ օգտատերը աշխատում է: Օրինակ, երբ աշխատում է մարտկոցի էներգիայով, պրոցեսորի միջուկների հետ աշխատելու մի փոքր այլ ալգորիթմներ են օգտագործվում՝ բեռը նվազեցնելու և մարտկոցը խնայելու համար: Ավելացվել են էներգիայի կառավարման ընտրանքներ, որպեսզի չկարողանաք անջատել ձեր նոութբուքը կամ պլանշետը, բայց, անջատելով էկրանը, շարունակեք երաժշտություն լսել կամ ներբեռնել/պատճենել/արխիվացնել ֆայլերը էներգիայի սպառման մոտ քնի ռեժիմի մոտ:

    Կարևոր էր նաև իմանալ, թե ինչպես կարելի է որոշել, թե ինչպես է պրոցեսորը աշխատում բազմաթելերով և ինչպես է այն բաշխում բեռը միջուկների վրա:

    Այս բոլոր ալգորիթմները միասին օգնեցին ստեղծել իսկապես ունիվերսալ լուծում, որը չի կարող կարգավորել կամ օվերքլաքինգ և չի սահմանափակում ՕՀ-ի և այլ ծրագրերի ֆունկցիոնալությունը: Ըստ էության, հավելվածը համակարգչին սովորեցնում է հասկանալ օգտվողների հարցումները և կառավարել հիմնական հանգույցների բեռը այնպես, ինչպես փորձառու ադմինիստրատորը կանի յուրաքանչյուր կոնկրետ առաջադրանքի համար:


    Ժամանակի ընթացքում այս նախագծի աշխատանքներին միացան իմ մյուս ընկերները, ովքեր օգնեցին զբաղվել դիզայնով, կայքի, VK խմբի և այլնի հետ: հարցեր.

    կանխատեսելով տարբեր խորհուրդներգուրուից ուզում եմ անմիջապես նշել, որ ՏՏ ոլորտում իմ ընդհանուր փորձն այս պահին 8 տարի է։ Այս հավելվածի վրա աշխատելիս ես հանդիպեցի բազմաթիվ հակասական տեղեկությունների ՕՀ-ի և համակարգչի որոշ բաղադրիչների վերաբերյալ, այնպես որ ես չեմ զարմանա, որ ինչ-որ մեկը կարող է չհամաձայնվել նկարագրված որոշ մոտեցումների հետ, բայց վերջնական փորձարկումը ցույց տվեց արդյունավետությունը: այս լուծումներից։

    Նույնիսկ իմ գործընկերների մասնագիտական ​​ոլորտում շատերը լիովին չեն հասկանում պրոցեսորի խճճվածությունը՝ բազմաթելային, բազմաֆունկցիոնալ և բազմամիջուկ: Տեղեկություններ ոմանց մասին համակարգի գործառույթները Windows-ը պետք է գտնվեր ինտերնետի ամենահեռավոր մասերում: Ամենադժվարը, թերեւս, աշխատանքային (!) միջոց գտնելն էր երրորդ կողմի հավելվածների համար I/O բարձր առաջնահերթություն սահմանելու համար:

    Նկարագրված մեխանիզմը գնդաձև ալգորիթմ չէ վակուումում և հաջողությամբ աշխատում է իրական մեքենաներ. Այն դեպքերում, երբ իրականում օգտագործվում է բազմաբնույթ առաջադրանքները, կատարողականի աճը կարող է լինել մինչև 50%:


    Հավելվածի վրա աշխատելու վերջին հպումը Windows OS-ի համար «կոդի ստորագրման» վկայագրի ստորագրումն էր:

    Շատ շնորհակալություն բոլոր նրանց, ովքեր դա արել են տրված տեքստըվերջ տալ։

    P.S.Ներողություն եմ խնդրում որոշ շփոթության համար, փորձեցի տեղադրել միայն ամենակարևոր տեղեկությունը, որպեսզի տեքստը շատ չմեծանա։

    Մենք տարածում ենք հավելվածը Freemium սխեմայի համաձայն, որպեսզի ցանկացած օգտվող կարողանա օգտագործել ամենահիմնական գործառույթները, բայց մենք շատ ուրախ կլինենք, եթե Habr համայնքը աջակցի մեզ, որպեսզի մեր նախագիծը կարողանա հետագայում զարգանալ:

    Մենք ունենք շատ ավելի շատ գաղափարներ՝ բարելավելու մեր հավելվածի ֆունկցիոնալությունն ու կատարումը՝ այն էլ ավելի լավը և արդյունավետ դարձնելու համար:

    Ես անկեղծորեն հուսով եմ, որ մեր ջանքերը կօգնեն հեշտացնել համակարգչի հետ աշխատանքը շատ օգտատերերի համար, ովքեր չունեն հատուկ հմտություններ՝ կարգավորելու իրենց ԱՀ, և թույլ կտան փորձառու մասնագետներին ազատվել արագության և ֆունկցիոնալության միջև մշտական ​​ընտրությունից:

    Ես ուրախ կլինեմ ավելի մանրամասն խոսել հավելվածի տարբեր ասպեկտների մասին առանձին, եթե այս հոդվածը հետաքրքիր լինի:

    Բարև սիրելի ընթերցողներ: Այսպիսով, ես հասա Habr-ին և ուզում եմ այստեղ պատմել իմ նախագծի պատմությունը: Իմ սեփական փորձի և աշխատանքի շատ ասպեկտներ պետք է նկարագրվեն բավականին ընդհանուր ձևով, որպեսզի չվիրավորեն տվյալ կազմակերպությունների առևտրային գաղտնիքները:

    Եվ հենց միևնույն ժամանակ ես լուծում էի կազմակերպության ամենահրատապ խնդիրներից մեկը, այն է՝ բազմաթիվ աշխատակիցների նոր նոթբուքերի վրա տարբեր ծրագրերի անբավարար աշխատանքը։ Փաստորեն, ես ստիպված էի հանդիպել մի խնդրի, որին բախվում են խոշոր ընկերությունների շատ համակարգային ադմինիստրատորներ՝ անձնակազմի համակարգիչներում, բացի իրենց սիրելի MS Office-ից, SAP-ից, 1C-ից և այլն, բոլոր ՏՏ մասնագետների կողմից ոչ պակաս սիրելի «mcafee»-ն էր: , «punto switcher», «փոստի արբանյակ» և ինչ ոչ: Այստեղ հարկ է պարզաբանել, որ այս ընկերությունը այնուհետ խթանեց ազատական ​​վերաբերմունքը աշխատակիցների համակարգիչների նկատմամբ և, փաստորեն, առաջացրեց BYOD-ը։

    Քանի որ բողոքներ կային կատարողականի վերաբերյալ, ներառյալ. և ես սկսեցի փնտրել կատարողականի կարգավորող հավելվածներ, ինչպիսին է Process Lasso-ն: Իմ ընտրությունն այնուհետև ընկավ «Bill2`s Process Manager»-ի վրա: Այն ժամանակ ես գտա շատ այլընտրանքներ, բայց դրանք բոլորն ունեին ահավոր ծանրաբեռնված ինտերֆեյս և ավելի շատ ռեսուրսներ էին ուտում իրենց աշխատանքի համար, քան կարելի էր ազատել օպտիմալացման միջոցով:


    Այն ժամանակ հայտնաբերված «Bill2`s Process Manager»-ը շատ առավելություններ ուներ համակարգային գործիքների նկատմամբ, քանի որ բավականին հեշտ էր կառավարելը և կարգավորելը: Փաստորեն, դա թույլ տվեց ձեզ անել նույն բանը, ինչ կարող է անել առաջադրանքների կառավարիչը, այն է՝ սահմանել հիմնական առաջնահերթությունը և հիմնական դիմակը հավելվածների համար, բայց, ի տարբերություն մենեջերի, այն հնարավորություն է տվել պահպանել այս կարգավորումները վերաբեռնումից և տարբերվող հավելվածներից հետո։ որոնք ցուցադրվում են աշխատասեղանի պատուհաններում, աշխատասեղան կամ հետին պլանում գտնվող աշխատանք:

    Այս հավելվածի շնորհիվ ինձ հաջողվեց լուծել ամենահրատապ խնդիրներից մեկը՝ համակարգչին բացատրել, թե ինչ հավելվածներով եմ աշխատում հիմա, և որն է ինձ համար ավելի կարևոր՝ EXCEL-ը կամ թարմացումների ֆոնային տեղադրումը։

    Բայց, չնայած այն հանգամանքին, որ ինձ համար այս հավելվածը լուծեց հիմնական խնդիրը, այն ուներ բազմաթիվ թերություններ.

    1. Կազմաձևի շարունակականության բացակայություն, անհնար էր պարզապես հավելվածը մեկ համակարգչից մյուսը պատճենել նմանատիպ կոնֆիգուրացիայով, անհրաժեշտ էր այն նորից կարգավորել: Այս խնդիրը մասամբ լուծվեց՝ հարմարեցված հավելվածը Դյուրակիր գործարկիչի մեջ փաթեթավորելով: (Միգուցե ինչ-որ կերպ հնարավոր էր պարամետրերը հանել ռեեստրից, բայց այն ժամանակ ես դա չհասկացա):
    2. RAM-ի կառավարման բացակայություն, մասնավորապես՝ RAM-ի սեղմում: Շատ թվիքերներ ունեն, այսպես կոչված, «հիշողության դեֆրագմենտացիա», որն ըստ էության անհեթեթություն է, քանի որ. RAM-ի դեֆրագրումը կատարողականի առումով լրիվ անիմաստ է: Ինձ անհրաժեշտ էր մաքրել այն տվյալները, որոնք կախված են RAM-ում և չեն ընկնում SWAP-ի մեջ, որպեսզի RAM-ի կտրուկ ծանրաբեռնվածությամբ այն արդեն անվճար լինի, և ՕՀ-ն չփորձի կռահել, թե ինչ է ձեզ անհրաժեշտ RAM-ում և ինչ ոչ: Ի դեպ, մեկ տարի անց այս գործառույթը պարբերաբար հայտնվում էր Windows 10-ում, բայց այնտեղ այն արխիվացվում է RAM-ի ներսում, ինչը նույնպես, ըստ էության, այնքան էլ չի լուծում խնդիրը:
    3. Կոշտ սկավառակի վրա (կամ SSD) I/O առաջնահերթ կառավարման բացակայություն: Պարբերաբար Windows-ն ունի այս հնարավորությունը Vista-ից ի վեր, սակայն այն սկսել է ակտիվորեն օգտագործել միայն Win10-ում:
    4. «Ֆոկուս» հավելվածի սահմանման բացակայությունը, քանի որ windowing-ը ամեն ինչ չէ, եթե ես աշխատում եմ մի տասնյակ հավելվածների հետ, որոնցից մեկում ինչ-որ բան կոմպիլացված է, իսկ մյուսում դիտում եմ YouTube-ը, ապա չեմ ուզում, որ YouTube-ը ուշանա, եթե պատուհանի կենտրոնացումը դրա վրա է, այլ ոչ թե մյուսի վրա: պատուհաններ.
    5. Նոր տեղադրված ծրագրերի վրա կանոնն անմիջապես կիրառելու համար հավելվածներով թղթապանակ նշելու անկարողություն:
    Իրականում, ուսումնասիրելով Windows OS-ի ճարտարապետությունը, ես անընդհատ գտնում էի շատ հիանալի մեխանիզմներ, որոնք թույլ են տալիս կատարելագործել համակարգում կատարողականությունը՝ ենթարկվելով մեկ «ԲԱՅՑ»: ԲԱՅՑ, եթե ծրագրավորողները, ովքեր գրում են իրենց ծրագրաշարը, օպերացիոն համակարգին ասեն, թե ինչ է անում իրենց ծրագրաշարը, ինչի համար է այն նախատեսված (խաղեր, ֆիլմեր և այլն) և ինչ առաջնահերթությամբ այն պետք է կիրառվի պրոցեսորի / RAM / HDD-ի վրա:

    Կյանքում պարզվում է, որ ծրագրաշարի միայն մի փոքր մասն է գրված՝ հաշվի առնելով Windows ծրագրային ապահովման ճարտարապետությունը, արտադրողների մեծ մասը, ներառյալ: շատ լուրջ ու մեծ, գրում են ծրագրակազմ՝ առանց էս պարամետրերը նշելու ու ՕՀ-ն օգտագործում է ամեն ինչ լռելյայն։

    Եվ սա էլ չենք խոսում այն ​​ծառայությունների մասին, որոնք բոլորովին անամոթաբար խժռում են ցանկացած հասանելի ռեսուրս, հենց որ իրադարձությունն իրագործվի (օրինակ՝ թարմացումների ներբեռնում և տեղադրում): Նրանք, ովքեր ցանկանում են ստուգել իրավիճակը իրենց ԱՀ-ում, կարող են բացել առաջադրանքների կառավարիչը և գործընթացի ներդիրում ցուցադրել «բազային առաջնահերթություն» սյունակը:

    MMCSS-ը մի փոքր շտկում է այս իրավիճակը, բայց այն չափազանց մեղմ է ազդում գործընթացների վրա՝ գրեթե առանց դրանց իրական աշխատանքի վրա ազդելու:


    Windows-ի բազմաբնույթ առաջադրանքների հետ կապված ամենից զայրացնող բանը, որն ինձ անընդհատ հետապնդում էր, երաժշտություն լսելն էր ռեսուրսներ պահանջող գործողությունների ժամանակ: Որովհետեւ Մինչ ես աշխատում էի, ես երաժշտություն էի լսում Chrome-ի միջոցով և գործարկում էի Excel-ում մեծ աղյուսակների հաշվարկները, ձայնը յուրահատկություն ուներ կախվելու հենց այն պահին, երբ պրոցեսորը լրիվ բեռնված էր կամ անընդհատ սուլում էր այս բեռի ցանկացած ցատկում: Այս իրավիճակը գրեթե ամբողջությամբ լուծվեց՝ օգտագործելով «Bill2`s Process Manager»-ը, բայց այն պետք է ձեռքով կարգաբերվեր Chrome-ին, որպեսզի չմռնչա, և պարզվեց, որ քրոմը միշտ առաջնահերթություն էր, նույնիսկ երբ երաժշտության կարիքը չկար, որն այլեւս չէր բզզում։

    Այստեղ արժե պարզաբանել, որ համակարգիչները նույնիսկ այն ժամանակ նոութբուքերի չափանիշներով բավականին հզոր էին օգտագործվում։ Այն ժամանակ դա Core i5 2430m / 8GB Ram / 256GB SSD էր:

    Միևնույն ժամանակ, BYOD-ը, որն այն ժամանակ առաջանում էր ընկերությունում, ենթադրում էր, որ աշխատողներն իրենց աշխատանքային նոութբուքերով կարող են աշխատել ամենուր, ներառյալ. տնից և, միևնույն ժամանակ, օգտագործել աշխատող ԱՀ որպես տնային համակարգիչ ֆիլմեր, խաղեր և այլն դիտելու համար:


    Այս բոլոր գործոններն ի վերջո ինձ հանգեցրին իմ սեփական հավելվածը գրելու գաղափարին, որը կներծծի առկա այլընտրանքներից ամենալավը և կվերացնի դրանց թերությունները, միաժամանակ լինելով ոչ միայն ինտերֆեյս, որը պետք է կազմաձևվի որպես առաջադրանքների կառավարիչ, այլ լիովին ավտոմատ համակարգ՝ կատարողականությունը կատարվող աշխատանքին հարմարեցնելու համար.առաջադրանք. Հիմնականում ես պատրաստվում էի իմ համակարգչի վրա ստեղծել կատարյալ BYOD շրջանակ, որը կարող էի գործարկել՝ առանց Steam-ի, iTunes-ի կամ նմանների դանդաղեցման: և խաղալ, դիտել ֆիլմեր՝ առանց կորպորատիվ ծրագրերի, հակավիրուսների և այլնի ազդեցության։

    Այս խնդիրը լուծելու համար ինձ անհրաժեշտ էր ներգրավել իմ մի քանի ընկերների, ովքեր նույնպես աշխատում էին ՏՏ ոլորտում: Նախնական միտքը մեր հարմարության համար հավելված պատրաստելն ու ՕՀ-ի և տարբեր հավելվածների աշխատանքի վերաբերյալ մեր սեփական գիտելիքներն ընդլայնելն էր:


    Դա փոքր խնդիր էր, սկզբում մենք գրել էինք Bill2`s Process Manager-ի պարզ այլընտրանք, բայց առանց կոնֆիգուրացիայի ինտերֆեյսի, որպեսզի հավելվածն աշխատի նախապես կազմաձևված կոնֆիգուրացիայով։ Հիմնական հնարքն էր որոշել, թե որ պատուհաններն են մաքսիմալացված, որ գործընթացներն են աշխատում հետին պլանում և որ հավելվածն է ուշադրության կենտրոնում: Մենք նաև անմիջապես ավելացրինք ոչ միայն գործընթացին, այլ կոնկրետ թղթապանակից բոլոր գործընթացներին առաջնահերթություն տալու տարբերակը: Այս հավելվածը գրելը բավականին հեշտ էր, և իմ փորձի շնորհիվ ես անմիջապես կարողացա խուսափել հիշողության արտահոսքից, կարգավորիչի արտահոսքից, խափանումներից և այլ սխալներից: հավելվածը պետք է երկար ժամանակ աշխատեր ֆոնային ռեժիմում՝ առանց վերագործարկման: Որպեսզի հավելվածը թեթև լինի և արդյունավետ աշխատի, մենք օգտագործեցինք միայն ստանդարտ ՕՀ և WinAPI գործառույթները: Հենց սկզբում մենք նույնիսկ կարողանում էինք առանց ինտերֆեյսի։


    Հաջորդ քայլը տեղական ուսուցման ալգորիթմ գրելն էր, որը կորոշի հավելվածի նպատակը՝ ելնելով մուտքային պարամետրերից: Որպես հիմք ընդունվել է շեմային փոխանցման ֆունկցիայի վրա հիմնված նեյրոններով նեյրոնային ցանցի մաթեմատիկական մոդելը, սակայն այն ժամանակ հաշվի չեն առնվել այն քաշային գործակիցները, որոնք մենք ավելացրել ենք ավելի ուշ։ Այս նեյրոնային ցանցը սկզբում սովորել է միայն հավելվածի հետ աշխատելու ժամանակի հիմնական պարամետրերի, դրա անվան, կոնֆիգուրացիայի կանոնների և կոշտ սկավառակի վրա գտնվելու վայրի մասին (օրինակ, եթե բազմաթիվ հավելվածներ անընդհատ օգտագործվում են և չեն աշխատում ֆոն, դրանք գտնվում են նույն արմատային թղթապանակում, ինչպիսին է «C: / Games / », ապա, ամենայն հավանականությամբ, այս թղթապանակից գործարկված բոլոր հետագա հավելվածները ակտիվորեն կօգտագործվեն, և կարիք չկա նվազեցնել դրանց առաջնահերթությունը ֆոնին):

    Այս ալգորիթմը կատարելության հասցնելու համար պահանջվեց գրեթե կես տարի: Հետագայում ավելացել է վերլուծության համար մուտքային պարամետրերի քանակը, և ընտրվել են օպտիմալ կանոններ՝ երրորդ կողմի հավելվածների համար կիրառելու համար:

    Այստեղ արժե պարզաբանել, որ, ի տարբերություն դասական առաջադրանքների կառավարիչների, մենք որոշեցինք չկառավարել առաջնահերթությունները, միջուկները, RAM-ը և I/O-ն առանձին-առանձին, այլ միավորեցինք այս պարամետրերը կանոնների մեջ, որոնք համակցված էին տարբեր համամասնություններով: Օրինակ, հիմնական հավելվածի համար կանոնը = FOREGROUND (բոլոր միջուկները հասանելի են, առաջնահերթությունը միջինից բարձր է, I/O առաջնահերթությունը բարձր է, մենք չենք վերակայում RAM-ը SWAP-ում):


    Հետագայում ուսուցման ալգորիթմին ավելացվեցին պատուհանի դիրքի պարամետրերը (արդյոք հավելվածն ունի ցուցադրվող պատուհան, այն նվազագույնի է հասցված, թե առավելագույնի հասցված: Եթե այն ընդլայնվում է ամբողջ էկրանով և ֆոկուսում, ապա դուք պետք է ավելի շատ ուշադրություն դարձնեք այս գործընթացին, քան ֆոնային և այլն):

    Ծառայության սահմանումը ավելացվել է, քանի որ Նույն անունով svchost.exe ծառայության գործընթացները կատարում են բոլորովին այլ առաջադրանքներ:

    Թերևս ամենադժվարը հավելվածին սովորեցնելն էր տարբերակել նույն գործընթացները տարբեր նպատակների համար: Օրինակ, շատ բրաուզերներ գործարկում են առանձին գործընթաց յուրաքանչյուր առանձին ներդիրի համար (Chrome, Firefox, Yandex, Opera և այլն), և ձայնը և վիդեոն նվագարկում են հյուրընկալող գործընթացները, հետևաբար, քրոմի 20 պրոցեսներից, երբ այն ուշադրության կենտրոնում չէ, դուք պետք է մեծացնեք այն գործընթացները, որոնք ձայն են նվագում: Նույնը վերաբերում է ցանկացած այլ գործընթացի, որը կարող է գործարկվել հետին պլանում:

    Որպեսզի կոնֆիգուրացիայի մեջ չնշանակվեն աշխարհին հայտնի բոլոր գործընթացները, ի վերջո, հավելվածը սովորեց որոշել ոչ միայն, թե որքան հաճախ է օգտվողը աշխատում գործընթացի հետ, այլև գործընթացի իրական նպատակը և դրա կարևորությունը աշխատանքի համար:

    Այսպիսով, հավելվածը սովորել է բեռը բաշխել համակարգչի առանցքային հանգույցների վրա՝ կախված նրանից, թե ինչի հետ է ներկայումս աշխատում օգտատերը: Ավելին, յուրաքանչյուր ԱՀ-ի համար բեռը բաշխվում է անհատապես՝ կախված ցանկացած հավելվածի օգտագործման սցենարից, այսինքն. արդյո՞ք այն օգտագործվում է պատուհանում, արդյո՞ք այն նվագարկում է տեսանյութ / ձայն / 3d, որքանով է օգտվողը մուտք գործում այս հավելվածին և որ թղթապանակում է գտնվում այս հավելվածը:

    Հավելվածը պարզվեց և ունիվերսալ, տեղադրումը տեղի է ունենում մի քանի կտտոցով, և շահագործման համար ոչ մի կարգավորում չի պահանջվում, ամեն ինչ ինքնաբերաբար հարմարվում է:

    Այս ամբողջ տրամաբանությունը չէր կարող գոյություն ունենալ առանց համակարգի հետ սերտ ինտեգրման, հետևաբար, բոլոր մեխանիզմներն իրականացնելու համար մենք պետք է առավելագույնս օգտագործեինք Windows API գործառույթները։ Սա հնարավորություն տվեց հասնել միջուկի խորքային գործառույթներին հաշվողական հզորության նվազագույն ծախսերով և պահպանել առավելագույն համատեղելիությունը x86-64 պրոցեսորի ցանկացած ԱՀ-ի հետ:

    Կարևոր էր նաև հաշվի առնել այն համակարգչի տեսակը, որի հետ օգտատերը աշխատում է: Օրինակ, երբ աշխատում է մարտկոցի էներգիայով, պրոցեսորի միջուկների հետ աշխատելու մի փոքր այլ ալգորիթմներ են օգտագործվում՝ բեռը նվազեցնելու և մարտկոցը խնայելու համար: Ավելացվել են էներգիայի կառավարման ընտրանքներ, որպեսզի չկարողանաք անջատել ձեր նոութբուքը կամ պլանշետը, բայց, անջատելով էկրանը, շարունակեք երաժշտություն լսել կամ ներբեռնել/պատճենել/արխիվացնել ֆայլերը էներգիայի սպառման մոտ քնի ռեժիմի մոտ:

    Կարևոր էր նաև իմանալ, թե ինչպես կարելի է որոշել, թե ինչպես է պրոցեսորը աշխատում բազմաթելերով և ինչպես է այն բաշխում բեռը միջուկների վրա:

    Այս բոլոր ալգորիթմները միասին օգնեցին ստեղծել իսկապես ունիվերսալ լուծում, որը չի կարող կարգավորել կամ օվերքլաքինգ և չի սահմանափակում ՕՀ-ի և այլ ծրագրերի ֆունկցիոնալությունը: Ըստ էության, հավելվածը համակարգչին սովորեցնում է հասկանալ օգտվողների հարցումները և կառավարել հիմնական հանգույցների բեռը այնպես, ինչպես փորձառու ադմինիստրատորը կանի յուրաքանչյուր կոնկրետ առաջադրանքի համար:


    Ժամանակի ընթացքում այս նախագծի աշխատանքներին միացան իմ մյուս ընկերները, ովքեր օգնեցին զբաղվել դիզայնով, կայքի, VK խմբի և այլնի հետ: հարցեր.

    Ակնկալելով տարբեր խորհուրդներ գուրուներից՝ ուզում եմ անմիջապես նշել, որ ՏՏ ոլորտում իմ ընդհանուր փորձն այս պահին 8 տարի է։ Այս հավելվածի վրա աշխատելիս ես հանդիպեցի բազմաթիվ հակասական տեղեկությունների ՕՀ-ի և համակարգչի որոշ բաղադրիչների վերաբերյալ, այնպես որ ես չեմ զարմանա, որ ինչ-որ մեկը կարող է չհամաձայնվել նկարագրված որոշ մոտեցումների հետ, բայց վերջնական փորձարկումը ցույց տվեց արդյունավետությունը: այս լուծումներից։

    Նույնիսկ իմ գործընկերների մասնագիտական ​​ոլորտում շատերը լիովին չեն հասկանում պրոցեսորի խճճվածությունը՝ բազմաթելային, բազմաֆունկցիոնալ և բազմամիջուկ: Տեղեկություններ որոշ համակարգի մասին Windows-ի առանձնահատկություններըԵս ստիպված էի գտնել ինտերնետի ամենահեռավոր մասերում: Ամենադժվարը, թերեւս, աշխատանքային (!) միջոց գտնելն էր երրորդ կողմի հավելվածների համար I/O բարձր առաջնահերթություն սահմանելու համար:

    Նկարագրված մեխանիզմը գնդաձև ալգորիթմ չէ վակուումում և հաջողությամբ աշխատում է իրական մեքենաների վրա։ Այն դեպքերում, երբ իրականում օգտագործվում է բազմաբնույթ առաջադրանքները, կատարողականի աճը կարող է լինել մինչև 50%:


    Հավելվածի վրա աշխատելու վերջին հպումը Windows OS-ի համար «կոդի ստորագրման» վկայագրի ստորագրումն էր:

    Շատ շնորհակալություն բոլորին, ովքեր յուրացրել են այս տեքստը մինչև վերջ։

    P.S.Ներողություն եմ խնդրում որոշ շփոթության համար, փորձեցի տեղադրել միայն ամենակարևոր տեղեկությունը, որպեսզի տեքստը շատ չմեծանա։

    Մենք տարածում ենք հավելվածը Freemium սխեմայի համաձայն, որպեսզի ցանկացած օգտվող կարողանա օգտագործել ամենահիմնական գործառույթները, բայց մենք շատ ուրախ կլինենք, եթե Habr համայնքը աջակցի մեզ, որպեսզի մեր նախագիծը կարողանա հետագայում զարգանալ:

    Մենք ունենք շատ ավելի շատ գաղափարներ՝ բարելավելու մեր հավելվածի ֆունկցիոնալությունն ու կատարումը՝ այն էլ ավելի լավը և արդյունավետ դարձնելու համար:

  • ծրագրավորում
  • Ավելացնել պիտակներ

    WPS Performance Station ծրագիրը մշակողների կողմից դիրքավորվում է որպես արդյունավետ, անվտանգ և հուսալի գործիք, որը թույլ է տալիս իրական ժամանակում բարելավել ձեր համակարգչի աշխատանքը:

    Հավելվածը չի փոխում համակարգի որևէ կարգավորում, չի հեռացնում անպետք ֆայլերը, չի շտկում ռեեստրի սխալները, այլ կերպ ասած՝ չի անում որևէ բան, որը կարող է ընդմիշտ ազդել ԱՀ-ի աշխատանքի վրա: Փոխարենը, WPS Performance Station-ը կառավարում է ներկայումս գործող համակարգի և օգտագործողի գործընթացները. անջատում և միացնում է դրանք, փոխում առաջնահերթությունը և գործառնական պարամետրերը՝ կախված համակարգչի ընթացիկ ռեսուրսների կարիքներից։ CPU, RAM և կոշտ սկավառակ:

    WPS Performance Station-ի առանձնահատկությունները

    Կատարումը բարձրացնելու համար WPS Performance Station-ը աշխատում է համակարգչի հիմնական ապարատային ռեսուրսների հետ.

    • CPU. Հավելվածն ի վիճակի է վերաբաշխել պրոցեսները պրոցեսորի միջուկների միջև և առաջնահերթություն տալ ընթացիկ առաջադրանքներին: Օրինակ, ֆոնային գործընթացի առաջնահերթությունը նվազեցնելով, հնարավոր կլինի ազատել պրոցեսորի որոշ ռեսուրսներ ընթացիկ (ակտիվ) առաջադրանքի համար:
    • Պատահական մուտքի հիշողություն (RAM): WPS Performance Station-ն ունի RAM-ում բեռնված ներկայումս չօգտագործված տվյալները սեղմելու գործառույթ: Դրա շնորհիվ դուք կարող եք ազատել հիշողության քանակի մինչև 40%-ը, որը կօգտագործվի ընթացիկ առաջադրանքի կարիքների համար:
    • Կոշտ սկավառակներ (HDD) և պինդ վիճակի կրիչներ (SSD): Տեղեկատվության պահպանման սարքի վրա կարդալու կամ գրելու արագությունը կարող է նաև վերաբաշխվել անհատական ​​դիմումներկախված սահմանված առաջնահերթությունից. Երբ առաջնահերթությունն իջեցված է ֆոնային գործընթացներդուք կարող եք ազատել լրացուցիչ HDD / SSD ռեսուրսներ ընթացիկ առաջադրանքների համար:

    Բացի այդ, WPS Performance Station-ը կարող է նաև օպտիմալացնել կատարումը.

    • Էլեկտրաէներգիայի վերահսկիչ: Դյուրակիր համակարգիչներում (նոութբուքեր, նեթբուքեր և այլն) կատարումը կախված է նաև նրանից, թե որքան էներգիա է հատկացվել այս կամ այն ​​աշխատանքի համար: էլեկտրոնային սարք- CPU, RAM, կոշտ սկավառակ և այլն: Էներգիայի սպառման մակարդակն իր հերթին կապված է սարքի ընթացիկ ծանրաբեռնվածության հետ։ Նվազեցնելով ֆոնային հավելվածների ռեսուրսները՝ WPS Performance Station-ը կարող է ավելի շատ հատկացնել էլեկտրական հոսանքընթացիկ առաջադրանքների կատարման ներքո՝ առանց էներգիայի սպառման ընդհանուր մակարդակի փոփոխության։
    • ցանցային ադապտերներ. Հավելվածն ապահովում է ինտերնետ տրաֆիկի սեղմման գործառույթը՝ այն փոխանցելով հեռավոր VPN սերվերի միջոցով։ Սեղմումն իրականացվում է WPS Performance Station սերվերների կողքին, որի միջոցով տվյալները ուղարկվում են օգտագործողի համակարգչին: Համար VPN-ի օգտագործումըգրանցումը ծրագրի պաշտոնական կայքում պարտադիր է: Ծառայությունը վճարովի է։

    Վերոնշյալ բոլոր գործառույթները կարող են միացնել և անջատվել ծրագրի կողմից ինչպես ավտոմատ, այնպես էլ մեխանիկական ռեժիմներով: Օգտագործողը կարող է ընտրել հասանելի օպտիմալացման սխեմաներից մեկը՝ կախված ընթացիկ նպատակներից, օրինակ՝ որոշակի խաղի կատարողականը բարձրացնելու անհրաժեշտությունից։ Դուք կարող եք նաև կառավարել համակարգչի ռեսուրսները՝ ստեղծելով կանոններ որոշակի գործընթացների համար:

    Համատեղելիություն Windows-ի հետ, ծրագրի տարբերակները

    WPS Performance Station-ը աշխատում է բոլորում Windows-ի տարբերակները XP-ից ավելի հին: Աջակցվում են x86 և x64 համակարգերը: Գոյություն ունի երկու վճարովի տարբերակ (դասական և UWP) և մեկ անվճար (փորձնական) տարբերակ՝ որոշ ֆունկցիոնալ սահմանափակումներով: UWP տարբերակն աշխատում է միայն Windows 10-ում: Ծրագիրն ունի ռուսերենի աջակցություն: Երթևեկության սեղմման ֆունկցիան (այսինքն՝ VPN սերվեր) օգտագործելու համար հարկավոր է գնել վճարովի բաժանորդագրությունանկախ ծրագրաշարի տարբերակից: