Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a dokumentum néhány útmutatást tartalmaz azzal kapcsolatban, hogyan készül a modul a legjobb teljesítmény érdekében.
Modul manifestum készítés
A következő irányelveket nem használó moduljegyzékek akkor is jelentős hatással lehetnek az általános PowerShell-teljesítményre, ha a modult nem használják munkamenetben.
A parancs automatikus felderítése elemzi az egyes modulokat annak meghatározásához, hogy mely parancsok exportálják a modult, és ez az elemzés költséges lehet. A modulelemzés eredményei felhasználónként gyorsítótárazva vannak, de a gyorsítótár nem érhető el első futtatáskor, ami a tárolók tipikus forgatókönyve. A modulelemzés során, ha az exportált parancsok teljes mértékben meghatározhatók a jegyzékből, elkerülhető a modul drágább elemzése.
Iránymutatások
A moduljegyzékben ne használjon helyettesítő karaktereket a
AliasesToExport,CmdletsToExportésFunctionsToExportbejegyzésekben.Ha a modul nem exportál egy adott típusú parancsot, ezt explicit módon adja meg a jegyzékben a
@()megadásával. A hiányzó vagy$nullbejegyzés egyenértékű a helyettesítő karakterek*megadásával.
Lehetőség szerint kerülni kell a következőket:
@{
FunctionsToExport = '*'
# Also avoid omitting an entry, it's equivalent to using a wildcard
# CmdletsToExport = '*'
# AliasesToExport = '*'
}
Ehelyett használja a következőt:
@{
FunctionsToExport = 'Format-Hex', 'Format-Octal'
CmdletsToExport = @() # Specify an empty array, not $null
AliasesToExport = @() # Also ensure all three entries are present
}
A CDXML elkerülése
A modul implementálásának eldöntésekor három elsődleges lehetőség közül választhat:
- Bináris (általában C#)
- Szkript (PowerShell)
- CDXML (egy XML fájl, amely közrezárja a CIM-et)
Ha a modul betöltésének sebessége fontos, a CDXML nagyjából nagyságrenddel lassabb, mint egy bináris modul.
A bináris modul azért töltődik be a leggyorsabban, mert előre le van fordítva, és az NGen segítségével gépenként egyszer hajtható végre a JIT fordítás.
A szkriptmodulok általában lassabban töltik be a bináris modulokat, mert a PowerShellnek elemeznie kell a szkriptet a fordítás és a végrehajtás előtt.
A CDXML-modul általában sokkal lassabb, mint egy szkriptmodul, mivel először elemeznie kell egy XML-fájlt, amely aztán elég sok Olyan PowerShell-szkriptet hoz létre, amelyet aztán elemezni és lefordítani kell.