Actualmente estoy intentando escribir un gráfico de escena 2D en C, y tengo que decidir sobre una forma de almacenar los nodos secundarios. Estoy esperando muchas lecturas y pocas escrituras, por lo que una lista vinculada está fuera de cuestión debido a la mala ubicación espacial de referencia, y usar realloc
cada vez para agregar un nodo secundario probablemente fragmentaría la lista libre en el olvido. Un asignador de grupo parece ser la mejor solución, pero parece que no puedo encontrar ninguna implementación para usar. ¿Alguien sabe de un asignador que manejaría de manera eficiente las asignaciones y desasignaciones aleatorias de unos pocos cientos de pequeños struct
, o quizás un mejor esquema de asignación?Efficient C pool allocator?
Respuesta
estoy preparando para desplegar TLSF como asignador de tiempo real. Todavía no he tenido la oportunidad de perfilar su rendimiento, pero parece funcionar, y el license es correcto.
Según sus documentos, sus operaciones ejecutan "un máximo de 168 instrucciones de procesador en una arquitectura x86". Se presenta como un único archivo .c, que se compiló sin modificaciones en mi sistema.
Eche un vistazo a halloc, podría ser de alguna ayuda.
'halloc' se ve interesante, pero todavía funciona en la parte superior de' malloc', por lo que el problema de la fragmentación permanece, aunque supongo que podría ser útil como punto de partida para un asignador de agrupaciones. – Electro
- 1. Efficient Python Daemon
- 2. Efficient DataTable Group Por
- 3. Auto Patcher (Efficient Auto Updater)
- 4. C++ allocator <X> :: deallocate (NULL, 1) permitido?
- 5. Custom, Efficient, Complex Ordering in Rails 3
- 6. Efficient Linux sockets (DMA/copia cero)
- 7. boost :: interprocess memory allocator on anonymous segment
- 8. ¿Qué es un Thread-pool?
- 9. String POOL en java
- 10. Conexión DBCP Pool loginTimeout
- 11. Good Client Socket Pool
- 12. Pool de objetos
- 13. Pool Billiard AI
- 14. Connection Pool Monitoring
- 15. JBoss Database Connection Pool
- 16. Python Process Pool no daemonic?
- 17. Monitoreo Bone cp Connection pool
- 18. ¿Por qué utilizar Autorelease pool?
- 19. python Pool with worker Procesos
- 20. Thread Pool vs Thread Spawning
- 21. Redis serviceStack pool connection client
- 22. Pool de conexión de primavera
- 23. IIS 6.0 Application Pool crash
- 24. Procesos persistentes Post Python Pool
- 25. Cómo usar std :: allocator en mi propia clase de contenedor
- 26. std :: allocator construye/destroy vs. placement new/p-> ~ T()
- 27. ¿Por qué no hay vector (tamaño_tipo n, const Allocator & alloc) en C++ 11?
- 28. most * efficient * manera de poblar seleccionar con Jquery ajax
- 29. (cómo) TPL usa (CLR) Thread Pool?
- 30. @ Scheduled & scheduler: ¿Qué hace exactamente pool-size?
el enlace está roto – CAFxX
@CAFxX - Shame. Google me encuentra algunos sitios alternativos, pero ninguno parece ser oficial. Espero que eso cambie. –
¡Yay! Gracias por la corrección, @Electro. Te da un voto alternativo semi aleatorio. Marque otra victoria para el conocimiento de fuentes múltiples. –