|  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programvara
  • Adobe Illustrator
  • animation Software
  • antivirusprogram
  • ljudprogram
  • Säkerhetskopiera data
  • Bränn CD-skivor
  • Bränn DVD
  • Data Compression
  • Database Software
  • Desktop Publishing
  • Desktop Video
  • Digital Video Software
  • Drupal
  • Educational Software
  • Engineering Software
  • Filtillägg Typer
  • Financial Software
  • Freeware , Shareware & Abandonware
  • GIMP
  • Graphics Software
  • Home Recording Software
  • Microsoft Access
  • Microsoft Excel
  • Microsoft Publisher
  • Microsoft Word
  • Open Source Code
  • Andra datorprogram
  • PC-spel
  • Photoshop
  • Portable Document Format
  • PowerPoint
  • presentationsprogram
  • Produktivitet Software
  • quicktime
  • Remote Desktop Management
  • SQL Server
  • Skype
  • Programvara betaversioner
  • Programvara Konsulter
  • Software Development Companies
  • Software Licensing
  • Spreadsheets
  • Skatt förberedelse programvara
  • Utility Software
  • Web Clip Art
  • Windows Media Player
  • Ordbehandlingsprogram
  • Facebook
  • Twitter
  • Instagram
  • LinkedIn
  • TikTok
  • WhatsApp
  • WordPress
  • Chrome
  • Discord
  • Amazon
  • * Dator Kunskap >> Programvara >> Produktivitet Software >> Content

    Vad är skillnaden mellan Caller Save och Callee -register när det gäller deras påverkan på programföreställningens effektivitet?

    Skillnaden mellan samtalssparade och callee-sparade register påverkar programprestanda och effektivitet avsevärt, främst genom omkostnaden för att spara och återställa registervärden under funktionssamtal.

    samtalssparade register (även känd som flyktiga register):

    * Definition: Dessa register är ansvaret för uppringaren (Funktionen som ringer) för att bevara om deras värden behövs efter Callee (funktionen som kallas) returnerar.

    * Mekanism: Innan du ringer en funktion, om de som ringer har viktiga värden lagrade i anropssparta register, måste det trycka dessa värden på stacken (eller spara dem någon annanstans i minnet). Efter att Callee har återvänt kan den som ringer tillbaka de sparade värdena tillbaka till dessa register.

    * Påverkan på prestanda:

    * overhead på samtalsplatsen: Uppringningsbesparade register leder till omkostnader vid samtalsfunktionen. Varje samtal kan kräva tryck- och poppande register, även om Callee faktiskt inte använder dessa register.

    * potentiellt mindre overhead om Callee är enkel: Om Callee är liten och inte behöver använda många register, kanske den som ringer inte behöver spara någonting, vilket gör samtalet relativt effektivt. Den som ringer sparar bara register att det vet att det behöver * och * Callee kan potentiellt klyffa.

    * Lämplig för kortlivade värden: Bra för variabler som bara behöver leva över ett litet räckvidd, eftersom att spara/återställa blir mindre oroande.

    * Exempel: I många x86-64 som kallar konventioner (som System V AMD64 ABI), registrerar register som `rax`,` rcx`, `rdi`,` rsi`, `r8`,` r9`, `r10`,` r11` (och floating-punktsregister som `xmm0-mmm15` på vissa system).

    Callee-sparade register (även känd som icke-flyktiga register):

    * Definition: Dessa register är ansvaret för calle (funktionen som kallas) för att bevara. Om Callee vill använda dem måste den spara sina ursprungliga värden i början av funktionen och återställa dem innan de återvänder.

    * Mekanism: Callee skjuter de ursprungliga värdena på dessa register på bunten i början av dess körning. Innan han återvänder, dyker Callee dessa värden tillbaka i registren och återställer dem effektivt till sitt ursprungliga tillstånd.

    * Påverkan på prestanda:

    * overhead inom Callee: Callee-sparade register introducerar overhead inom Callee-funktionen. Varje callee som använder dessa register måste utföra sparande och återställa, oavsett vad som ringer gör.

    * bättre för Callee med många register: Om Callee behöver många register kan man använda Callee-sparade register vara mer effektiva än uppringda register. Den som ringer är garanterad att dessa register kommer att bevaras utan att behöva göra någonting.

    * Lämplig för långlivade värden: Bra för variabler som behöver leva över en stor funktionsomfång, eftersom omkostnaden för att spara/återställa amorteras över den längre varaktigheten för deras användning.

    * Exempel: I x86-64-systemet V AMD64 ABI registrerar som `rbx`,` rsp`, `rbp`,` r12`, `r13`,` r14`, `r15` callee callee. `RSP` är speciell (stackpekare) och` RBP` (baspekare) används ofta för stackramhantering och felsökning.

    Nyckelskillnader och prestationskonsekvenser:

    | Funktion | Uppringningsbesparade register | Callee-sparade register |

    | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

    | Ansvar | Uppringare för att spara och återställa om det behövs innan du ringer en funktion. | Callee för att rädda och återställa om de används av Callee. |

    | Overhead | Främst vid samtalsfunktionen (potentiellt ingen omkostnad om samtal inte behöver dessa register). | Främst inom den anropade funktionen (overhead om den som ringer behöver register som bevaras) eller inte. |

    | Bästa användning | När den som ringer behöver bevara värden bara över en liten delmängd av samtal. | När Callee är stor och sannolikt kommer att använda många register, undvika att den som ringer måste rädda många möjliga register. |

    | Exempel (x86-64) | `rax`,` rcx`, `rdi`,` rsi`, `r8`,` r9`, `r10`,` r11` | `rbx`,` rsp`, `rbp`,` r12`, `r13`,` r14`, `r15` |

    Vilket är bättre?

    Det finns ingen universellt "bättre" tillvägagångssätt. Det optimala valet beror på detaljerna i de anropande konventionerna, programmets struktur, funktionsfrekvensen och funktionens storlek och komplexitet. Registerallokeringsstrategierna som används av kompilatorer och programmerare syftar till att minimera omkostnaderna för att spara och återställa register genom att intelligent välja vilka register som ska användas för olika ändamål.

    * frekventa små samtal: Uppringare-sparad kan vara att föredra, eftersom den som ringer bara sparar vad den behöver. Callee får använda register utan att spara/återställa kostnaden.

    * sällsynta stora samtal: Callee-sparad kan vara att föredra om Callee använder många register. Callee kommer att ta kostnaderna för att spara/återställa dessa register, men den som ringer befrias från att behöva förutse vilka register som måste räddas.

    Sammanfattningsvis:

    Valet mellan samtalsräddade och callee-sparade register innebär en avvägning mellan omkostnader på samtalsplatsen och omkostnader inom den anropade funktionen. Effektiv registerallokering och samtalskonventioner syftar till att minimera denna omkostnad för att förbättra programprestanda. Kompilatorer och monteringsprogrammerare måste förstå dessa koncept för att optimera koden för effektivitet. ABI (Application Binary Interface) definierar vilka register som är uppringade och vilka som är Callee-sparade för ett specifikt arkitektur och operativsystem.

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur man sätter flaggor på Apple iCal
    ·Vilka är funktionerna för driftledare eller produktio…
    ·Hur får man en dator att arbeta snabbare när Streamin…
    ·Mass Email Tutorial
    ·Hur till Öppen MPP Extensions
    ·Betydelsen av ett ERP -system
    ·MS Project 2007 och Project Server 2003 Kompatibilitet
    ·Vad är skillnaden mellan MS Office Professional & MS S…
    ·OpenOffice i Windows
    ·Vad är skillnaden mellan Caller Save och Callee -regis…
    Utvalda artiklarna
    ·Vad är filändelsen DBX
    ·Vad är hörbart chef
    ·Hur man installerar Squid Proxy Server
    ·Hur man tar bort McAfee Security Center
    ·Hur hitta en Drupal version
    ·Visa ett exempel och förklara i detalj hur en kreditsk…
    ·Vilken typ av dator behöver du för att spela StarCraf…
    ·Hur man böjer en linje i Fireworks
    ·Hur man jämför funktionerna i antivirusprogram
    ·I Microsoft PowerPoint kallas effekten som styr hur ett…
    Copyright © Dator Kunskap https://www.dator.xyz