J'ai un code hérité qui reçoit un propriétaire, l'analyse et crée un ensemble de tableaux de char statiques (incorporés dans la classe représentant le message), pour représenter les chaînes NULL. Ensuite, les pointeurs vers la chaîne sont passés tout autour et finalement sérialisés à un certain tampon. Le profilage montre que les méthodes str*()
prennent beaucoup de temps.Chaîne terminée par NULL et sa longueur
Par conséquent, je voudrais utiliser memcpy()
si c'est possible. Pour l'obtenir, j'ai besoin d'un moyen d'associer la longueur avec le pointeur à la chaîne de terminaison NULL. Je pensais sur:
L'utilisation
std::string
semble moins efficace, car il nécessite l'allocation de mémoire et la synchronisation des threads.Je peux utiliser
std::pair<pointer to string, length>
. Mais dans ce cas, je dois maintenir la longueur "manuellement".
Qu'en pensez-vous?
Qu'est-ce qui vous fait penser que 'std :: string' fait une synchronisation? (ou, d'ailleurs, qu'il nécessite plus d'allocations de mémoire que vous avez de toute façon?) – jalf