Hvis du har en dual core eller en multipel processor maskine, så kan du kompilere dine programmer meget hurtigere end på en enkelt processor maskine. Jeg vil vise, hvordan du kan sammensætte din en Linux-kerne på din Debian-maskine dobbelt så hurtigt ved at indstille concurrency-niveau.

For eksempel har vi i en af mine tidligere indlæg set hvordan man måle mængden af tid et bestemt program tager at udføre. I dette eksempel, så vi tog det omkring 10 minutter at udarbejde en tilpasset 2.6.28-kerne på en AMD64 Anthlon Dual core maskinen:

# time make-kpkg –append-to-version=-test kernel_image

real 10m58.707s
user 9m38.700s
sys 1m12.013s

Men i ovenstående eksempel, var jeg ikke effektivt ved hjælp af magt af begge processorer. Jeg gav simpelthen standard "make-kpkg" kommando til at kompilere kernen.

Lad os nu se, hvordan vi kan drage fordel af vores dual-core maskiner og gemme os nogle værdifulde tid.

# set CONCURRENCY_LEVEL=2
# export CONCURRENCY_LEVEL=2
# time make-kpkg –append-to-version=-test kernel_image

og her kommer den bedste del - resultaterne:

real 5m28.433s
user 4m18.320s
sys 1m13.276s

Som vi kan se fra ovenstående resultater, vi var i stand til at kompilere den samme kerne på samme maskine i halvdelen af ​​tiden - cirka 5 minutter.

Hvordan finder vi ud af, hvad CONCURRENCY_LEVEL nummer?

Nogle mennesker siger, at du skal indstille niveauet til: Antallet af processorer på din maskine + 1, og nogle siger, at du skal indstille den til: Antallet af processorer i din maskine. Jeg personligt bruger senere.

For at finde ud af antallet af processorer i din maskine, skal du give følgende kommando:

# grep -c ^processor /proc/cpuinfo
2

og derefter kan du indstille concurrency niveau uanset er outputtet af ovenstående kommando. I mit tilfælde er det "2".

Nu hvad hvis du er bruger til at kompilere dine programmer / Linux kerne med den klassiske "gøre" kommando, og du ønsker at gøre brug af concurrency-niveau. I så fald kan du nemt bruge "-j" flaget som dette:

# make -j2 bzImage

Håber dette vil hjælpe dig med at spare tid.

Være selskabelig, Del!