Compiler sous Windows avec TCMalloc

Télécharger

Téléchargez le code source sur github : Releases · gperftools/gperftools (github.com) Le téléchargement ici est https://github.com/gperftools/gperftools/releases/download/gperftools-2.9.1/gperftools-2.9.1.zip

compiler

Décompressez le package compressé, ouvrez le fichier de projet gperftools.sln avec VS, compilez-le dans une version finale et récupérez libtcmalloc_minimal.lib et libtcmalloc_minimal.dll dans le répertoire généré. Si vous ne souhaitez pas apporter de dll supplémentaires lors de la publication du programme , vous pouvez modifier le projet libtcmalloc_minimal en bibliothèque statique.

test

Créez un nouveau projet, configurez les propriétés du projet, ajoutez libtcmalloc_minimal.lib aux dépendances supplémentaires et forcez la référence de symbole à ajouter l'élément __tcmalloc, vous pouvez utiliser le malloc modifié et le nouveau pour demander de l'espace mémoire dans le projet.

Code de test simplifié :

#include <Windows.h> 
#include <iostream>

#define COUNT 1000*1000
void func()
{
    size_t j = 0;
    for (size_t i = 0; i < COUNT; ++i)
    {
        if (j > 1001)
        {
            j = 0;
        }
        int* pInt = (int*)malloc(i * sizeof(int));
        free(pInt);
    }
}

void main()
{
    DWORD tStart, tEnd;

    tStart = GetTickCount();
    func();
    tEnd = GetTickCount();

    printf("%lu\\n", tEnd - tStart);
    getchar();
}

Comparaison des performances

Il faut 78 ms pour utiliser tcmalloc et 5078 ms pour utiliser malloc natif. 

Je suppose que tu aimes

Origine blog.csdn.net/Ango_/article/details/123610508
conseillé
Classement