MarkProfile
La méthode MarkProfile insère une marque de profil dans le fichier .vsp.Le profilage du thread contenant la fonction MarkProfile doit être ON pour que la marque soit insérée.
PROFILE_COMMAND_STATUS PROFILERAPI MarkProfile( long lMarker );
Paramètres
lMarker
Marqueur à insérer.Le marqueur doit être supérieur ou égal à 0 (zéro).
Valeur de propriété/valeur de retour
La fonction indique la réussite ou l'échec en utilisant l'énumération PROFILE_COMMAND_STATUS.La valeur de retour peut être l'une des suivantes :
Enumerator |
Description |
---|---|
MARK_ERROR_MARKER_RESERVED |
Le paramètre est inférieur ou égal à 0.Ces valeurs sont réservées.La marque et le commentaire ne sont pas enregistrés. |
MARK_ERROR_MODE_NEVER |
La valeur NEVER a été affectée au mode de profilage lors de l'appel à la fonction.La marque et le commentaire ne sont pas enregistrés. |
MARK_ERROR_MODE_OFF |
La valeur OFF a été affectée au mode de profilage lors de l'appel à la fonction.La marque et le commentaire ne sont pas enregistrés. |
MARK_ERROR_NO_SUPPORT |
Aucune prise en charge de marque dans ce contexte.La marque et le commentaire ne sont pas enregistrés. |
MARK_ERROR_OUTOFMEMORY |
La mémoire n'était pas disponible pour enregistrer l'événement.La marque et le commentaire ne sont pas enregistrés. |
MARK_TEXTTOOLONG |
La chaîne dépasse le nombre maximum de 256 caractères.La chaîne de commentaire est tronquée et la marque et le commentaire sont enregistrés. |
MARK_OK |
MARK_OK est retourné en cas de succès. |
Notes
La valeur de la marque est insérée dans le fichier .vsp chaque fois que le code s'exécute si le thread contenant la fonction MarkProfile est profilé.Vous pouvez appeler MarkProfile plusieurs fois.
Les marques de profil sont globales dans la portée.Par exemple, une marque de profil insérée dans un seul thread peut être utilisée pour marquer le début ou la fin d'un segment de données de n'importe quel thread dans le fichier .vsp.
L'état de profilage du thread qui contient la fonction de profil de la marque doit être activé lorsque les marques et les commentaires sont insérés à l'aide de la commande Mark ou des fonctions API (CommentMarkAtProfile, CommentMarkProfile ou MarkProfile).
Important
La méthode MarkProfile doit être utilisée uniquement avec le profilage d'instrumentation.
Équivalent .NET Framework
Microsoft.VisualStudio.Profiler.dll
Informations sur la fonction
En-tête : déclaré dans VSPerf.h
Importez la bibliothèque : VSPerf.lib
Exemple
L'exemple suivant illustre la fonction MarkProfile.
void ExerciseMarkProfile()
{
// Declare and initialize variables to pass to
// MarkProfile. The values of these parameters
// are assigned based on the needs of the code;
// and for the sake of simplicity in this example,
// the variables are assigned arbitrary values.
int markId = 03;
// Declare enumeration to hold return value of
// call to MarkProfile.
PROFILE_COMMAND_STATUS markResult;
// Variables used to print output.
HRESULT hResult;
TCHAR tchBuffer[256];
markResult = MarkProfile(markId);
// Format and print result.
LPCTSTR pszFormat = TEXT("%s %d.\0");
TCHAR* pszTxt = TEXT("MarkProfile returned");
hResult = StringCchPrintf(tchBuffer, 256, pszFormat,
pszTxt, markResult);
#ifdef DEBUG
OutputDebugString(tchBuffer);
#endif
}