Rendimiento de bibliotecas multiproceso
El CRT de un solo subproceso ya no está disponible. En este artículo se describe cómo obtener el máximo rendimiento de las bibliotecas multiproceso.
Maximizar el rendimiento
El rendimiento de las bibliotecas multiproceso se ha mejorado y ha llegado casi al nivel de rendimiento de las bibliotecas de un único subproceso ya eliminadas. Para aquellas situaciones en que se precisa de un rendimiento incluso mayor, hay varias características nuevas.
El bloqueo de flujo independiente permite bloquear una secuencia y, a continuación, usar
_nolock
funciones que acceden directamente a la secuencia. Esta característica permite que el uso de bloqueos se hoste fuera de los bucles críticos.La configuración regional por subproceso reduce el costo de acceso de configuración regional para escenarios multiproceso (consulte
_configthreadlocale
).Las funciones dependientes de la configuración regional (con nombres que terminan en _l) toman la configuración regional como parámetro, quitando un costo considerable (por ejemplo,
printf
,_printf_l
,wprintf
,_wprintf_l
).Las optimizaciones para las páginas de códigos comunes reducen el costo de muchas operaciones cortas.
Definir
_CRT_DISABLE_PERFCRIT_LOCKS
obliga a todas las operaciones de E/S a asumir un modelo de E/S uniproceso y usar las_nolock
formas de las funciones. Esta macro permite que las aplicaciones de un solo subproceso basadas en E/S tengan un mejor rendimiento.La exposición del identificador de montón de CRT permite habilitar el mecanismo de montón de fragmentación baja (LFH) de Windows para el montón de CRT, lo que puede mejorar considerablemente el rendimiento en escenarios de alta escalabilidad.
Consulte también
Archivos .lib
de tiempo de ejecución de C (CRT) y biblioteca estándar de C++ (STL)