Neo_Fr
Messages postés653Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention10 novembre 2014
-
17 août 2007 à 16:51
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
18 août 2007 à 18:59
Salut,
Quelqu'un sait quel est la fonction la plus rapide pour allouer de la memoire sous windows NtAllocateVirtualMemory ou RtlAllocateHeap?
NairodDorian
Messages postés130Date d'inscriptionlundi 26 juin 2006StatutMembreDernière intervention18 août 2008 18 août 2007 à 13:49
Ca depend, si tu fais 20 allocs de 1 Mo alors dans ce cas VirtualAlloc donnera surement de meilleur perf ssi tu fais 1 fois l'alloc de 20Mo et que tu te balades avec un pointeur dans la zone que tu as reserve.
En resume :
si alloc < 4096 -> HeapAlloc
si alloc > 4096 -> VirtualAlloc
si alloc frequente (~50) < 1024 -> HeapAlloc
si alloc frequente (~50 ou +) > 1024 -> VirtualAlloc. (Alloue une fois la taille totale. Si taille finale inconnue alors utilise HeapAlloc)
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 18 août 2007 à 18:59
Autre différence importante, même si ça ne concerne pas ce cas de prog:
VirtualAlloc() garantit un alignement du pointeur sur une taille de page mémoire, idéal (et indispensable) pour opérations 128 bits (SSE2 et > ) ou fonctions attendant une adresse correctement alignée.