Ֆայլեր ինտերնետից ներբեռնում: Որոնք են այս դեպքում ծրագրավորողների սովորական գործողությունները

Սեղմումը, միաձուլումը, պահումը և զուգահեռ միացման տեխնիկան նայելուց հետո իմաստուն կլինի լուծել հետևյալ հարցը. Էջի ո՞ր մասը պետք է բեռնվի հիմնական HTML ֆայլով, իսկ որը միայն արտաքին ֆայլերով:

Թեստային միջավայրը հավաքվել է մեկ էջի տեսքով, որի համար կիրառվել են օպտիմալացման տարբեր մեթոդներ (միևնույն ժամանակ, կամայական էջ բեռնելու համար ձեռք է բերվել իրական արագացում և ցույց է տրվել, թե ինչպես են այս բոլոր տեխնիկաներն իրականում ազդում էջի բեռնման արագության վրա):

Բացի այդ, կատարվել են տեսական հաշվարկներ `ըստ փուլերի բեռի օպտիմալ բաշխումը որոշելու համար` հաշվի առնելով բոլոր ասպեկտները:

Իրական իրավիճակ

Նկար: 29. WebHiTech.ru կայքի բեռնման (անփոփոխ) դիագրամ

Բեռի հոսքը փոփոխելու հիմնական գաղափարը բեռի գծապատկերում սպիտակ տարածության նվազագույն քանակի ստեղծումն էր: Ինչպես երեւում է Նկ. 29, էջի բեռի մոտ 80% -ը կազմված է կապի դադարեցումից (բնականաբար, այս գրաֆիկը չի արտացոլում զննարկչում բացված ներբեռնման ալիքների իրական բեռը, սակայն, երբ նկարը պարզվում է, իրավիճակը գործնականում չի փոխվում): Paraուգահեռ բեռները սկսվում են միայն խցանը շրջանցելուց հետո, որն ավարտվում է (այս դեպքում) էջի նախաբեռնումից հետո `CSS ֆայլից հետո:

Ներբեռնման արագությունն օպտիմալացնելու համար հարկավոր է կրճատել զուգահեռաբար բեռնված ֆայլերի քանակը (ուղղահայաց սլաքներ) և դրանք «տեղափոխել» առավելագույն ձախ (հորիզոնական սլաք): «Սպիտակ տարածության» իջեցումը (ըստ էության, ներբեռնման ալիքների անսարքության նվազում), տեսականորեն, պետք է ավելացնի ներբեռնման արագությունը դրա զուգահեռացման պատճառով: Եկեք տեսնենք, արդյոք դա ճիշտ է և ինչպես հասնել դրան:

Քայլ առաջին ՝ հասարակ էջ

Սկզբում սովորական էջ է վերցվել, որի համար օգտագործվել է միայն HTML ֆայլի gzip սեղմում: Սա ամենապարզ բանն է, որ կարելի է անել էջի բեռնումն արագացնելու համար: Այս օպտիմիզացումը ընդունվեց որպես հիմք, որի հետ համեմատվեց մնացած բոլորը: Թեստերի համար պատրաստվել է WebHiTech մրցույթի գլխավոր էջը (http://webhitech.ru/) փոքր թվով լրացուցիչ նկարներով (որպեսզի արտաքին օբյեկտներն ավելի շատ լինեն, և էջի չափը մեծանա):

Էջի հենց սկզբում (գլխում) նախնական ժամանակը չափվում է և պատուհանի միջոցով: բեռնել իրադարձությունը (նշենք, որ միայն դրանով, քանի որ միայն դա է երաշխավորում, որ ամբողջ էջը ամբողջությամբ գտնվում է հաճախորդի զննարկչում) - վերջնական ժամանակը, ապա հաշվարկվում է տարբերությունը: Բայց սա շատ պարզ օրինակ է, եկեք անցնենք հաջորդ քայլերին:

Քայլ երկրորդ. Նվազեցրեք պատկերները

Նախ, մենք նվազագույնի ենք հասցնում բոլոր բնօրինակ պատկերները (կիրառական հիմնական տեխնիկան արդեն լուսաբանվել է երկրորդ գլխում): Պարզվեց, որ բավականին զվարճալի է. Էջի ընդհանուր չափը նվազել է 8% -ով, իսկ բեռնման արագությունն աճել է 8% -ով (այսինքն ՝ ստացվել է համամասնական արագացում):

Լրացուցիչ, պատկերների նվազագույնի հասցմամբ, ոճաթերթը (CSS Tidy- ի միջոցով) և ինքը ՝ HTML ֆայլը կրճատվել են (հեռացվել են լրացուցիչ տարածություններն ու գծերի հոսքերը): Էջում գրություններ չկան, ուստի բեռնման ընդհանուր ժամանակը շատ չի փոխվել: Բայց սա դեռ վերջը չէ, և մենք անցնում ենք երրորդ քայլին:

Քայլ երրորդ ՝ բոլորը մեկում

Կարող եք օգտագործել տվյալները. URI և տեղադրել բոլոր պատկերները համապատասխան HTML / CSS ֆայլերում ՝ այդպիսով կրճատելով էջի չափը (gzip սեղմման պատճառով, մեծ հաշվով, քանի որ ոճաթերթը նախկինում չի սեղմվել) ևս 15% -ով, սակայն , բեռի ժամանակը նվազել է ընդամենը 4% -ով (միացված պահուստավորմամբ, 304 պատասխաններով հարցումների քանակը նվազել է): Էջն առաջին անգամ բեռնելիս բարելավումները շատ ավելի հետևողական են ՝ 20%:

Իհարկե, CSS ֆայլը նույնպես ներառված էր HTML- ի մեջ, այնպես որ, երբ ամբողջ էջը բեռնվում էր, սերվերին ուղարկվեց միայն մեկ խնդրանք (ամբողջ էջը ցույց տալ մի քանի տասնյակ օբյեկտներով):

Քայլ չորրորդ. Կտրեք հոսքը

Դուք կարող եք փորձել բաժանել բնօրինակ մոնոլիտ ֆայլը մի քանի (5-10) հավասար մասերի, որոնք այնուհետև կհավաքվեն և կտեղադրվեն անմիջապես document.body.innerHTML: Դրանք սկզբնական HTML ֆայլն ինքնին շատ փոքր է (իրականում պարունակում է միայն նախաբեռնիչ) և շատ արագ է բեռնում, իսկ դրանից հետո սկսվում է շատ ավելի նույնական ֆայլերի զուգահեռ բեռնումը, որոնք օգտագործում են ներբեռնման ալիքը հնարավորինս խիտ:

Այնուամենայնիվ, հետազոտությունը ցույց է տվել, որ XHR հարցումների գլխավերևը և հաճախորդի վրա innerHTML կառուցելը շատ ավելի մեծ է, քան այս զուգահեռացումը: Արդյունքում էջը կբեռնվի 2-5 անգամ ավելի երկար, մինչդեռ չափը շատ չի փոխվում:

XHR խնդրանքների փոխարեն կարող եք փորձել օգտագործել դասական iframes, որպեսզի խուսափեն ավելորդ գրաֆիկից: Դա օգնում է, բայց ոչ շատ: Էջը դեռ կբեռնվի 2-3 անգամ ավելի երկար, քան մենք կցանկանայինք:

Եվ մի փոքր ՝ շրջանակներ օգտագործելու հարցին. Շատ հաճախ կայքի ամենաշատ օգտագործվող մասերը դրանց վրա են արվում ՝ փոխանցվող տվյալների չափը նվազեցնելու համար: Ինչպես վերը նշվեց, ուշացման մեծ մասը պայմանավորված է էջի արտաքին օբյեկտների մեծ թվով, այլ ոչ թե արտաքին օբյեկտների չափերով: Հետեւաբար, այս պահին այս տեխնոլոգիան հեռու է նույնքան արդիական լինելուց, որքան անցյալ դարի 90-ականներին:

Հարկ է նաև նշել, որ կայքը նավարկելու համար iframe- ի օգտագործման ժամանակ այդ նավիգացիան ինքնին թարմացնելու խնդիր է առաջանում (օրինակ, եթե ուզում ենք ընտրացանկի որոշակի կետ ակտիվորեն նշել): Այս խնդրի ճիշտ լուծումը պահանջում է, որ օգտագործողը միացված լինի JavaScript- ին, և դա տեխնիկական տեսանկյունից բավականին տրիվիալ չէ: Ընդհանրապես, եթե կայք նախագծելիս կարող եք անել առանց շրջանակների, ապա դրանց օգտագործումը պետք չէ:

Քայլ հինգ ՝ ալգորիթմական պահում

Իրավիճակը առաջին երեք քայլերով վերլուծելուց հետո մենք կարող ենք տեսնել, որ արագության մի մասը կարելի է ձեռք բերել, եթե զննարկչին հնարավորություն տաք արտաքին ֆայլերը բեռնել որպես առանձին առարկաներ, և ոչ թե որպես JSON կոդ, որը պետք է ինչ-որ կերպ փոխվի: Բացի դրանից, ջրի երես դուրս գալու ասպեկտները ի հայտ են գալիս. Չէ՞ որ ավելի արագ է բեռնել էջի կեսը, իսկ երկրորդ կեսի համար ստուգել 304 ստատուսային ծածկագրերով խնդրանքներով, որ օբյեկտները չեն փոխվել: Այս դեպքում հաճախորդի կողմից ամբողջ էջի բեռնումն այս դեպքում մի փոքր ավելի դանդաղ կլինի (բնականաբար, այս հարցի վերաբերյալ որոշումը կախված կլինի ռեսուրսի մշտական \u200b\u200bօգտագործողների քանակից):

Արդյունքում հնարավոր էր բեռի ժամանակը կրճատել ևս 5% -ով, վերջնական արագացումը (լրիվ քեշի դեպքում) հասավ 20% -ի, մինչ էջի չափը կրճատվեց 21% -ով: Հնարավոր է էջի չափի ոչ ավելի, քան 50% -ը փոխանցել արտաքին օբյեկտների բեռնումին, մինչդեռ օբյեկտները պետք է մոտավորապես հավասար լինեն չափի (անհամապատասխանությունը 20% -ից ոչ ավել է): Այս դեպքում էջի բեռնման արագությունը լրիվ քեշով օգտվողների համար կլինի ամենաարագը: Եթե \u200b\u200bէջը օպտիմիզացված է դատարկ հիշապահեստ ունեցող օգտվողների համար, ապա լավագույն արդյունքը հասնում է միայն այն դեպքում, երբ բոլոր արտաքին ֆայլերը ներառված են բնօրինակ HTML- ում:

Ամփոփ աղյուսակ

Ստորև բերված են մեկ վերցված էջի օպտիմալացման բոլոր արդյունքները: Ներբեռնումը փորձարկվել է 100 Կբիթ / վրկ կապի վրա, բնօրինակ օբյեկտների ընդհանուր թիվը 23 էր:

Քայլի համարը

Նկարագրություն

Ընդհանուր չափը (կբ)

Բեռնման ժամանակ (մգ)

1 Կանոնավոր էջ: Ոչինչ չի սեղմվել (միայն html- ն է մատուցվում gzip- ի միջոցով) 63 117
2 HTML / CSS ֆայլերը և պատկերները նվազագույնի են հասցվում 58 108
3 Մեկ մեկ ֆայլ: Նկարները տեղադրվում են տվյալների միջոցով. URI 49 104
4 HTML ֆայլը միաժամանակ ներբեռնում է տվյալների 6 մաս և հավաքում դրանք հաճախորդի վրա 49 233
4.5 HTML ֆայլը բեռնում է 4 iframe 49 205
5 Ընտրանք թիվ 3, միայն JPEG պատկերները (մոտավորապես նույն չափի) մատուցվում են ֆայլերի և բեռնվում միջոցով (նոր պատկեր ()): Src գլխավոր էջում 49 98

Աղյուսակ 5. Էջում օբյեկտները զուգահեռ բեռնելու տարբեր եղանակներ

Քայլ վեց. Բեռնման փուլերը հավասարակշռելը

Այսպիսով, ինչպե՞ս լավագույնս հավասարակշռենք էջի բեռը դրա փուլերի միջև: Որտե՞ղ է «ոսկե միջինը», որն ապահովում է օպտիմալ բեռը: Սկսենք այն ենթադրությունից, որ մենք արդեն հետևել ենք տվյալների կրճատման բոլոր խորհուրդներին: Դա միշտ կարելի է անել, դա բավականին պարզ է (շատ դեպքերում անհրաժեշտ են միայն սերվերի կազմաձևման փոքր փոփոխություններ): Ենթադրենք նաև, որ ստատիկան սպասարկվում է արդեն պահման վերնագրերով (304 պատասխան վերադարձնել այն դեպքում, երբ ռեսուրսների ֆայլը վերջին այցից հետո ֆիզիկապես չի փոխվել):

Ի՞նչ է հաջորդը Հետագա գործողությունները կախված են արտաքին ֆայլերի կառուցվածքից: Ներառված մեծ (ավելի քան երկու) թվով ֆայլերով էջ, դուք պետք է միավորեք ոճի ֆայլերը և սցենարային ֆայլերը: Էջի նախաբեռնումի արագացումը ակնհայտ կլինի:

Եթե \u200b\u200bսցենարների ծավալը նույնիսկ սեղմումից հետո բավականաչափ մեծ է (ավելի քան 10 Կբ), ապա արժե դրանք միացնել մինչ փակումըկամ, ընդհանուր առմամբ, բեռնել իրադարձության համակցված պատուհանի միջոցով: բեռնել (յոթերորդ գլխի սկիզբը նվիրված է սցենարների դինամիկ բեռնումին): Այստեղ մենք, փաստորեն, բեռի մի մասը տեղափոխում ենք երկրորդ փուլից չորրորդ, միայն «վիզուալ» էջի բեռնումն է արագանում:

Նկարների ընդհանուր քանակը պետք է լինի նվազագույն: Այնուամենայնիվ, այստեղ նույնպես շատ կարևոր է հավասարաչափ բաշխել դրանց ծավալը բեռնման երրորդ փուլի վրա: Շատ հաճախ, 50-100 Կբ-ի մեկ նկարը դանդաղեցնում է ներբեռնման ավարտը, այն բաժանելով 3-4 բաղադրիչի, կարող է արագացնել ընդհանուր գործընթացը: Հետեւաբար, մեծ թվով ֆոնային պատկերներ օգտագործելիս ավելի լավ է դրանք բաժանել 10-20 բլոկների, որոնք զուգահեռաբար կբեռնվեն:

Քայլ յոթերորդ. Հավասարակշռող պահուստավորում

Եթե, այնուամենայնիվ, երրորդ փուլում էջում կան ավելի քան 10 արտաքին օբյեկտներ (նկարներ և զանազան մուլտիմեդիա ֆայլեր), ապա զուգահեռ հոսքերի քանակն ավելացնելու համար արդեն իսկ արժե ներկայացնել լրացուցիչ սերվեր: Այս դեպքում DNS հարցման գլխավերևը կվճարի `միացնելով կապի կարգավորման միջին ժամանակը: 3 օբյեկտ պետք է մուտքագրվի 20 օբյեկտից հետո և այլն: Ընդհանուր առմամբ 4-ից ոչ ավել (ըստ Yahoo! - ի աշխատանքային խմբի ուսումնասիրության, 4 հյուրընկալողներից հետո ծախսերն ավելի հավանական է աճեն, քան նվազեն):

Հարցը, թե էջի որքա՞ն ծավալ պետք է ներառվի բուն HTML ֆայլում (ծածկագիր ՝ CSS, JavaScript կամ տվյալների տեսքով. URI) և որքան թողնել արտաքին օբյեկտների վրա, շատ հեշտ է լուծել: Մնացորդն այս դեպքում մոտավորապես հավասար է կանոնավոր և միանվագ այցերի քանակի հարաբերակցությանը: Օրինակ, եթե օգտագործողների 70% -ը մեկ շաբաթվա ընթացքում կայք է այցելում, ապա էջի մոտավորապես 70% -ը պետք է լինի արտաքին օբյեկտների մեջ, և միայն 30% -ը `HTML փաստաթղթում:

Երբ էջը պետք է միայն մեկ անգամ տեսնել, իմաստ ունի ամեն ինչ ներառել հենց այդ էջում: Այնուամենայնիվ, այստեղ արդեն ուժի մեջ են մտնում հոգեբանական պահերը: Եթե \u200b\u200bմիջին օգտագործողն ունի էջի բեռնում ավելի քան 3-4 վայրկյան (հաշվի առնելով DNS հարցման ժամանակը և միանալով սերվերին), ապա անհրաժեշտ կլինի բաժանել երկու մասի ՝ նախնական տարբերակը, որը կցուցադրվի բավականաչափ արագ և էջի մնացած մասը:

Շատ կարևոր է հասկանալ, թե այս դեպքում բեռնման որ փուլն է օպտիմիզացված, և ինչ է տեսնում իրական օգտագործողը (մաքուր քեշով և, միգուցե, դանդաղ ալիքով): Հատուկ օրինակների միջոցով էջի բեռնման գործընթացը վերլուծելու վերաբերյալ լրացուցիչ տեղեկություններ ստանալու համար տե՛ս Գլուխ 8:

Եզրակացություն

Այսպիսով, սովորական էջի օրինակով (արդեն բավականին լավ արված, հարկ է նշել) մենք հասանք դրա բեռնման արագացմանը ևս 15-20% -ով (և դա առանց հաշվի առնելու gzip սեղմման HTML- ի օգտագործումը, որն այս դեպքում տալիս է ընդհանուր արագության մոտ 10% -ը) ) Ամենակարևոր մեթոդներն արդեն տրված են վերևում, այժմ կարող ենք միայն նշել, որ էջի արագությունը օպտիմալացնելիս ավելի լավ է միշտ ապավինել զննարկչի ներքին մեխանիզմներին և չփորձել ընդօրինակել դրանք JavaScript- ում (այս դեպքում մենք խոսում ենք հոսքը արհեստականորեն «կտրելու» մասին): Գուցե ապագայում հաճախորդի մեքենաները դառնան բավականաչափ հզոր (կամ JavaScript շարժիչներն ավելի լավ օպտիմիզացված), որպեսզի այդպիսի մեթոդները գործեն: Այժմ կա միայն մեկ ընտրություն ՝ ալգորիթմային պահոց:

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

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

Եկեք միանգամից պարզաբանենք, որ բոլորը, իհարկե, աջակցում են անջատումից հետո բազմաշերտ ներբեռնման և վերսկսման ֆայլերը և ավտոմատ կերպով ընտրում են ներբեռնման օպտիմալ արագությունը (կախված կապի տեսակից): Նրանք նաև ինտեգրվում են հանրաճանաչ զննարկիչներին ՝ փոխարինելով ստանդարտ ներբեռնման մոդուլին և վերահսկում են clipboard ՝ ինքնուրույն նույնականացնելով հղումները: Սա նշանակում է, որ, ընդհանուր առմամբ, այս լուծումներից որևէ մեկն ապահովում է ֆայլերի արագ և հուսալի ներբեռնում FTP և HTTP սերվերներից:

Ներբեռնման մենեջերները տարբերվում են միմյանցից տարբեր նրբերանգներով (տե՛ս աղյուսակ): Մասնավորապես, ոչ բոլորն են ապահովում ZIP արխիվների մասնակի ներբեռնում, ճիշտ ճանաչում ֆայլերի պահուստներից հղումներ, ինչպիսիք են Rapidshare- ն անվճար ռեժիմում, և թույլ են տալիս ուղղակիորեն (այսինքն `պարզապես ավելացնելով URL, ինչպիսին է http://www.youtube.com/watch?v\u003d ...) ներբեռնել տեսահոլովակներ առցանց վիդեո ծառայություններից 3 (YouTube, Google Video և այլն): Ներբեռնման ոչ բոլոր ղեկավարներն են ի վիճակի ներբեռնում ապահով FTP և վեբ սերվերներից (այսինքն, համապատասխանաբար, օգտագործելով SFTP և HTTPS պրոտոկոլները) և թույլ են տալիս գնահատել ֆայլի չափը նախքան այն ներբեռնելը: Իսկ BitTorrent- ի և eDonkey- ի հաճախորդների աջակցությունն ընդհանուր առմամբ իրականացվում է միայն ներբեռնման որոշ մենեջերներում, ինչը, սակայն, մեր կարծիքով, այլևս այդքան էլ արդիական չէ, քանի որ նման հաճախորդների ֆունկցիոնալությունը մեծ չէ: Տարբեր լուծումներ ունեն աջակցվող ինտերնետային զննարկիչների տարբեր ցուցակներ, և այդպիսի ինտեգրման բուն սկզբունքը տարբեր է. Ինչ-որ տեղ բավական է պարզապես կարգաբերման մեջ դնել համապատասխան վանդակները, և ինչ-որ տեղ պետք է ներբեռնեք և տեղադրեք զննարկիչին համապատասխան plugin: Բացի այդ, բեռնման գործընթացի հետ կապված ավելի նուրբ տարբերություններ կան. Օրինակ ՝ որոշ լուծումներում, երբ զննարկչի գործունեությունը հայտնաբերվում է, երթևեկի գերակայությունը ավտոմատ կերպով փոխվում է (և ինչ-որ տեղ դա պետք է արվի ձեռքով), մյուսներում կարող եք առաջնահերթությունները ներբեռնումներին (որոնք որոշ ապրանքների մեջ չի տրամադրվում) և այլն:

GetRight / GetRight Pro 6.3e

Կառուցապատող: Լուսարձակների ծրագրակազմ

Բաշխման չափը: GetRight - 4.78 ՄԲ; GetRight Pro - 4.91 ՄԲ

Աշխատել վերահսկողության տակ. Windows 95/98 / Me / NT / 2000 / XP / Vista

Բաշխման եղանակը. shareware (30-օրյա ցուցադրում. GetRight - http://download.getright.com/getright-download.exe; GetRight Pro - http://download.getright.com/getright_pro_setup.exe)

Գինը: GetRight - 19,95 դոլար GetRight Pro - 49,95 դոլար

GetRight- ը ներբեռնման մենեջեր է, որը երկար ժամանակ շուկայում է և ստացել է ժողովրդականություն իր հարմարավետության և հուսալի գործունեության շնորհիվ, որն այսօր հեռու է օգտվողների լայն շրջանակի համար այդքան գրավիչ լինելուց, քանի որ մի շարք պարամետրերով այն զիջում է անալոգներին և առաջարկվում է շատ բարձր գնով: Եվ այս լուծման հետագա մշակումը, փաստորեն, այլևս ընթացքի մեջ չէ: Ներբեռնման այս մենեջերը թույլ է տալիս ներբեռնել ֆայլեր (ներառյալ ժամանակացույցով) HTTP, HTTPS, FTP և FTPS համակարգերի միջոցով և կարող է օգտագործվել ֆայլեր բաժանող սերվերներից ֆայլեր ներբեռնելու, նոր երաժշտական \u200b\u200bտեսանյութեր Podcast / RSS հոսքում ստանալու և BitTorrent- ի միջոցով ֆայլեր ներբեռնելու համար: տվյալների մի մասը հնարավոր է միաժամանակ ստանալ FTP / HTTP- ի միջոցով, իսկ մի մասը `BitTorrent- ից, որին հետևում է« սոսնձումը »ճանճի վրա): Ստացված մուլտիմեդիա ֆայլերը հնարավոր է ավտոմատ կերպով ավելացնել MediaPlayer և iTunes հավելվածների երգացանկերում: Այնուամենայնիվ, կոմունալ ծրագիրը չի օգնի վիդեո հոստինգի կայքերից տեսանյութեր ներբեռնելու և արխիվների մասնակի ներբեռնելու ժամանակ:

GetRight- ը ավտոմատ կերպով ինտեգրվում է առաջատար զննարկիչներին, և օգտակար ծրագիրը տեղադրելու ժամանակ կարող եք նշել հետաքրքրող զննարկիչների ցանկ: Հատուկ ներկառուցված զննարկիչը հնարավորություն է տալիս դիտել FTP սերվերների և HTTP կայքերի պանակների կառուցվածքը: Երթևեկության սահմանափակումն իրականացվում է ձեռքով ՝ ներբեռնման արագության առավելագույն թույլատրելի սահմանը սահմանելով, մինչդեռ թույլատրվում է ստուգման տուփին հնարավորություն տալ վերացնել այս սահմանափակումը էկրանապահիչի գործունեության պահերին: Ներբեռնելուց առաջ կարող եք ստուգել գոյության համար հետաքրքրող հասցեն և նշել ֆայլի չափը: Միաժամանակ ներբեռնված ֆայլերի քանակը և հոսքերի քանակը կարգավորվում են, իսկ ներբեռնելու համար լավագույն «հայելիները» հեշտ է գտնել ինքնաբերաբար կամ ձեռքով նշել: Կախված տեսակից, վերբեռնված ֆայլերը կարող են բաշխվել տարբեր պանակների մեջ, պանակների համար թույլատրվում է առաջնահերթություններ սահմանել: Ներբեռնումն ավարտելուց հետո հնարավոր է ավտոմատ կերպով գնահատել ստացված ֆայլերի ամբողջականությունը և սկանավորել դրանք վիրուսների համար:

Րագիրը ներկայացված է երկու տարբերակով `հիմնական GetRight և ընդլայնված GetRight Pro: Pro տարբերակը տրամադրում է «հաճախորդ-սերվեր» ռեժիմում աշխատելու հնարավորություն (ցանցում մեկ համակարգչի կողմից ֆայլեր ներբեռնելու համար, որոնց հղումները փոխանցվում են մնացածից) և որպես վստահված սերվեր (թույլ է տալիս այլ ինտերնետային ծառայություններ օգտագործել GetRight- ի ֆայլի վերսկսման հնարավորությունները): Այն նաև ունի ներկառուցված գործառույթ `արդեն ներբեռնված ֆայլերը համաժամացնելու համար` սերվերներում դրանց թարմացումների հայտնվելու և սերվերներ ֆայլեր վերբեռնելու դեպքում, կա գրելու լեզու (ապահովում է ներբեռնման կառավարման առաջատար հնարավորություններ), կարող եք սահմանափակել առանձին ֆայլերի ներբեռնման արագությունը և այլն:

Ներբեռնեք Վարպետ 5.5.12.1171

Կառուցապատող WestByte ծրագրակազմ

Բաշխման չափը: ստանդարտ տարբերակ - 5.24 ՄԲ; Դյուրակիր տարբերակ ՝ 3.7 ՄԲ

Աշխատել վերահսկողության տակ. Windows 95/98 / Me / NT 4.0 / 2000 / XP / Vista

Բաշխման եղանակը. անվճար ծրագիր (http://www.westbyte.com/dm/index.phtml?page\u003ddownload&lng\u003d Russian)

Գինը անվճար է

Ներբեռնման Master- ը ներբեռնման բազմաֆունկցիոնալ մենեջեր է, որը թույլ է տալիս ֆայլեր ներբեռնել ոչ միայն FTP և HTTP սերվերներից, այլ նաև հանրաճանաչ վիդեո ծառայություններից (YouTube, Google Video, RuTube, Video@mail.?ru, Rambler Vision) և ֆայլերի պահեստներ (ներառյալ Rapidshare) ազատ ռեժիմում: ZIP արխիվների դեպքում դրանց բովանդակությունը հնարավոր է դիտել ներբեռնումից առաջ. Հնարավոր է նաև ներբեռնել միայն արխիվից ընտրված ֆայլեր: TopDownloads ֆայլերի ցուցակում ֆայլերի, ծրագրերի, խաղերի և երաժշտության որոնում իրականացվել է:

Ներբեռնման Master- ը ինտեգրվում է բոլոր ամենատարածված զննարկիչներին (IE կլոնների համար դուք պետք է կազմաձևեք պարամետրերը), և ներկառուցված FTP Explorer ծրագիրը օգտակար է ապահովում FTP սերվերների միջոցով: Կոմունալը ի վիճակի է ինքնուրույն որոշել ներբեռնված ֆայլերի տեսակները և բաշխել դրանք կատեգորիաների (ծրագրեր, երաժշտություն, տեսանյութեր և այլն), իսկ երբ արագությունը նվազում է, այն ավտոմատ կերպով վերագործարկում է ներբեռնումը, ինչը խուսափում է անսարքությունից: Ներբեռնումն իրականացվում է մի քանի հոսքերով: Անհրաժեշտության դեպքում, որոշակի կայքերի համար, հոսքերի քանակը կարող է հեշտությամբ սահմանափակվել, և ծրագիրը հնարավոր է կարգավորել այնպես, որ դրանցից ներբեռնված ֆայլերը պահվեն որոշակի պանակներում և / կամ կատեգորիաների մեջ: Ներբեռնման ավարտին հնարավոր է անջատվել ինտերնետից, անցնել քնելու ռեժիմի, անջատել համակարգիչը և այլն: Ներբեռնման արագության և դրա ավտոմատ նվազման վերահսկում կա այն դեպքում, երբ օգտագործողը ինտերնետում է: Հնարավոր է աշխատել ըստ ժամանակացույցի, ինչպես նաև ստուգել վերբեռնված ֆայլերը սերվերի և տեղական համակարգչի վրա ֆայլերի թարմացման և համաժամացման (ավտոմատ թարմացում) համար:

Րագիրը ներկայացված է երկու տարբերակով `ստանդարտ ներբեռնման վարպետ և դյուրակիր ներբեռնման վարպետ վարպետ: Վերջինս չի պահանջում տեղադրում և կարող է գրվել ֆլեշ կրիչի կամ արտաքին կրիչի վրա, որն ապահովում է ինտերնետին միացված ցանկացած համակարգչում ֆայլեր ներբեռնելու հնարավորություն: Դյուրակիր տարբերակը զննարկչի ինտեգրում չունի, և պարամետրերը արտահանելու / ներմուծելու հնարավորությունն անջատված է, ուստի ծրագրի ստանդարտ տարբերակը ավելի հարմար կլինի ձեր սեփական համակարգչում օգտագործելու համար:

ReGet Deluxe 5.2

ԿառուցապատողReGet Software

Բաշխման չափը: ReGet Deluxe - 2.5 ՄԲ; ReGet Deluxe Personal - 2 ՄԲ

Աշխատել վերահսկողության տակ. Windows 2000 (SP3 / SP4) / XP (SP2) / Server 2003 / Vista

Բաշխման եղանակը. shareware (30-օրյա ցուցադրում. ReGet Deluxe - http://download.reget.com/regetdx.exe; ReGet Deluxe Personal - http://download.reget.com/regetdxpers.exe)

Գինը ReGet Deluxe - 600 ռուբլի; ReGet Deluxe Personal - Անվճար (միայն տնային օգտագործման համար)

ReGet Deluxe- ը ներբեռնման բազմաֆունկցիոնալ մենեջեր է, որը թույլ է տալիս ներբեռնել ֆայլեր (ներառյալ ըստ ժամանակացույցի) ոչ միայն սովորական FTP և HTTP սերվերներից, այլև անվտանգ ֆայլերի (SFTP) և վեբ (HTTPS) սերվերներից: Կոմունալը կարող է նաև ներբեռնել մուլտիմեդիա բովանդակություն հոսքային պրոտոկոլների (MMS, RTSP) միջոցով և կարող է օգտագործվել ֆայլեր բաժանող սերվերներից ներբեռնելու համար (MySpace.com, iDrive.com և այլն), բայց դա չի օգնի ներբեռնել ֆլեշ տեսանյութեր վիդեոհոսթինգի կայքերից, մասնավորապես YouTube Կոմունալը ցուցադրում է ներբեռնված ֆայլի չափը նույնիսկ ներբեռնումից առաջ, թույլ է տալիս դիտել ZIP արխիվները և մասամբ ներբեռնել դրանք, ինչպես նաև կարող է ավտոմատ կերպով անցնել ավելի արագ «հայելիների»:

ReGet Deluxe- ն ավտոմատ կերպով ինտեգրվում է Internet Explorer- ին և դրա մի շարք կլոններին. Որոշ զննարկիչների մեջ ինտեգրումն իրականացվում է երրորդ կողմի պլագինների միջոցով: Ներկառուցված FTP զննարկիչը հեշտացնում է FTP սերվերներում գտնել ձեր ուզած ֆայլերը: Ներբեռնված ֆայլերը կարող են ավտոմատ կերպով դասավորվել տարբեր պանակների ՝ հաշվի առնելով օգտագործողի կողմից իրենց տրված կատեգորիան, և մակրոներ օգտագործելիս հնարավոր է նույնիսկ ավտոմատ կերպով ստեղծել անհրաժեշտ թղթապանակներ ՝ ներբեռնված ֆայլերի ընդլայնումների, ներբեռնման ամսաթվի կամ սերվերի անվանման համաձայն, որտեղից ներբեռնվել է ֆայլը: Երբ որոշակի ներբեռնումը դանդաղեցնում է, կոմունալը ավտոմատ կերպով անջատվում է սերվերից և նորից միանում դրան ՝ ներբեռնմանը տալով մեկնարկային հրում: Միաժամանակ կարելի է ներբեռնել մի քանի ֆայլ. Դրանց թիվը (ինչպես նաև հոսքերի քանակը) կախված է կապի տեսակից: Ներբեռնման ընթացքում ծրագիրը նկատում է զննարկչի գործունեությունը և ավտոմատ կերպով իջեցնում է դրա երթևեկը, երբ զննարկիչը փոխանցում է տվյալները: Ներբեռնումն ավարտելուց հետո այն կարող է ավտոմատ կերպով անջատել ինտերնետ կապը, գործարկել արտաքին ծրագիր, անջատել համակարգիչը և այլն:

Րագիրը ներկայացված է երկու հրատարակությամբ. ReGet Deluxe և ReGet Deluxe Personal, վերջինս չունի բազմալեզու աջակցություն և նախատեսված է միայն տնային համակարգչում օգտագործելու համար: Կոմունալը կարող է աշխատել երեք ռեժիմներից մեկում. Պարզեցված (դրանում գործում են միայն հիմնական գործառույթները), առաջադեմ և փորձագիտական \u200b\u200bռեժիմ, նրանց միջեւ անցումն իրականացվում է հիմնական ընտրացանկի հրամանների միջոցով:

Անվճար ներբեռնման մենեջեր 3.0 կառուցել 848

Կառուցապատող: Անվճար բեռնում մենեջեր. ORG

Բաշխման չափը: 6,39 ՄԲ

Աշխատել վերահսկողության տակ. Windows 9x / Me / 2000/2003 / XP / Vista (միայն 32-բիթանոց տարբերակներ)

Բաշխման եղանակը. անվճար ծրագիր (http://freedownloadmanager.org/download.htm)

Գինը անվճար է

Free Download Manager- ը լիարժեք և շատ հարմար ներբեռնման մենեջեր է, որը թույլ է տալիս ներբեռնել ֆայլեր (ներառյալ ըստ ժամանակացույցի) FTP և HTTP սերվերներից, անվտանգ վեբ (HTTPS) սերվերներից, ինչպես նաև ֆայլերի հայտնի պահեստներից և վիդեո ծառայություններից (YouTube, Google Video և այլն): և այլն): Հնարավոր է միաժամանակյա բեռնաթափում մի քանի «հայելիներից»: Վիդեո բովանդակությունը ներբեռնելու դեպքում հնարավոր է ինքնաբերաբար փոխակերպել FLV ֆայլերը այլ վիդեո ձևաչափերի ՝ ներկառուցված վիդեոդոդագրիչի միջոցով: ZIP արխիվների մասնակի ներբեռնում, BitTorrent ցանցի և ամբողջ կայքերի միջոցով ֆայլեր ներբեռնում ՝ հետագայում անցանց դիտելու համար: Կա նաև Վերբեռնման հատուկ կառավարիչ, որը թույլ է տալիս ֆայլեր վերբեռնել առցանց WikiFortio պահեստում (http://www.wikifortio.com/), որտեղ մինչև 100 ՄԲ ֆայլեր կարող են պահվել մինչև մեկ ամիս:

Րագիրը ինտեգրվում է բոլոր ամենատարածված զննարկիչներին (և առանց հավելումներ տեղադրելու անհրաժեշտության) և վերահսկում է clipboard- ը: Կայքի հատուկ զննարկիչը թույլ է տալիս դիտել կայքի պանակի կառուցվածքը ՝ հեշտացնելով ներլցնել ձեր ուզած տվյալները: Երթևեկության սահմանափակումն իրականացվում է ձեռքով ՝ ընտրելով երեք նախադրված ռեժիմներից մեկը, հնարավոր է ավտոմատ կերպով նվազեցնել ալիքի բեռը, երբ դիտարկվում է զննարկչի գործունեությունը: Մի քանի ֆայլ կարող է ներբեռնվել միաժամանակ. Յուրաքանչյուրը մի քանի հոսքերում, միաժամանակ ներբեռնված ֆայլերի քանակը կարգավորվում է: Ներբեռնված ֆայլերը կարող են բաշխվել տարբեր պանակների մեջ ՝ հաշվի առնելով օգտագործողի կողմից նշված կատեգորիաները, իսկ հատուկ ներբեռնումների համար թույլատրվում է սահմանափակումներ դնել ալիքի օգտագործման վրա: Anyանկացած ֆայլ ներբեռնելուց առաջ հեշտ է ստուգել դրա չափը: Ներբեռնումն ավարտելուց հետո ծրագիրը կարող է ավտոմատ կերպով կտրել ինտերնետ կապը և անջատել համակարգիչը: Ներբեռնումների հեռակառավարումը թույլատրվում է:

Րագիրը ներկայացված է երկու հրատարակությամբ. Ստանդարտ Free Download Manager և թեթև քաշի Free Download Manager Lite: Վերջինս չունի աջակցություն BitTorrent արձանագրությանը, ինչպես նաև չունի ներկառուցված տեսանյութերի փոխարկիչ և սերվերներ ֆայլեր վերբեռնելու կառավարիչ: Երկու հրատարակություններն էլ ունեն դյուրակիր տարբերակը ձայնագրելու ֆունկցիոնալություն, որը տեղադրման կարիք չունի և կարող է գրվել ֆլեշ կրիչի կամ արտաքին կրիչի վրա:

Orbit Downloader 2.8.13

Կառուցապատող OrbitDownloader

Բաշխման չափը: 2.17 ՄԲ

Աշխատել վերահսկողության տակ. Windows NT / 2000 / XP / 2003 / Vista

Բաշխման եղանակը. անվճար ծրագիր (http://www.orbitdownloader.com/download.htm)

Գինը անվճար է

Orbit Downloader- ը շատ հեշտ օգտագործման համար է, բայց բավականին ֆունկցիոնալ և հարմար ներբեռնման մենեջեր `սոցիալական ծառայությունների ընդլայնված աջակցությամբ: Այն թույլ է տալիս ներբեռնել ոչ միայն ֆայլեր FTP և HTTP, այլև բոլոր տեսակի հոսքային ֆլեշ, վիդեո և աուդիո բովանդակություն RTSP / MMS / RTMP պրոտոկոլների միջոցով MySpace, YouTube, Imeem, Pandora և այլ նմանատիպ ծառայություններից: Հնարավոր է ֆայլեր ներբեռնել ֆայլերի բաժանման ծառայություններից (ներառյալ Rapidshare, MegaUpload, 4shared, Depositfiles և այլն), ինչպես նաև ներբեռնել Metalink տեխնոլոգիայի միջոցով, ինչը թույլ է տալիս ներբեռնել առանձին հատվածներ ցանցերից գրեթե ցանկացած արձանագրությամբ: Սոցիալական ծառայություններից մեդիա բովանդակության ներբեռնումն իրականացվում է այս օգտակար ծառայության մեջ ՝ ներկառուցված Grab ++ մոդուլի միջոցով, որն աշխատում է միայն Internet Explorer- ի ներքո: Ավելին, ներբեռնման տեխնոլոգիան էապես տարբերվում է ներբեռնման այլ մենեջերներում ընդունվածից. Եթե սովորաբար ընդունված է, որ ներբեռնման մենեջերը պարզապես նշում է հղում, ինչպիսին է http: //www.youtube.com/watch? V \u003d .., ապա Grab ++ մոդուլը որոշում է ուղղակի հղումը, երբ մկնիկի ցուցիչը սավառնում եք ցանկալի տեսանյութը իր դիտման պատուհանում:

Րագիրն ինտեգրվում է հանրաճանաչ զննարկիչների մեջ, և տեղադրման ընթացքում կազմաձևվում է անհրաժեշտ զննարկիչների աջակցությունը: Երթևեկության սահմանափակումն իրականացվում է ձեռքով ՝ կարգավորումների միջոցով: Միաժամանակ կարելի է ներբեռնել մի քանի ֆայլ. Յուրաքանչյուրը մի քանի հոսքերում, հոսքերի քանակը կարգավորվում է, ինչպես նաև կարող եք փոխել հոսքերի քանակը մեկ ներբեռնման համար: Ներբեռնելուց առաջ հնարավոր չէ նշել ֆայլի չափը, ինչպես նաև մասամբ ներբեռնել ZIP արխիվը, բայց կարող եք դիտել ZIP ֆայլի պարունակությունը `այն ներբեռնելուց առաջ: Ներբեռնման արագության բարձրացումը ձեռք է բերվում ոչ միայն բազմաթելքային, այլև Orbitnet տեխնոլոգիայի օգտագործման հիման վրա, որը հիմնված է P2P- ի և «հայելիների» ավտոմատ որոնման վրա: Արդեն ներբեռնված ֆայլերը տարբեր պանակներում վերաբաշխելը դժվար չէ: Երբ ներբեռնումն ավարտված է, ծրագիրը կարող է զննել վիրուսների ֆայլը ներկառուցված հակավիրուսով, ավտոմատ կերպով անջատել ինտերնետ կապը և անջատել համակարգիչը:

FlashGet 1.9.6

Կառուցապատող: Trend Media Corporation Ltd

Բաշխման չափը: 4,43 ՄԲ

Աշխատել վերահսկողության տակ.Windows (բոլոր տարբերակները)

Բաշխման եղանակը. անվճար ծրագիր (http://www.flashget.com/hy/download.htm?uid\u003dundefined)

Գինը անվճար է

FlashGet- ը, հավանաբար, աշխարհի ամենատարածված ֆայլերի ներբեռնման մենեջերն է, որն ունի զարգացման ամենաերկար պատմությունը: Այսօր այս օգտակարությունը դեռևս ուշադրության է արժանի իր հարմարավետության, օգտագործման դյուրինության և ներբեռնման բարձր արագության շնորհիվ, բայց դրա ֆունկցիոնալությունը չի համապատասխանի բոլոր օգտվողներին, քանի որ դրա մեծ մասը սահմանափակվում է միայն հիմնական հնարավորություններով: FlashGet- ը թույլ է տալիս ներբեռնել ֆայլեր HTTP / FTP / MMS / RTSP արձանագրությունների միջոցով և բավականին ճիշտ է ճանաչում Rapidshare- ի հղումները: Այնուամենայնիվ, ընդհանուր առմամբ, ֆայլերի հոստինգի ծառայության հետ աշխատելիս կարող են խնդիրներ առաջանալ, և տեսահոլովակի հոստինգի կայքերից տեսանյութեր ներբեռնելը, ընդհանուր առմամբ, անհնար է, ինչպես նաև ZIP արխիվների մասնակի ներբեռնում: Միևնույն ժամանակ, կոմունալ ծառայության վերջին տարբերակը հնարավորություն ունի ներբեռնելու BitTorrent և eMule արձանագրությունների միջոցով, ինչը չի տրամադրվում յուրաքանչյուր ներբեռնման մենեջերում:

FlashGet- ը կարող է ինտեգրվել հանրաճանաչ բրաուզերների, որոնցից ոմանց համար անհրաժեշտ է հավելվածներ ապահովել: Ներկառուցված FTP և HTTP զննարկիչները հեշտացնում են ձեր ուզած ֆայլերը: Միացման օպտիմալ արագությունը պարամետրերում նշվում է կապի տեսակը սահմանելով. Հնարավոր է ձեռքով կարգավորել երթևեկության սահմանափակումները `ընտրելով երեք նախադրված ռեժիմներից մեկը: Ներբեռնված ֆայլերը կարող են բաշխվել տարբեր պանակների ՝ օգտագործողի կողմից նշված կատեգորիաների հիման վրա: Ապահովում է «հայելիներ» -ի ավտոմատ որոնում և ամենաարագ և մատչելի սերվերներից ներբեռնումների իրականացում: Նշված ժամանակահատվածում ներբեռնումը տեղադրելը դժվար չէ, և ավարտելուց հետո ծրագիրը կարող է սկանավորել վիրուսների ֆայլերը և անջատել կապը:

ReGet կրտսեր 2.2

Կառուցապատող ReGet Software

Բաշխման չափը: 1,66 ՄԲ

Աշխատել վերահսկողության տակ. Windows 95/98 / Me / NT / 2000 / XP

Բաշխման եղանակը. shareware (30 օր ցուցադրություն - http://download.reget.com/regetjr.exe)

Գինը250 ռուբլի

ReGet Junior- ը սկսնակների համար ամենահեշտ ներբեռնման մենեջերն է: Կոմունալն ունի նվազագույն ֆունկցիոնալություն, և դրա գրավչությունը կայանում է միայն նրանում, որ ձեզ հարկավոր չէ սկզբունքորեն գործ ունենալ կարգավորումների հետ: Այն թույլ է տալիս ֆայլեր ներբեռնել FTP և HTTP սերվերներից և ինտեգրվել ամենատարածված զննարկիչներին: Ներբեռնումն իրականացվում է մի քանի հոսքերում, և մի քանի ֆայլ կարող է ներբեռնվել միաժամանակ: հոսքերի և միաժամանակ ներբեռնված ֆայլերի քանակը չի կարգավորվում:

Եզրակացություն

Այսպիսով, տարբեր մշակողների ներբեռնման մենեջերների ֆունկցիոնալությունը շատ նման է. Նրանք բոլորը ապահովում են ցանցից ֆայլերի հուսալի և արագ ներբեռնում: Հետևաբար, շատ տնային օգտվողների համար, ովքեր աշխատում են ամենատարածված Windows բրաուզերում, բավական է ձեռք բերել մեկ անվճար գործիք այս խնդիրը լուծելու համար, օրինակ ՝ Download Master, Free Download Manager, ReGet Deluxe (անձնական հրատարակությամբ) կամ Orbit Downloader: Տեսականորեն, բոլորը կարող են ներբեռնել բոլոր տեսակի տեղեկություններ, այդ թվում ՝ Rapidshare.com- ի նման սերվերներից ֆայլեր և, բացառությամբ ReGet Deluxe- ի, հոսքային ֆլեշ, վիդեո և աուդիո բովանդակություն YouTube- ից և այլ սոցիալական ծառայություններից: Այնուամենայնիվ, վիդեո և ֆլեշ ֆիքսելու հնարավորությունն առավել լիարժեքորեն իրականացվում է Orbit Downloader- ում, ինչը արժե ուշադրություն դարձնել այս տեսակի բովանդակությունը ներբեռնելու սիրահարներին: Ինչ վերաբերում է FlashGet- ին, ապա, մեր կարծիքով, դրա վրա խաղադրույք կատարելն այնքան էլ իմաստ չունի `վերոնշյալ ծրագրերից զիջող ֆունկցիոնալության պատճառով:

Google Chrome- ի և Apple Safari- ի օգտագործողների ընտրությունն ավելի համեստ է. Նրանք ստիպված կլինեն օգտագործել Download Master- ը, Free Download Manager- ը կամ Orbit Downloader- ը, քանի որ մնացած ներբեռնման մենեջերները չեն աջակցում համապատասխան զննարկիչներին: Պետք է հիշել, որ նրանք չեն կարողանա օգտագործել սոցիալական ծառայություններից Orbit Downloader- ին ներլցնող մեդիա բովանդակությունը, քանի որ այն գործում է միայն Internet Explorer- ի ներքո:

5.6. Բեռնման հոսքի խտացում

Քննարկելով սեղմման, միաձուլման, պահման և զուգահեռ կապեր ստեղծելու մեթոդները, խելամիտ կլիներ տարակուսել հետևյալ հարցով. Էջի ո՞ր մասը պետք է բեռնված լինի հիմնական HTML ֆայլով, և որը միայն արտաքին ֆայլերով:

Թեստային միջավայրը հավաքվել է մեկ էջի տեսքով, որի համար կիրառվել են օպտիմալացման տարբեր մեթոդներ (միևնույն ժամանակ, կամայական էջ բեռնելու համար ձեռք է բերվել իրական արագացում և ցույց է տրվել, թե ինչպես են այս բոլոր տեխնիկաներն իրականում ազդում էջի բեռնման արագության վրա):

Բացի այդ, կատարվել են տեսական հաշվարկներ `ըստ փուլերի բեռի օպտիմալ բաշխումը որոշելու համար` հաշվի առնելով բոլոր ասպեկտները:

Boost Your Site- ի գրքից հեղինակ Մացիեւսկի Նիկոլայ

Ստորև բերված են մեկ վերցված էջի օպտիմալացման բոլոր արդյունքները: Ներբեռնումը փորձարկվել է 100 Կբ / վրկ կապի վրա, բնօրինակ օբյեկտների ընդհանուր քանակը. 23. Քայլի համարը Նկարագրություն Ընդհանուր չափը (կբ) Ներբեռնման ժամանակը (մգ) 1 Նորմալ էջ: Ոչինչ չի սեղմվել

Iptables ձեռնարկից 1.1.19 Անդրեասոն Օսկարի կողմից

EMBEDDED SYSTEMS SOFTWARE գրքից: Մշակման և փաստաթղթավորման ընդհանուր պահանջներ հեղինակ Ռուսաստանի Գոսստանդարտ

Linux օգտագործողի գրքից հեղինակ Կոստրոմին Վիկտոր Ալեքսեեւիչ

2.4.3. Բեռնման տարբերակներ Այսպիսով, իմ կարծիքով, բեռնման տարբերակի ընտրությունը հետևյալն է. Եթե դուք ունեք տեղադրված Windows NT կամ Windows 2000, ապա օգտագործեք NT Loader: Եթե \u200b\u200bFAT16- ի վրա ունեք Windows 95 կամ Windows 98, և չեք ցանկանում տեղադրել bootloader ծրագիրը մեկ այլ OS- ից կամ

Համացանցի համար 200 լավագույն ծրագրերի գրքից: Հանրաճանաչ ձեռնարկ հեղինակ Կրայինսկի Ի

8.2. Linux Boot Procedure Նախ, հարկ է նշել, որ այն ամենը, ինչ նկարագրված կլինի այս բաժնում, վերաբերում է Red Hat բաշխմանը և դրա անալոգներին: Այլ տարածումների վրա (օրինակ `Debian) բեռնման ընթացակարգերը կարող են այլ կերպ կազմակերպվել:

Աստղանիշ book. Հեռախոսակապի ապագան, երկրորդ հրատարակություն գրքից հեղինակ Մեգգելեն Jimիմ Վան

Ներբեռնման մենեջերներ Ոչինչ չի զայրացնում ինտերնետ օգտագործողներին, ինչպիսիք են ներբեռնման դանդաղ արագությունները: Այս խնդիրը լուծելու տարբեր եղանակներ կան: Կարող եք օգտագործել տարբեր բրաուզերներ և ընտրել ամենաարագը կամ գումար խնայել և գնել թանկարժեք մոդեմ, որը վստահ կլինի

TCP / IP ectարտարապետություն, Արձանագրություններ, Իրականացում (ներառյալ IP տարբերակ 6 և IP անվտանգություն) գրքից Ֆեյթ Սիդնի Մ

Արձանագրությունը, որն օգտագործվում է Polycom հեռախոսները վերբեռնելու համար, կարող է վերբեռնել իրենց կազմաձևերը ՝ օգտագործելով երեք արձանագրություններից մեկը ՝ TFTP, HTTP և FTP: Մենք կցանկանայինք խնդրել, որ անմիջապես խուսափեք TFTP- ից: Այն չի ապահովում անհրաժեշտ անվտանգություն, և հեռախոսը չի կարող օգտագործել ամսաթվի տեղեկատվությունը

Macintosh- ի ձեռնարկը գրքից հեղինակ Skrylina Sophia

11.11 Բեռնման պարամետրեր Աղյուսակ 11.1 պարամետրերը կարող են պարունակվել BOOTP կամ DHCP պատասխաններում, իսկ Աղյուսակ 11.2 պարամետրերը կարող են օգտագործվել միայն DHCP Աղյուսակ 11.2 DHCP պարամետրերում Լրացուցիչ պարամետրեր միայն DHCP- ի համար Հայցվող IP հասցեով Հաճախորդը պահանջվել է

Սկսած Windows- ի 7-րդ գրքից `սկսնակների ուղեցույց հեղինակ Կոլիչնիչենկո Դենիս Ն.

4.1.6. Ներլցումների թղթապանակ Էլ. Փոստի վերնագրում գտնվող «Պահել» կոճակը սեղմելով ավտոմատ կերպով պահում է կցված ֆայլերը օգտագործողի տան թղթապանակում գտնվող «Ներլցումներ» պանակում (նկ. 4.21): Այն կարող է բացվել ինչպես պատուհանի ցանկացած թղթապանակ

Linux գրքից. Ամբողջական ուղեցույց հեղինակ Կոլիչնիչենկո Դենիս Նիկոլաեւիչ

2.4.4. DVD- ից boot- ը միացնելը Windows- ի տեղադրման սկավառակից գործարկելու համար հարկավոր է փոխել բեռնման կարգը BIOS- ի կարգաբերման մեջ (այնպես, որ համակարգը DVD- ից վերաբեռնվի, ոչ թե կոշտ սկավառակի): Կայուն համակարգչի դեպքում BIOS- ի կարգավորում մտնելու համար սովորաբար բավական է սեղմել ստեղնը անմիջապես,

Adobe Flash գրքից: ActionScript- ով ստեղծեք արկադներ, հանելուկներ և այլ խաղեր հեղինակ Ռոզենցվայգ Գարի

9.1.2. Շարունակեք բեռնելը: Init daemon Միջուկը բեռնվելու պահից համակարգի bootstrap գործընթացը վերահսկվում է հենց համակարգի կողմից: Առաջինը, որը կստանա վերահսկողություն, միջուկի ինքնագործարկման ռեժիմն է: Այն որոշում է մատչելի RAM- ի քանակը, պրոցեսորի տեսակը և արագությունը,

«Ինչպե՞ս խթանել և գովազդել ինտերնետային կայք ինտերնետից» գրքից հեղինակ Umագումենով Ալեքսանդր Պետրովիչ

Բեռնվում է էկրանը Չնայած դուք միշտ պետք է ձգտեք ֆայլի վերջնական չափը հնարավորինս փոքր պահել, բայց, ամենայն հավանականությամբ, կունենաք տեսանյութեր, որոնց բեռնումը տևում է մի քանի վայրկյանից ավելի, մոդեմ օգտագործելիս: Եթե \u200b\u200bխաղի չափը հարյուրավոր կիլոբայթ է, ապա որոշ օգտվողներ

Linux գրքից հակերների աչքերով հեղինակ Ֆլենով Միխայիլ Եվգենիևիչ

Էջի բեռնման ժամանակը Կայքի էջերի դանդաղ բեռնումը հաճախ զայրացնում է օգտվողներին և, որպես արդյունք, նվազեցնում է սերվերի երթևեկությունը: Չցանկանալով ժամանակ սպանել ՝ շատ մարդիկ նախընտրում են տեղեկատվություն փնտրել այլ աղբյուրներում: Հետեւաբար, չափազանց կարևոր է նյութեր չխնայել

Windows 10. Գաղտնիքները և սարքը գրքից հեղինակ Ալմամետով Վլադիմիր

3.2.4. Բեռնման հետաքրքիր պարամետրերը Հաշվի առեք մի քանի ֆայլ, որոնք, չնայած աննշանորեն, ազդում են բեռնման վրա: Նախքան գաղտնաբառի հուշումը կհայտնվի, էկրանին ցուցադրվում են տեքստի տեղեկատվությունը և բացատրությունը: Ամենից հաճախ մշակողը այստեղ գրում է բաշխման անվանումը

Հեղինակի գրքից

10.3.2. Ֆայլերի վերբեռնումների վերահսկում Ֆայլերի վերբեռնումը սերվերի համար ամենավտանգավոր հնարավորությունն է: Յուրաքանչյուր օգտագործողի պետք է թույլ տրվի մուտք ունենալ միայն իր սեփական գրացուցակում: Ի՞նչ անել, որպեսզի անանուն օգտվողները կարողանան աշխատել նաև ֆայլերի հետ: Այս պարագայում պետք է


Նախքան սկսեք ուսումնասիրել C ֆայլային համակարգը, դուք պետք է հասկանաք, թե ինչ տարբերություն կա հոսքեր և ֆայլեր... C I / O համակարգը պահպանում է մեկ ինտերֆեյս ծրագրերի համար, որոնք կախված չեն այն բանից, թե որ սարքին են հասանելի: Այսինքն ՝ այս համակարգում ծրագրի և սարքի միջև ավելի շատ բան կա, քան հենց ինքը: Նման ընդհանրացված մուտքային կամ ելքային սարքը (աբստրակցիայի ավելի բարձր մակարդակի սարք) կոչվում է հոսք, մինչդեռ որոշակի սարքը կոչվում է ֆայլ... (Այնուամենայնիվ, ֆայլը նաև վերացական հասկացություն է:) Շատ կարևոր է հասկանալ, թե ինչպես են հոսքերը և ֆայլերը փոխազդում:

Հոսքեր

C ֆայլային համակարգը նախատեսված է աշխատելու մի շարք տարբեր սարքերի, այդ թվում ՝ տերմինալների, սկավառակների և ժապավենների հետ: Նույնիսկ եթե սարքը շատ տարբեր է մյուսներից, բուֆերային ֆայլային համակարգը այն դեռ կներկայացնի որպես տրամաբանական սարք, որը կոչվում է հոսք: Բոլոր թելերը նույն կերպ են վարվում: Եվ քանի որ դրանք հիմնականում անկախ են ֆիզիկական սարքերից, նույն գործառույթը, որը գրում է սկավառակի ֆայլ, կարող է կատարել նույն գործողությունը մեկ այլ սարքի վրա, օրինակ `մխիթարիչ: Հոսքերը գալիս են երկու համով ՝ տեքստային և երկուական:

Տեքստի հոսքեր

Տեքստի հոսք նիշերի հաջորդականություն է: C ստանդարտը ենթադրում է, որ տեքստի հոսքը կազմակերպվում է որպես գծեր, որոնցից յուրաքանչյուրն ավարտվում է նոր տողի բնույթով: Այնուամենայնիվ, վերջին տողի վերջում այս նիշը պարտադիր չէ: Նիշերի որոշակի վերափոխումներ կարող են առաջանալ տեքստի հոսքում, ինչպես պահանջում է հիմքում ընկած միջավայրը: Օրինակ, նոր տողի նիշը կարող է փոխարինվել փոխադրման զույգի և գծի հոսքի նիշով: Հետեւաբար, գրված (կարդացած) նիշերի և արտաքին սարքում պահված կերպարների միջև չի կարող լինել մեկ առ մեկ համապատասխանություն: Բացի այդ, այն նիշերի քանակը, որոնք գրված են (կարդում են) և նրանց, որոնք պահվում են արտաքին սարքում, կարող են նաև չհամընկնել հնարավոր փոխարկումների պատճառով:

Երկուական հոսքեր

Երկուական հոսք բայթերի հաջորդականություն է, որը մեկ առ մեկ է արտաքին սարքի բայթերի հետ, և նիշերի վերափոխում տեղի չի ունենում: Բացի այդ, գրված (կարդացված) և արտաքին սարքում պահված բայթերի քանակը նույնն է: Այնուամենայնիվ, դիմումի կողմից սահմանված զրոյական բայթերի քանակը կարող է կցվել երկուական հոսքի ավարտին: Օրինակ, այդպիսի զրոյական բայթը կարող է օգտագործվել հիշողության բլոկում ազատ տարածություն աննշան տեղեկատվությամբ լրացնելու համար, որպեսզի այն ճշգրիտ լրացնի սկավառակի հատվածը:

Ֆայլեր

C- ում ֆայլը կարող է լինել սկավառակի ֆայլից վերջացրած տերմինալ կամ տպիչ: Հոսքը կապված է որոշակի ֆայլի հետ ՝ կատարելով գործողություն հայտնագործություններ... Ֆայլը բացելուց հետո կարող եք տեղեկատվություն փոխանակել դրա և ծրագրի միջև:

Բայց ոչ բոլոր ֆայլերն ունեն նույն հնարավորությունները: Օրինակ, սկավառակի ֆայլը կարող է ուղղակիորեն մուտք գործվել, մինչդեռ որոշ տպիչներ `ոչ: Այսպիսով, մենք հասանք մեկ կարևոր սկզբունքի, որը կապված է C I / O համակարգին. Բոլոր հոսքերը նույնն են, բայց ֆայլերը ՝ ոչ:

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

Ֆայլը անջատվում է որոշակի հոսքից (այսինքն ՝ ֆայլի և հոսքի միջև կապը խզված է) ՝ օգտագործելով գործողությունը փակումը... Արտադրանքի համար բացված ֆայլը փակելիս ՝ կապված հոսքի պարունակությունը (առկայության դեպքում) գրվում են արտաքին սարքում: Այս գործընթացը, որը սովորաբար կոչվում է լրացուցիչ ձայնագրություն հոսքը, ապահովում է, որ ոչ մի տեղեկատվություն պատահաբար չմնա սկավառակի բուֆերում: Եթե \u200b\u200bծրագիրը նորմալ է գործում, կա՛մ հիմնական () գործողությունը վերադառնում է գործավար համակարգին, կա՛մ ելքը () է զանգահարվում, ապա բոլոր ֆայլերն ավտոմատ փակվում են: Anրագրի աննորմալ դադարեցման դեպքում, օրինակ ՝ վիժեցնելու կամ դադարեցնելու դեպքում ՝ կոչ անելով (), ֆայլերը չեն փակվում:

Ֆայլի հետ կապված յուրաքանչյուր հոսք ունի կառավարման կառուցվածք, որը պարունակում է տեղեկատվություն ֆայլի մասին. այն FILE տիպի է: Դրանում ֆայլերի կառավարման միավոր երբեք ոչինչ չփոխել:

Եթե \u200b\u200bդուք նոր եք ծրագրավորման մեջ, ապա հոսքերի և ֆայլերի տարբերակումը կարող է թվալ ավելորդ կամ նույնիսկ «խելացի»: Այնուամենայնիվ, հիշեք, որ այս տարբերակման հիմնական նպատակը մեկ ինտերֆեյս տրամադրելն է: Բոլոր I / O- ի համար օգտագործեք միայն հոսքեր և օգտագործեք միայն մեկ ֆայլային համակարգ: Յուրաքանչյուր սարքից մուտքը կամ ելքը I / O համակարգի միջոցով ավտոմատ կերպով վերափոխվում է հեշտությամբ կառավարվող հոսքի:

Կամ բուֆերի հարկադիր թողարկում (բովանդակություն).
Ֆայլերի կառավարման բլոկ - գործարկման համակարգի կողմից ժամանակավորապես հատկացված հիշողության փոքր բլոկ ՝ օգտագործման համար բացված ֆայլի մասին տեղեկատվությունը պահելու համար: Ֆայլերի կառավարման բլոկը սովորաբար պարունակում է տեղեկություններ ֆայլի նույնացուցիչի, սկավառակի վրա գտնվելու վայրի և ֆայլի ընթացիկ դիրքի ցուցիչի մասին:
Եթե, իհարկե, չեք նախագծում I / O համակարգ:

1.1. Հոսքի սահմանում

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

  • գործարկվող գործառույթի կոդը;
  • պրոցեսորների գրանցումների մի շարք;
  • դիմումի բուրգը;
  • օպերացիոն համակարգի բուրգը;
  • մուտքի նշան, որը պարունակում է տեղեկատվություն անվտանգության համակարգի համար:

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

Windows- ի օպերացիոն համակարգերում կա երկու տեսակի թելեր.

  • համակարգի թելեր;
  • հարմարեցված հոսքեր:

Համակարգի թելեր իրականացնել տարբեր օպերացիոն համակարգի ծառայություններ և գործարկվում են օպերացիոն համակարգի միջուկով:

Պատվերով հոսքեր ծառայում են օգտագործողների խնդիրները լուծելու համար և գործարկվում են հավելվածի կողմից:

Գործարկվող ծրագրում կան երկու տեսակի թելեր.

  • աշխատանքային թելեր;
  • օգտագործողի ինտերֆեյսի թեմաներ

Բանվորական թելեր կիրառման մեջ կատարել տարբեր ֆոնային առաջադրանքներ: Օգտագործողի միջերեսի թեմաներ կապված են պատուհանների հետ և մշակում են այդ պատուհանները ստացված հաղորդագրությունները: Յուրաքանչյուր դիմում կոչվում է առնվազն մեկ թեմա առաջնային (առաջնային) կամ Գլխավոր հիմնական (հիմնական) թել: Վահանակների ծրագրերում սա այն թելն է, որն իրականացնում է գործառույթը հիմնական... GUI հավելվածներում սա այն թելն է, որն իրականացնում է գործառույթը WinMain.

Հոսքը ստեղծվում է ֆունկցիայի միջոցով Ստեղծել թեմա

գործառույթ Ստեղծել թեմա(
lpThreadAttributes: interուցանիշ; // անվտանգության հատկանիշներ
dwStackSize: DWORD; // հոսքի պարկի չափը բայթերում
lpStartAddress: TFNThreadStartRoutine; // գործառույթի հասցե
lp Պարամետր ՝ ցուցիչ; // պարամետրի հասցե
dwCreationFlags: DWORD; // հոսքի ստեղծման դրոշներ
var lpThreadId: DWORD // թելի ID
): Thandle;

Հաջողության վրա ՝ գործառույթը Ստեղծել թեմա վերադարձնում է բռնակը ստեղծված թեմային և դրա նույնացուցիչին, որն ամբողջ համակարգի մեջ եզակի է: Հակառակ դեպքում, այս գործառույթը վերադարձնում է արժեքը զրո.

Պարամետրերի նշանակում

lpThreadAttributes

Պարամետր lpThreadAttributes սահմանում է ստեղծված հոսքի անվտանգության հատկանիշները: Քանի դեռ մենք չենք իմանալու Windows- ի անվտանգության մասին, մենք կսահմանենք այս պարամետրի արժեքները զրո երբ զանգահարում են Windows միջուկի գրեթե բոլոր գործառույթները: Այս դեպքում դա նշանակում է, որ գործառնական համակարգն ինքնին կտեղադրի թելային պաշտպանության հատկանիշները ՝ օգտագործելով լռելյայն պարամետրերը:

Պարամետր dwStacksize որոշում է դեղի չափը, որը հատկացված է թեմային գործարկման ժամանակ: Եթե \u200b\u200bայս պարամետրը զրոյական է, ապա շարանը հատկացվում է մի տուփ, որի լռելյայն չափը ՝ 1 ՄԲ... Սա կույտի ամենափոքր չափն է, որը կարող է հատկացվել թելին: Եթե \u200b\u200bպարամետրի արժեքը dwStacksize լռելյայն արժեքից պակաս, թեմային դեռ հատկացված է մի բուրգ 1 ՄԲ... Windows- ի գործառնական համակարգը կլորացնում է բուրգերի չափը մինչև մեկ էջի հիշողություն, որը սովորաբար լինում է 4 ԿԲ.

Պարամետր lpStartAddress ցույց է տալիս շարանը կատարվող գործառույթը:

Տեսանելի է, որ մեկ պարամետր կարող է փոխանցվել հոսքի գործառույթին lp Պարամետր, որը ցուցիչ է դատարկ տիպի: Այս սահմանափակումը բխում է այն փաստից, որ թելի գործառույթը կանչվում է օպերացիոն համակարգի կողմից, այլ ոչ թե կիրառման: Օպերացիոն համակարգի ծրագրերը գործարկվող մոդուլներ են, ուստի պետք է կանչեն միայն այն գործառույթները, որոնց ստորագրությունը նախորոշված \u200b\u200bէ: Հետեւաբար, հոսքերի համար սահմանվել է ամենապարզ պարամետրերի ցուցակը, որը պարունակում է միայն ցուցիչ: Քանի որ թեմայի գործառույթները կանչվում են օպերացիոն համակարգի կողմից, դրանք կոչվում են նաև հետադարձ կապի գործառույթներ.

Պարամետր dwCreationFiags որոշում է, թե որ վիճակում է ստեղծվելու թելը: Եթե \u200b\u200bայս պարամետրի արժեքը 0 է, ապա թեմայի գործառույթը սկսում է գործել անմիջապես շարանը ստեղծվելուց հետո: Եթե \u200b\u200bայս պարամետրի արժեքը կազմում է ՍՏԵ_ԵԼՈՒ ՀԱՄԱՐ, ապա շարանը ստեղծվում է կասեցված վիճակում: Ավելի ուշ այս շարանը կարող է սկսվել ՝ գործառույթը կանչելով ResumeThread.

Պարամետր lpThreadId արտադրանք է, այսինքն, այն սահմանվում է Windows- ի կողմից: Այս պարամետրը պետք է մատնանշի մի փոփոխական, որի մեջ Windows- ը կտեղադրի թելի ID- ն: Այս նույնացուցիչը եզակի է ամբողջ համակարգի համար և հետագայում կարող է օգտագործվել հոսքին հղում կատարելու համար: Թելի ID- ն հիմնականում օգտագործվում է համակարգի գործառույթների, և հազվադեպ ՝ կիրառման գործառույթների կողմից: Հոսքի նույնացուցիչը վավեր է միայն հոսքի ողջ կյանքի ընթացքում: Թելի ավարտից հետո նույն նույնացուցիչը կարող է նշանակվել մեկ այլ թեմայի:

Երբ ստեղծվում է թեմա, դրա հիմնական առաջնահերթությունը դրվում է որպես գործընթացի առաջնահերթության հանրագումար, որի համատեքստում գործում է այս թեմա THREAD_PRIORITY_NORMAL.

1.1 ցուցակը ցույց է տալիս մի օրինակ ծրագիր, որն օգտագործում է գործառույթը Ստեղծել թեմա թեմա ստեղծելու համար և ցույց է տալիս, թե ինչպես փոխանցել պարամետրերը թեմայի կողմից կատարված գործառույթին:

Listուցակ 1.1. Ստեղծեք գործառույթով հոսք Ստեղծել թեմա

Createրագրի ստեղծում Threadd; ($ APPTYPE CONSOLE) օգտագործում է SysUtils, Windows; var n: Ամբողջ թիվ \u003d 0; ներառյալ ՝ ամբողջ թիվ \u003d 10; hThread: HWND; IDThread: DWORD; կարգի ավելացում (iNum: interուցանիշ); stdcall; սկսել Writeln («Թեման սկսված է»); n: \u003d n + ամբողջ թիվ (iNum ^); Writeln («Թելն ավարտված է»); վերջ; սկսել Writeln («n \u003d», n); // սկսել շարանը Ավելացնել hThread: \u003d CreateThread (զրոյական, 0, @ Ավելացնել, @inc, 0, IDThread); // Սպասեք Ավելացնել թեմայի ավարտին WaitForSingleObject (hThread, INFINITE); // փակել թելի բռնակը Ավելացնել CloseHandle (hThread); Writeln («n \u003d», n); Կարդալ վերջ

Նշենք, որ այս ծրագիրն օգտագործում է գործառույթը WaitForSingleObject- ըորը սպասում է թելի ավարտին Ավելացնել.

Թելը ավարտվում է ֆունկցիայի զանգով ExitThread- ըորն ունի հետևյալ նախատիպը.

ընթացակարգ ExitThread- ը(
dwExitCode ՝ DWORD // թելի ավարտի ծածկագիր
); stdcall;

Այս գործառույթը կարելի է անվանել և՛ բացահայտ, և՛ անուղղակիորեն հոսքի գործառույթից արժեք վերադարձնելիս: Երբ այս գործառույթը կատարվում է, համակարգը հաղորդագրություն է ուղարկում գործընթացով բեռնված դինամիկ գրադարաններին DLL_THREAD_DETACH, ինչը ցույց է տալիս, որ շարանը գոյություն ունի:

Մի թեմա կարող է դադարեցնել մեկ այլ թեմա ՝ գործառույթը կանչելով Վերջնաթել

գործառույթ Վերջնաթել(
hThread: Thandle; // հոսքի նկարագրիչ
dwExitCode: DWORD; // թելի ավարտի ծածկագիր
): ԱՇԽԱՐՀ; stdcall;

Հաջողության դեպքում գործառույթը Վերջնաթել վերադարձնում է ոչ զրո, հակառակ դեպքում - ԿԵ... Գործառույթը Վերջնաթել ավարտում է շարանը, բայց չի ազատում այդ շղթային պատկանող բոլոր ռեսուրսները: Դա պայմանավորված է նրանով, որ երբ այս գործառույթը կատարվում է, համակարգը հաղորդագրություն չի ուղարկում դինամիկ գրադարաններին, որոնք բեռնված են շղթայի ավարտման գործընթացով բեռնված: Արդյունքում, դինամիկ հղումների գրադարանը չի ազատում այն \u200b\u200bռեսուրսները, որոնք առգրավվել են այս թեմայով աշխատելու համար: Հետեւաբար, այս գործառույթը պետք է կանչվի միայն արտակարգ իրավիճակներում, երբ թելը կախված է:

1.2 ցուցակը ցույց է տալիս մի ծրագիր, որը ցույց է տալիս, թե ինչպես է գործում գործառույթը: Վերջնաթել.

Termրագրի ավարտը ($ APPTYPE CONSOLE) օգտագործում է SysUtils, Windows; var հաշվարկ. կարդինալ \u003d 0; hThread: HWND; IDThread: DWORD; գ ՝ Չար; b1: Բուլյան \u003d ueիշտ է; ընթացակարգի թեմա; stdcall; var b2: Բուլյան; սկսել b2: \u003d իշտ է; մինչ b2- ն իսկապես սկսում է հաշվել. \u003d հաշվել + 1; Քուն (100); // մի փոքր հանգստանալ; վերջ; start hThread: \u003d Ստեղծել Thhread (զրոյական, 0, @ թել, զուլ, 0, IDThread); մինչ b1- ն իսկապես սկսում է գրել («Մուտք» «y» »՝ հաշվարկը կամ ավարտելու համար ցանկացած փայտանյութ ցուցադրելու համար."); Readln (գ); եթե c \u003d "y" ապա Writeln ("հաշվել \u003d", հաշվել) ուրիշ Break; վերջ; // ընդհատել թելի կատարման շարանը TerminateThread (hThread, 0); // փակել թելի բռնակը CloseHandle (hThread); վերջ

Ստեղծված յուրաքանչյուր թեմա ունի դադարների հաշվարկ, որի առավելագույն արժեքն է MAXIMUM_SUSPEND_COUNT... Դադարի հաշվիչը ցույց է տալիս, թե քանի անգամ է շարանը դադարեցվել: Թելը կարող է գործարկվել միայն այն դեպքում, երբ կասեցման հաշվիչը զրո է: Հակառակ դեպքում, շարանը չի կատարվում կամ ասում են, որ այն կասեցված վիճակում է: Յուրաքանչյուր թեմայի կատարումը կարող է կասեցվել գործառույթի զանգով Կասեցնել Threadորն ունի հետևյալ նախատիպը.

գործառույթ Կասեցնել Thread(
hThread ՝ Թանդլ // հոսքի նկարագրիչ
): DWORD; stdcall;

Այս գործառույթը կասեցված հաշվիչը ավելացնում է 1-ով և հաջողության դեպքում վերադարձնում է այդ հաշվիչի ընթացիկ արժեքը: Ձախողման մասին, գործառույթը Կասեցնել Thread վերադարձնում է -1-ին հավասար արժեք:

Նկատի ունեցեք, որ թելը կարող է նաև կասեցնել իրեն: Դա անելու համար նա պետք է փոխանցի գործառույթները Կասեցնել Thread ձեր կեղծ-նկարագրիչը, որը կարելի է ձեռք բերել գործառույթի միջոցով GetCurrentThread- ը.

Թելի կատարումը վերսկսելու համար օգտագործեք գործառույթը ResumeThreadորն ունի հետևյալ նախատիպը.

գործառույթ ResumeThread(
hThread ՝ Թանդլ // հոսքի նկարագրիչ
): DWORD; stdcall;

Գործառույթը ResumeThread կասեցված հաշվարկը 1-ով նվազեցնում է, պայմանով, որ արժեքը մեծ լինի զրոյից: Եթե \u200b\u200bդադարների հաշվիչի ստացված արժեքը 0 է, ապա թելի կատարումը վերսկսվում է, հակառակ դեպքում շարանը մնում է կասեցված վիճակում: Եթե \u200b\u200bգործառույթը զանգահարելիս ResumeThread դադարների հաշվարկը 0 էր, ինչը նշանակում է, որ շարանը չի կասեցվում: Այս դեպքում գործառույթը ոչինչ չի ձեռնարկում: Հաջողության վրա ՝ գործառույթը ResumeThread վերադարձնում է դադարի հաշվարկի ընթացիկ արժեքը, հակառակ դեպքում `-1:

Թելը կարող է հետաձգել դրա կատարումը ՝ գործառույթ կանչելով Քնելորն ունի հետևյալ նախատիպը.

ընթացակարգ Քնել(
dwMilliseconds: DWORD // միլիվայրկյան
); stdcall;

Ֆունկցիայի միակ պարամետրը Քնել որոշում է միլիվայրկյանների քանակը, որի համար այս գործառույթը կոչող թելը դադարեցնում է դրա կատարումը: Եթե \u200b\u200bայս պարամետրի արժեքը 0 է, ապա թեմայի կատարումը պարզապես ընդհատվում է և այնուհետև վերսկսվում, պայմանով, որ պրոցեսորի ժամանակի բաշխմանը այլ թելեր չկան: Եթե \u200b\u200bայս պարամետրի արժեքը կազմում է ԱՆՎINԱՐ, ապա շարանը ընդմիշտ դադարեցնում է դրա կատարումը, ինչը հանգեցնում է հավելվածի արգելափակմանը:

1.3 ցուցակը ցույց է տալիս մի ծրագիր, որը ցույց է տալիս, թե ինչպես են գործում գործառույթները: Կասեցնել Thread, ResumeThread և Քնել.

// SuspendThread, ResumeThread և Sleep գործառույթների SuspendThreadd ծրագրի գործարկման օրինակ; ($ APPTYPE CONSOLE) օգտագործում է SysUtils, Windows; var n Հաշվարկ ՝ կարդինալ \u003d 0; dwCount: DWORD; hThread: HWND; IDThread: DWORD; գ ՝ Չար; բ ՝ բուլյան \u003d ճշմարիտ; ընթացակարգի թեմա; stdcall; սկսեք, մինչ բ-ն սկսվում է n Հաշվարկ: \u003d n Հաշիվ + 1; Քուն (100); // դադար տալ շարանը 100 միլիվայրկյան վերջի համար; վերջ; start hThread: \u003d Ստեղծել Thhread (զրոյական, 0, @ թել, զուլ, 0, IDThread); մինչ b- ն սկսվում է Writeln- ը («Մուտք.»); Writeln (թիվ 9, "" "n" "դուրս գալու համար"); Writeln (թիվ 9, "" "y" "հաշվարկը ցուցադրելու համար"); Writeln (# 9, "" "s" "շարանը կասեցնելու համար"); Writeln (# 9, "" "r" "շարանը վերսկսելու համար"); Readln (գ); «n» - ի գ. ընդմիջում; "y": Writeln ("հաշվել \u003d", n Հաշիվ); "s": start // կասեցնել շարանը thread dwCount: \u003d SuspendThread (hThread); Writeln («Թելը կասեցնում է հաշվարկը \u003d", dwCount); վերջ; "r": սկսել // վերակենդանացնել շարանը թեմա dwCount: \u003d ResumeThread (hThread); Writeln («Թելը կասեցնում է հաշվարկը \u003d", dwCount); վերջ; վերջ; վերջ; // ընդհատել թեմայի կատարման շարանը TerminateThread (hThread, 0); // փակել թելի բռնակը CloseHandle (hThread); վերջ

Երբեմն շարանը պետք է իմանա իր նկարագրիչը ՝ դրա որոշ բնութագրերը փոխելու համար: Օրինակ ՝ շարանը կարող է փոխել իր առաջնահերթությունը: Այս նպատակների համար Win32 API- ն ունի գործառույթ GetcurrentThreadորն ունի հետևյալ նախատիպը.

գործառույթ GetCurrentThread- ը: Թանդլ; stdcall;

և վերադարձնում է կեղծ նկարագրիչ ընթացիկ շղթայի համար: Ներկայիս թեմայի կեղծ-նկարագրիչը տարբերվում է իրական թեմայի նկարագրողից նրանով, որ այն կարող է օգտագործվել միայն ընթացիկ շղթայի կողմից, և հետևաբար կարող է ժառանգվել այլ գործընթացներով: Հոսքի կեղծ-նկարագրիչը օգտագործելուց հետո անհրաժեշտ չէ փակել: Կեղծ հոսքի նկարագրիչից կարող եք ստանալ իրական հոսքի նկարագրիչը, դրա համար անհրաժեշտ է կրկնօրինակել կեղծ նկարագրիչը ՝ գործառույթը կանչելով Կրկնօրինակեք բռնակ.

1.4 ցուցակը ցույց է տալիս մի ծրագրի նմուշ, որը կոչ է անում գործառույթը GetCurrentThread- ը, ապա տպում է արդյունքում գոյացած կեղծ-նկարագրիչը վահանակում:

// GetcurrentThread ֆունկցիայի աշխատելու օրինակ GetCurrentThreadd ծրագիրը; ($ APPTYPE CONSOLE) օգտագործում է SysUtils, Windows; var hThread: HWND; սկսել // ստանալ ընթացիկ շղթայի կեղծ-նկարագրիչը hThread: \u003d GetCurrentThread; // ստացեք Writeln- ի (hThread) ընթացիկ թեմայի կեղծ-նկարագրիչը; Կարդալ վերջ

Win32 API գործառույթների մեծ մասը վերադարձնում է ծածկագիր, որը պատմում է ձեզ ՝ գործառույթը հաջողությամբ ավարտված է, թե ոչ: Եթե \u200b\u200bգործառույթը ձախողվում է, ապա վերադարձի կոդը սովորաբար լինում է կեղծ, զրո կամ -1: Այս դեպքում Win32 API գործառույթը սահմանում է նաև ներքին սխալի կոդ, որը կոչվում է վերջին սխալի կոդը (վերջին սխալի ծածկագիր) և պահպանվում է յուրաքանչյուր թեմայի համար առանձին: Վերջին սխալի կոդը ստանալու համար հարկավոր է զանգահարել գործառույթը GetLastErrorորն ունի հետևյալ նախատիպը.

գործառույթ GetLastError: DWORD; stdcall;

Այս գործառույթը վերադարձնում է հոսքի վրա դրված վերջին սխալի կոդը: Դուք կարող եք գործառույթի միջոցով հոսքում տեղադրել վերջին սխալի կոդը SetLastErrorհետևյալ նախատիպով.

ընթացակարգ SetLastError(
dwErrCode: DWORD // սխալի կոդ
); stdcall;

Վերջին սխալի ծածկագրին համապատասխան հաղորդագրություն ստանալու համար անհրաժեշտ է օգտագործել գործառույթը FormatMessageորն ունի հետևյալ նախատիպը.

գործառույթ FormatMessage(
dwFlags: DWORD; // ձևաչափման ռեժիմներ
lpSource: Poուցանիշ; // հաղորդագրության աղբյուր
dwMessageId: DWORD; // հաղորդագրության id
dwLanguageId: DWORD; // լեզվի նույնացուցիչ
lpBuffer` PChar; // հաղորդագրության բուֆեր
n Չափ: DWORD; // հաղորդագրության բուֆերի առավելագույն չափ
Փաստարկներ ՝ ցուցիչ // արժեքի ցուցակ, որը պետք է տեղադրվի հաղորդագրության մեջ
): DWORD; stdcall;

1.5 ցուցակը ցույց է տալիս մի ծրագրի նմուշ, որը կոչ է անում գործառույթը FormatMessage

Erրագրի ErrorMessageBoxx; ($ APPTYPE CONSOLE) օգտագործում է SysUtils, Windows; var hHandle: Thandle; ընթացակարգ ErrorMessageBox; var lpMsgBuf: PChar; սկսել FormatMessage (FORMAT_MESSAGE_ALLOCATE_BUFFER կամ FORMAT_MESSAGE_FROM_SYSTEM կամ FORMAT_MESSAGE_IGNORE_INSERTS, զուլ, GetLastError, 0, @lpMsgBuf, 0, զրոյական); MessageBox (0, lpMsgBuf, "Error Win32 API", MB_OK կամ MB_ICONINFORMATION); // Անվճար բուֆեր LocalFree (ամբողջ թիվ (lpMsgBuf)); վերջ; // թեստ ՝ վահանակին սխալի հաղորդագրության արտանետման գործառույթի համար hHandle: \u003d 0; // սխալ զանգեր գործառույթին նկարագրիչը փակելու համար, եթե ոչ CloseHandle (hHandle) ապա ErrorMessageBox; վերջ

Ներբեռնեք աղբյուրի կոդը: Դելֆի XE.

Օգտագործված գրականություն. Ալեքսանդր Պոբեգայլո «Համակարգային ծրագրավորում Windows- ում»

Պատահական հոդվածներ

Վերև