BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 12 sept. 2005 à 12:39
new utilise le CRT, c'est différent. Il utilise le code de malloc et appelle un constructeur si c'est une classe.
L'alloc par malloc fait tout un tas de vérifs internes pour garantir le non chevauchement en cas de multi threads et finit chez HeapAlloc. L'emploi direct de l'API garantit à coup sur la vitesse, juste qu'il faut le faire correctement.
hilairenicolas
Messages postés398Date d'inscriptionjeudi 30 octobre 2003StatutMembreDernière intervention15 juin 20072 12 sept. 2005 à 12:09
je comprends bien
mais la question sous-jacente était grosso modo
est-ce que c'est plus rapide/interessant de faire un
sachant que dans ce cas là, LENTOTAL fait 37392 (ce qui n'est pas énorme finalement)
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 12 sept. 2005 à 10:35
Me semble clair que répéter plusieurs fois la même chose est plus long que de le faire 1 seule fois, surtout que ça gagnera dans les 2 sens, alloc et désalloc. Même si ici ce n'était pas crucial, l'important est de montrer une méthode applicable très souvent ailleurs.
hilairenicolas
Messages postés398Date d'inscriptionjeudi 30 octobre 2003StatutMembreDernière intervention15 juin 20072 12 sept. 2005 à 10:14
c'est plus rapide de se faire une allocation avec VirtualAlloc plutot que d'avoir deux-trois buffer en pile ?
12 sept. 2005 à 12:39
L'alloc par malloc fait tout un tas de vérifs internes pour garantir le non chevauchement en cas de multi threads et finit chez HeapAlloc. L'emploi direct de l'API garantit à coup sur la vitesse, juste qu'il faut le faire correctement.
12 sept. 2005 à 12:09
mais la question sous-jacente était grosso modo
est-ce que c'est plus rapide/interessant de faire un
psztemp = (char*) VirtualAlloc(0, LENTOTAL, MEMDISPO, PAGE_READWRITE);
plutot que
psztemp = new char [LENTOTAL];
sachant que dans ce cas là, LENTOTAL fait 37392 (ce qui n'est pas énorme finalement)
12 sept. 2005 à 10:35
12 sept. 2005 à 10:14