No puedo imaginar que haya un solo bloqueo que todos los hilos deben adquirir para asignar memoria. Entonces, ¿hay varios montones de Gen 0? ¿Hay uno que esté dividido entre los hilos?CLR: ¿Cómo se comparte la generación 0 con todos los hilos?
Respuesta
De este artículo: Garbage Collection Part 2: Automatic Memory Management in the Microsoft .NET Framework por Jeffrey Richter
Asignaciones sin sincronizaciónEn un sistema multiprocesador, la generación 0 del montón administrado se divide en múltiples ámbitos de memoria usando una arena por hilo. Esto permite que varios subprocesos realicen asignaciones simultáneamente para que no se requiera acceso exclusivo al montón.
escalables ColeccionesEn un sistema multiprocesador que ejecuta el servidor de la versión del motor de ejecución (Mscorsvr.dll), el montón administrado se divide en varias secciones, una por cada CPU. Cuando se inicia una colección, el recopilador tiene un hilo por CPU; todos los hilos recopilan sus propias secciones simultáneamente. La versión de estación de trabajo del motor de ejecución (MSCorWks.dll) no admite esta característica.
Hay muchas otras cosas sucediendo, busque el título "Rendimiento para aplicaciones multiproceso".
- 1. Hilos impulso con CLR
- 2. ¿HttpModule se comparte entre los hilos de trabajo?
- 3. ¿Por qué los hilos IIS son tan preciados en comparación con los hilos regulares de CLR?
- 4. Java comparte una variable entre dos hilos
- 5. Determinar cuándo terminaron todos los hilos C#
- 6. Volcar stacktraces de todos los hilos activos
- 7. ¿Se comparte threadpool entre los dominios de la aplicación?
- 8. ¿Interlocked proporciona visibilidad en todos los hilos?
- 9. sin detener todos los hilos en gdb
- 10. Cerrar todos los hilos con una interrupción de teclado
- 11. Multicore + Hyperthreading: ¿cómo se distribuyen los hilos?
- 12. ¿Cómo se enumera la pila de llamadas de todos los hilos gestionados utilizando WinDBG?
- 13. Eliminando todos los hilos abiertos por la aplicación
- 14. OpenMPI: Todos los nodos se ejecutan como nodo 0
- 15. Reemplazar todos los 0 valores a NA
- 16. ¿cómo se comunican los hilos entre sí?
- 17. ¿Cómo aborta AppDomain.Unload() los hilos?
- 18. Cómo anular los hilos creados con ThreadPool.QueueUserWorkItem
- 19. Uso de hilos y fibras administrados en CLR
- 20. ¿.NET CLR JIT compila todos los métodos, todas las veces?
- 21. C3P0 aparente interbloqueo cuando los hilos están todos vacíos?
- 22. JVM consume todos los CPU, la mayoría de los hilos BLOQUEADOS. ¿Error de JVM?
- 23. ¿Cómo reemplazar los valores en blanco (nulos) con 0 para todos los registros?
- 24. ¿Cómo suspender todos los hilos después de que se cuelgue mi programa?
- 25. cómo se descifran los objetos en vivo en la colección de generación joven?
- 26. No hay ícono cuando se comparte con Sharekit
- 27. Señalización de todos los hilos en un proceso
- 28. Esperando a que terminen todos los hilos en Spring Integration
- 29. hilos GEvent no terminan a pesar de que todos los elementos de la cola se agotan
- 30. C#: Esperando a que terminen todos los hilos