Analizamos el comportamiento de std::vector.emplace_back() versus
#push_back() para comprender cuando es mejor y cómo utilizarlo adecuadamente. #emplace_back() construye directamente los objetos dentro de un #vector. Para hacerlo utiliza #placement-new. Vemos qué es y cómo funciona.
Videos Relacionados:
- Gestion avanzada con #placement-new: https://www.youtube.com/watch?v=GmIsv...
Contenido detallado:
- Continuamos con el ejemplo de la semana pasada sobre emplace_back() y push_back()
- Vemos cómo utilizar emplace_back() para mejorar su funcionamiento.
- Analizamos las diferencias con #callgrind
- Vemos cómo emplace_back() bien usado evita la creación de objetos temporales y las llamadas al constructor de copia
- Viendo un detalle sobre costes de paso de parámetros en nuestro caso concreto
- Vemos cómo funciona la construcción de objetos en un lugar concreto de memoria previamente seleccionado, con #placement-new
- Revisamos cómo funciona new y entendemos la diferencia con #placement-new
- Vemos las implicaciones respecto a la gestión de memoria del uso de #placement-new usando #valgrind
- Estudiamos opciones para la gestión de memoria: #delete y llamar directamente al destructor
- En el uso de #placement-new hay que entender cuando no debemos usar #delete para evitar comportamiento no-definido
- Analizamos los costes asociados a la gestión de memoria usando el #heap y sus motivos
- Entendemos que el abuso de new y delete es un problema importante de rendimiento, sobre todo en videojuegos (costes variables)
- Gestionando la memoria a mano de forma básica
- Visualizando los contenidos de memoria para entender mejor cómo gestionarla y usar correctamente #placement-new
- Entendiendo el uso de #reinterpret_cast
- Visualizando problemas de leaks generados al gestionar incorrectamente la memoria
- Entendiendo los tamaños mínimos de memoria que nos devuelve #malloc al solicitar memoria en el #heap y por qué: cuestiones de alineamiento de #memoria y #cache, además de gestión del #heap
- Evitando desperdiciar memoria reservando objetos de tamaño muy pequeño
- Otros importantes usos de #placement-new: sistemas con distintas arquitecturas de memoria, como playstation 3
- Dudas sobre cómo gestionar la memoria directamente
- Dudas sobre casts: #reinterpret_cast, #const_cast y #dynamic_cast
#push_back() para comprender cuando es mejor y cómo utilizarlo adecuadamente. #emplace_back() construye directamente los objetos dentro de un #vector. Para hacerlo utiliza #placement-new. Vemos qué es y cómo funciona.
Videos Relacionados:
- Gestion avanzada con #placement-new: https://www.youtube.com/watch?v=GmIsv...
Contenido detallado:
- Continuamos con el ejemplo de la semana pasada sobre emplace_back() y push_back()
- Vemos cómo utilizar emplace_back() para mejorar su funcionamiento.
- Analizamos las diferencias con #callgrind
- Vemos cómo emplace_back() bien usado evita la creación de objetos temporales y las llamadas al constructor de copia
- Viendo un detalle sobre costes de paso de parámetros en nuestro caso concreto
- Vemos cómo funciona la construcción de objetos en un lugar concreto de memoria previamente seleccionado, con #placement-new
- Revisamos cómo funciona new y entendemos la diferencia con #placement-new
- Vemos las implicaciones respecto a la gestión de memoria del uso de #placement-new usando #valgrind
- Estudiamos opciones para la gestión de memoria: #delete y llamar directamente al destructor
- En el uso de #placement-new hay que entender cuando no debemos usar #delete para evitar comportamiento no-definido
- Analizamos los costes asociados a la gestión de memoria usando el #heap y sus motivos
- Entendemos que el abuso de new y delete es un problema importante de rendimiento, sobre todo en videojuegos (costes variables)
- Gestionando la memoria a mano de forma básica
- Visualizando los contenidos de memoria para entender mejor cómo gestionarla y usar correctamente #placement-new
- Entendiendo el uso de #reinterpret_cast
- Visualizando problemas de leaks generados al gestionar incorrectamente la memoria
- Entendiendo los tamaños mínimos de memoria que nos devuelve #malloc al solicitar memoria en el #heap y por qué: cuestiones de alineamiento de #memoria y #cache, además de gestión del #heap
- Evitando desperdiciar memoria reservando objetos de tamaño muy pequeño
- Otros importantes usos de #placement-new: sistemas con distintas arquitecturas de memoria, como playstation 3
- Dudas sobre cómo gestionar la memoria directamente
- Dudas sobre casts: #reinterpret_cast, #const_cast y #dynamic_cast
C++ : Entendiendo emplace_back y placement new 6502 instruction set | |
26 Likes | 26 Dislikes |
321 views views | 2.28K followers |
Science & Technology Creative Commons Attribution licence (reuse allowed) | Upload TimePublished on 14 Mar 2019 |
Không có nhận xét nào:
Đăng nhận xét