Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Det här dokumentet innehåller några riktlinjer som rör hur en modul skapas för bästa prestanda.
Författande av modulmanifest
Ett modulmanifest som inte använder följande riktlinjer kan ha en märkbar inverkan på allmänna PowerShell-prestanda även om modulen inte används i en session.
Automatisk identifiering av kommando analyserar varje modul för att avgöra vilka kommandon modulen exporterar och den här analysen kan vara dyr. Resultatet av modulanalys cachelagras per användare, men cachen är inte tillgänglig vid första körningen, vilket är ett typiskt scenario med containrar. Under modulanalysen kan du undvika dyrare analys av modulen om de exporterade kommandona kan fastställas helt från manifestet.
Riktlinjer
I modulmanifestet ska du inte använda jokertecken i posterna
AliasesToExport,CmdletsToExportochFunctionsToExport.Om modulen inte exporterar kommandon av en viss typ anger du detta explicit i manifestet genom att ange
@(). En post som saknas eller$nullmotsvarar att ange jokertecknet*.
Följande bör undvikas när det är möjligt:
@{
    FunctionsToExport = '*'
    # Also avoid omitting an entry, it's equivalent to using a wildcard
    # CmdletsToExport = '*'
    # AliasesToExport = '*'
}
Använd i stället:
@{
    FunctionsToExport = 'Format-Hex', 'Format-Octal'
    CmdletsToExport = @()  # Specify an empty array, not $null
    AliasesToExport = @()  # Also ensure all three entries are present
}
Undvik CDXML
När du bestämmer dig för hur du implementerar din modul finns det tre primära alternativ:
- Binärt (vanligtvis C#)
 - Skript (PowerShell)
 - CDXML (en XML-fil som omsluter CIM)
 
Om hastigheten för att läsa in din modul är viktig, är CDXML ungefär tio gånger långsammare än en binär modul.
En binär modul läser in snabbast eftersom den kompileras i förväg och kan använda NGen till JIT-kompilering en gång per dator.
En skriptmodul läser vanligtvis in lite långsammare än en binär modul eftersom PowerShell måste parsa skriptet innan det kompileras och körs.
En CDXML-modul är vanligtvis mycket långsammare än en skriptmodul eftersom den först måste parsa en XML-fil som sedan genererar en hel del PowerShell-skript som sedan parsas och kompileras.