Computer ydeevne - Computer performance
I computing er computerens ydeevne den mængde nyttigt arbejde, der udføres af et computersystem . Uden for specifikke sammenhænge estimeres computerens ydeevne med hensyn til nøjagtighed, effektivitet og hastighed ved udførelse af computerprograminstruktioner . Når det kommer til høj computerydelse, kan en eller flere af følgende faktorer være involveret:
- Kort responstid for et givet stykke arbejde.
- Høj kapacitet (hastighed på forarbejdningsarbejde).
- Lav udnyttelse af databehandlingsressource (r).
- Hurtig (eller meget kompakt) datakomprimering og dekompression.
- Høj tilgængelighed af computersystemet eller applikationen.
- Høj båndbredde .
- Kort datatransmissionstid .
Tekniske og ikke-tekniske definitioner
Ydeevnen for ethvert computersystem kan evalueres i målbare, tekniske termer ved hjælp af en eller flere af ovenstående metrics. På denne måde kan forestillingen være
- Sammenlignet med andre systemer eller det samme system før / efter ændringer
- I absolutte tal, f.eks. Til opfyldelse af en kontraktlig forpligtelse
Mens ovennævnte definition vedrører en videnskabelig, teknisk tilgang, ville følgende definition givet af Arnold Allen være nyttig for et ikke-teknisk publikum:
Ordet ydeevne i computerydelse betyder det samme, som ydeevne betyder i andre sammenhænge, det vil sige det betyder "Hvor godt udfører computeren det arbejde, den skal udføre?"
Som et aspekt af softwarekvalitet
Computersoftware ydeevne, især softwareprogram responstid, er et aspekt af software kvalitet , der er vigtig i human-computer interaktion .
Performance engineering
Performance engineering inden for systems engineering omfatter sæt af roller, færdigheder, aktiviteter, praksis, værktøjer og leverancer anvendt i hver fase af systemudviklingens livscyklus, hvilket sikrer, at en løsning vil blive designet, implementeret og operationelt understøttet til at opfylde præstationskravene defineret for løsningen.
Performance engineering beskæftiger sig løbende med afvejninger mellem typer performance. Lejlighedsvis kan en CPU-designer finde en måde at skabe en CPU med bedre overordnet ydeevne ved at forbedre et af de aspekter af ydeevne, der præsenteres nedenfor, uden at ofre CPU's ydeevne på andre områder. For eksempel at opbygge CPU'en ud af bedre, hurtigere transistorer .
Men nogle gange skubber én type ydelse til en ekstrem fører til en CPU med dårligere samlede præstation, fordi andre vigtige aspekter blev ofret for at få en imponerende udseende nummer, for eksempel, at chippens klokfrekvensen (se megahertz myte ).
Application performance engineering
Application Performance Engineering (APE) er en specifik metode inden for performance engineering designet til at imødekomme de udfordringer, der er forbundet med applikationsydelse i stadig mere distribuerede mobile, sky- og jordbaserede it-miljøer. Det inkluderer de roller, færdigheder, aktiviteter, praksis, værktøjer og leverancer, der anvendes i hver fase af applikationens livscyklus, der sikrer, at en applikation vil blive designet, implementeret og operationelt understøttet til at opfylde ikke-funktionelle ydelseskrav.
Aspekter af ydeevne
Computerens ydeevne metrics (ting at foranstaltning) indbefatter tilgængelighed , svartid , kanalkapacitet , latenstiden , færdiggørelse tid , tjenesten tid , båndbredde , gennemløb , relative effektivitet , skalerbarhed , ydeevne per watt , kompressionsforhold , instruktion banelængde og hastighed op . CPU- benchmarks er tilgængelige.
Tilgængelighed
Tilgængeligheden af et system måles typisk som en faktor for dets pålidelighed - når pålideligheden øges, øges tilgængeligheden (det vil sige mindre nedetid ). Tilgængeligheden af et system kan også øges med strategien om at fokusere på at øge testbarhed og vedligeholdelse og ikke på pålidelighed. Forbedring af vedligeholdelsesevne er generelt lettere end pålidelighed. Skøn over vedligeholdelsesevne (reparationshastigheder) er også generelt mere nøjagtige. Men fordi usikkerheden i pålidelighedsestimaterne i de fleste tilfælde er meget store, vil det sandsynligvis dominere tilgængelighedsproblemet (forudsigelsesusikkerhed), selvom vedligeholdelsesniveauerne er meget høje.
Responstid
Svartid er den samlede tid, det tager at svare på en anmodning om service. I computing kan denne service være en hvilken som helst arbejdsenhed fra en simpel disk IO til indlæsning af en kompleks webside . Svartiden er summen af tre tal:
- Servicetid - hvor lang tid det tager at udføre det ønskede arbejde.
- Ventetid - Hvor længe anmodningen skal vente på anmodninger i kø foran den, før den kommer til at køre.
- Transmissionstid - Hvor lang tid tager det at flytte anmodningen til computeren, der udfører arbejdet, og svaret tilbage til anmoderen.
Behandlingshastighed
De fleste forbrugere vælger en computerarkitektur (normalt Intel IA32- arkitektur) for at kunne køre en stor base af allerede eksisterende, præ-kompileret software. At være relativt uinformeret om computerbenchmarks, vælger nogle af dem en bestemt CPU baseret på driftsfrekvens (se megahertz-myten ).
Nogle systemdesignere, der bygger parallelle computere, vælger CPU'er baseret på hastigheden pr. Dollar.
Kanal kapacitet
Kanalkapacitet er den tætteste øvre grænse for informationshastigheden , der på en pålidelig måde kan transmitteres over en kommunikationskanal . Ved den støjende kanal kodning sætning er kanal kapaciteten for en given kanal den begrænsende informationshastighed (i enheder af information pr. Tidsenhed), der kan opnås med vilkårligt lille fejlsandsynlighed.
Informationsteori , udviklet af Claude E. Shannon under Anden Verdenskrig , definerer begrebet kanalkapacitet og giver en matematisk model, hvor man kan beregne den. Nøgleresultatet angiver, at kanalens kapacitet, som defineret ovenfor, gives af det maksimale af den gensidige information mellem input og output fra kanalen, hvor maksimeringen er med hensyn til inputfordelingen.
Reaktionstid
Latency er en tidsforsinkelse mellem årsagen og effekten af en fysisk ændring i systemet, der observeres. Ventetid er et resultat af den begrænsede hastighed, hvormed enhver fysisk interaktion kan finde sted. Denne hastighed er altid lavere eller lig med lysets hastighed. Derfor vil ethvert fysisk system, der har rumlige dimensioner, der er forskellige fra nul, opleve en eller anden form for latenstid.
Den nøjagtige definition af latens afhænger af det system, der observeres, og stimuleringens art. I kommunikation bestemmes den nedre latensgrænse af mediet, der bruges til kommunikation. I pålidelige tovejskommunikationssystemer begrænser latenstiden den maksimale hastighed, som information kan transmitteres, da der ofte er en grænse for mængden af information, der er "under flyvning" på et øjeblik. Inden for interaktion mellem menneske og maskine har mærkbar latenstid (forsinkelse mellem det, som brugeren kommanderer, og når computeren leverer resultaterne) en stærk effekt på brugertilfredshed og brugervenlighed.
Computere kører sæt instruktioner kaldet en proces. I operativsystemer kan udførelsen af processen udsættes, hvis andre processer også udføres. Derudover kan operativsystemet planlægge, hvornår den handling, som processen befaler, skal udføres. Antag for eksempel, at en proces kommanderer, at et computerkorts spændingsoutput skal indstilles høj-lav-høj-lav og så videre med en hastighed på 1000 Hz. Operativsystemet kan vælge at justere planlægningen af hver overgang (høj-lav eller lav-høj) baseret på et internt ur. Latensen er forsinkelsen mellem procesinstruktionen, der befaler overgangen, og den hardware, der faktisk overgår spændingen fra høj til lav eller lav til høj.
Systemdesignere, der bygger computersystemer i realtid, vil garantere worst-case respons. Det er lettere at gøre, når CPU'en har lav afbrydelseslatens, og når den har deterministisk respons.
Båndbredde
I computernetværk er båndbredde en måling af bithastigheden af tilgængelige eller forbrugte datakommunikationsressourcer, udtrykt i bits pr. Sekund eller multipla af det (bit / s, kbit / s, Mbit / s, Gbit / s osv.).
Båndbredde definerer undertiden nettobitfrekvensen (alias peakbithastighed, informationshastighed eller nyttigt fysisk bithastighed), kanalkapacitet eller den maksimale gennemstrømning af en logisk eller fysisk kommunikationssti i et digitalt kommunikationssystem. For eksempel måler båndbreddetest den maksimale kapacitet i et computernetværk. Årsagen til denne anvendelse er, at ifølge Hartleys lov er den maksimale datahastighed for et fysisk kommunikationsforbindelse proportionalt med dets båndbredde i hertz, som undertiden kaldes frekvensbåndbredde, spektral båndbredde, RF-båndbredde, signalbåndbredde eller analog båndbredde.
Gennemstrømning
Generelt er kapacitet produktionshastigheden eller den hastighed, hvormed noget kan behandles.
I kommunikationsnetværk er kapacitet i det væsentlige synonymt med digitalt båndbreddeforbrug. I trådløse netværk eller cellulære kommunikationsnetværk er systemets spektrale effektivitet i bit / s / Hz / arealeenhed, bit / s / Hz / sted eller bit / s / Hz / celle den maksimale systemgennemstrømning (samlet gennemstrømning) divideret med analog båndbredde og et vist mål for systemets dækningsområde.
I integrerede kredsløb har ofte en blok i et dataflowdiagram en enkelt input og en enkelt output og fungerer på diskrete informationspakker. Eksempler på sådanne blokke er FFT- moduler eller binære multiplikatorer . Fordi gennemstrømningsenhederne er den gensidige enhed for udbredelsesforsinkelse , som er 'sekunder pr. Besked' eller 'sekunder pr. Output', kan gennemstrømning bruges til at relatere en beregningsenhed, der udfører en dedikeret funktion, såsom en ASIC eller integreret processor, til en kommunikationskanal, der forenkler systemanalyse.
Relativ effektivitet
Skalerbarhed
Skalerbarhed er evnen hos et system, netværk eller proces til at håndtere en voksende mængde arbejde på en dygtig måde eller dets evne til at blive udvidet til at rumme den vækst
Strømforbrug
Mængden af elektrisk strøm, der bruges af computeren ( strømforbrug ). Dette bliver især vigtigt for systemer med begrænsede strømkilder såsom sol, batterier, menneskelig strøm.
Ydeevne pr. Watt
Systemdesignere, der bygger parallelle computere , såsom Googles hardware , vælger CPU'er baseret på deres hastighed pr. Watt strøm, fordi omkostningerne ved strømforsyning til CPU'en opvejer omkostningerne ved selve CPU'en.
For rumfartscomputere er behandlingshastigheden pr. Watt-forhold et mere nyttigt præstationskriterium end rå behandlingshastighed.
Kompressions forhold
Komprimering er nyttig, fordi den hjælper med at reducere ressourceforbrug, såsom datalagringsplads eller transmissionskapacitet. Da komprimerede data skal dekomprimeres for at blive brugt, medfører denne ekstra behandling beregnings- eller andre omkostninger gennem dekompression. denne situation er langt fra at være en gratis frokost. Datakomprimering er underlagt en kompromis mellem kompleksitet mellem rum og tid.
Størrelse og vægt
Dette er en vigtig præstationsfunktion i mobile systemer, fra de smarttelefoner, du har i lommen til de bærbare indlejrede systemer i et rumfartøj.
Miljømæssig påvirkning
Virkningen af en computer eller computere på miljøet under produktion og genbrug såvel som under brug. Der tages målinger med det formål at reducere affald, reducere farlige materialer og minimere en computers økologiske fodaftryk .
Transistorantal
Transistorantalet er antallet af transistorer på et integreret kredsløb (IC). Transistorantal er det mest almindelige mål for IC-kompleksitet.
Benchmarks
Fordi der er så mange programmer til at teste en CPU på alle aspekter af ydeevne, blev der udviklet benchmarks .
De mest berømte benchmarks er SPECint og SPECfp benchmarks udviklet af Standard Performance Evaluation Corporation og Certification Mark benchmark udviklet af Embedded Microprocessor Benchmark Consortium EEMBC .
Test af softwareydelse
Inden for softwareteknik udføres ydelsestest generelt test for at bestemme, hvordan et system fungerer med hensyn til lydhørhed og stabilitet under en bestemt arbejdsbyrde. Det kan også tjene til at undersøge, måle, validere eller verificere andre kvalitetsattributter i systemet, såsom skalerbarhed, pålidelighed og ressourceforbrug.
Performance-test er en delmængde af performance engineering, en ny computervidenskabspraksis, der stræber efter at bygge performance i implementering, design og arkitektur af et system.
Profilering (præstationsanalyse)
I softwareteknik er profilering ("programprofilering", "softwareprofilering") en form for dynamisk programanalyse , der f.eks. Måler pladsen (hukommelsen) eller tidskompleksiteten i et program , brugen af bestemte instruktioner eller frekvens og varighed af funktionsopkald. Den mest almindelige brug af profilering oplysninger er at støtte programmet optimering .
Profilering opnås ved at instrumentere enten programkildekoden eller dens binære eksekverbare form ved hjælp af et værktøj kaldet en profil (eller kodeprofiler ). En række forskellige teknikker kan bruges af profilere, såsom begivenhedsbaserede, statistiske, instrumenterede og simuleringsmetoder.
Performance tuning
Performance tuning er forbedringen af systemets ydeevne. Dette er typisk en computerapplikation, men de samme metoder kan anvendes på økonomiske markeder, bureaukratier eller andre komplekse systemer. Motivationen for en sådan aktivitet kaldes et præstationsproblem, som kan være reel eller forventet. De fleste systemer reagerer på øget belastning med en vis grad af faldende ydeevne. Et systems evne til at acceptere en højere belastning kaldes skalerbarhed , og at ændre et system til at håndtere en højere belastning er synonymt med præstationsindstilling.
Systematisk tuning følger disse trin:
- Vurdér problemet, og opret numeriske værdier, der kategoriserer acceptabel adfærd.
- Mål systemets ydeevne før ændring.
- Identificer den del af systemet, der er kritisk for at forbedre ydelsen. Dette kaldes flaskehalsen .
- Rediger den del af systemet for at fjerne flaskehalsen.
- Mål systemets ydeevne efter ændring.
- Hvis ændringen forbedrer ydeevnen, skal du vedtage den. Hvis ændringen forværrer ydeevnen, skal du sætte den tilbage på den måde, den var.
Oplevet ydeevne
Oplevet ydeevne i computerteknologi henviser til hvor hurtigt en softwarefunktion ser ud til at udføre sin opgave. Konceptet gælder først og fremmest bruger accept aspekter.
Den tid, et program tager at starte op, eller en fil at downloade, gøres ikke hurtigere ved at vise en startskærm (se skærmbilledet Splash) eller en dialogboks til filforløb. Det tilfredsstiller dog nogle menneskelige behov: det ser hurtigere ud for brugeren samt giver et visuelt signal til at fortælle dem, at systemet håndterer deres anmodning.
I de fleste tilfælde øger den øgede reelle ydeevne den opfattede ydeevne, men når den reelle ydeevne ikke kan øges på grund af fysiske begrænsninger, kan teknikker bruges til at øge den opfattede præstation.
Ydelsesligning
Den samlede tid ( t ), der kræves for at gennemføre et bestemt benchmark-program, er
- eller tilsvarende
hvor
- er "forestillingen" med hensyn til tid til udførelse
- er antallet af instruktioner, der faktisk er udført ( instruktionens længde ). Den kode tæthed af instruktionssættet kraftigt påvirker N . Værdien af N kan enten bestemmes nøjagtigt ved hjælp af en instruktionssæt-simulator (hvis tilgængelig) eller ved estimering - selv baseret delvis på estimeret eller faktisk frekvensfordeling af inputvariabler og ved at undersøge genereret maskinkode fra en HLL- kompilator. Det kan ikke bestemmes ud fra antallet af linjer i HLL-kildekoden. N påvirkes ikke af andre processer, der kører på den samme processor. Det væsentlige punkt her er, at hardware normalt ikke holder styr på (eller i det mindste gør det let tilgængeligt) en værdi på N for udførte programmer. Værdien kan derfor kun bestemmes nøjagtigt ved hjælp af instruktionssæt-simulering, som sjældent praktiseres.
- er urfrekvensen i cyklusser pr. sekund.
- er de gennemsnitlige cyklusser pr. instruktion (CPI) for dette benchmark.
- er den gennemsnitlige instruktion pr. cyklus (IPC) for dette benchmark.
Selv på en maskine kan en anden kompilator eller den samme kompilator med forskellige kompilatoroptimeringsskifter ændre N og CPI — benchmarket udføres hurtigere, hvis den nye kompilator kan forbedre N eller C uden at gøre den anden værre, men ofte er der en kompromis imellem dem - er det for eksempel bedre at bruge et par komplicerede instruktioner, der tager lang tid at udføre, eller at bruge instruktioner, der udføres meget hurtigt, selvom det kræver flere af dem at udføre benchmark?
En CPU-designer er ofte påkrævet for at implementere et bestemt instruktionssæt , og kan derfor ikke ændre N. Nogle gange fokuserer en designer på at forbedre ydeevnen ved at foretage betydelige forbedringer i f (med teknikker som dybere rørledninger og hurtigere cacher), mens (forhåbentlig) ikke ofrer for meget C - hvilket fører til et hastigheds-dæmon- CPU-design. Nogle gange fokuserer en designer på at forbedre ydeevnen ved at foretage betydelige forbedringer i CPI (med teknikker som udførelse uden ordre , superscalar CPU'er, større cacher, cacher med forbedret hitrate, forbedret grenforudsigelse , spekulativ udførelse osv.), Mens ( forhåbentlig) ikke ofrer for meget urfrekvens - hvilket fører til et brainiac CPU-design. For et givet instruktions sæt (og derfor fast N) og halvlederproces kræver den maksimale ydelse med en tråd (1 / t) en balance mellem brainiac-teknikker og speedracer-teknikker.
Se også
- Algoritmisk effektivitet
- Computerydelse efter størrelsesordener
- Netværkets ydeevne
- Forsinkelsesorienteret processorarkitektur
- Optimering (datalogi)
- RAM-opdateringshastighed
- Komplet instruktions sæt
- Hardware acceleration
- Speedup
- Politik for udskiftning af cache
Referencer
- ^ Computerpræstationsanalyse med Mathematica af Arnold O. Allen, Academic Press, 1994. $ 1.1 Indledning, s. 1.
- ^ Måleprograms lighed: Eksperimenter med SPEC CPU Benchmark Suites , CiteSeerX 10.1.1.123.501
- ^ Wescott, Bob (2013). The Every Computer Performance Book, kapitel 3: Nyttige love . CreateSpace . ISBN 1482657759.
- ^ Saleem Bhatti. "Kanal kapacitet" . Forelæsningsnotater til M.Sc. Datakommunikationsnetværk og distribuerede systemer D51 - Grundlæggende kommunikation og netværk . Arkiveret fra originalen den 21.08.2007.
- ^ Jim Lesurf. "Signaler ligner støj!" . Information og måling, 2. udg .
- ^ Thomas M. Cover, Joy A. Thomas (2006). Elementer af informationsteori . John Wiley & Sons, New York.
- ^ "Arkiveret kopi" . Arkiveret fra originalen den 2005-03-27 . Hentet 21-01-2009 .CS1 maint: arkiveret kopi som titel ( link )[1]
- ^ DJ Shirley; og MK McLelland. "Den næste generation SC-7 RISC Rumflyvecomputer" . s. 2.
- ^ a b Paul DeMone. "Den utrolige skrumpende CPU". 2004. [2] Arkiveret 2012-05-31 på Wayback Machine
- ^ "Brainiacs, Speed Demons, and Farewell" af Linley Gwennap