5

En el pasado utilicé herramientas de perfilado de rendimiento como nprof, perfilador Equatec y perfilador Yourkit para identificar y eliminar/reducir cuellos de botella de rendimiento en código que se ejecuta principalmente en un subproceso (ejecución serializada). Hoy en día escribo muchos códigos de subprocesos múltiples que pueden ralentizarse por contención de bloqueo; ¿Qué herramientas y trucos se pueden usar para identificar dónde se produce la contención del bloqueo y en qué medida?Conflicto de bloqueo de sincronización de subprocesos de perfil

Respuesta

2

Esto está disponible pronto, actualmente se envía en Visual Studio 2010 beta 2. Aquí hay un video of the tool.

+0

Muy interesante. Esto es más o menos exactamente lo que estaba buscando. Para aquellos interesados, estas herramientas están disponibles en Visual Studio 2010 Beta 2, disponible gratuitamente; Sin embargo, asegúrese de obtener las ediciones Premium o Ultimate. Además, las visualizaciones de subprocesos que se muestran en el video vinculado solo están disponibles en algunos sistemas operativos; no estaban disponibles en mi cuadro de XP, pero estaban habilitadas en mi cuadro de Vista (ambos de 64 bits por cierto). – redcalx

1

Pruebe ThreadChecker de Intel. Funciona tanto en Windows como en Linux. Si está trabajando en Windows, intente con Parallel Studio. Proporciona un generador de perfiles de bloqueos y esperas fácil de usar. Muestra concurrencia general durante el tiempo de ejecución, lo que da pistas sobre contenciones de bloqueo y concurrencia deficiente. Las herramientas están haciendo ahora lo que quieres.

0

Para desarrollar en Windows, la verificación de software tiene algunos (http://www.softwareverify.com/thread.html).

Para C, C++, Delphi try Thread Validator.

Para Java, también hay Java Thread Validator.

También hay versiones experimentales para Python y Ruby.

Cuestiones relacionadas