Académique Documents
Professionnel Documents
Culture Documents
Componentes .NET
Cdigo: PTL-GINF-003
<Nombre del activo>
Contenido
<Nombre de proyecto>..........................................................................................1
<Nombre del cliente>........................................................................................... 1
<Nombre del activo>: <Nombre especfico>.................................................................1
Contenido......................................................................................................... 2
Analyze............................................................................................................ 3
Pasos para la generacin de los resultados..................................................................3
Como analizar las graficas mostradas por el Visual Studio del Analyze
7
Detalles de la Funcin
10
Mtricas del cdigo
14
Historia de Cambios
16
Bibliografa
16
Confidencial
Pgina 2 de 22
Cdigo: PTL-GINF-003
<Nombre del activo>
Introduccin
El Analyze es una Herramienta de Visual Studio Ultimate y Premium que permite a los
desarrolladores medir, evaluar y detectar los problemas relacionados con el rendimiento del
cdigo, esta herramienta es sencilla de usar y en este documento se muestra las dos manera mas
comunes que se utilizan que son, el resumen que muestra las caractersticas principales dela
herramienta y el reporte mas general sabiendo que este es el mas importante de la herramienta y
la raz de todo el ejercicio del anlisis de cargas del cdigo; la otra opcin es el detalle de la
funcin la cual muestra en que funciones toma mas tiempo de todo el que se gasto y se puede
introducir en ellos hasta llegar al mas pequeo.
Propsito
El propsito de este documento es dar a conocer e informar sobre la herramienta que posee
Visual Studio, la cual que permite medir, evaluar y detectar los problemas relacionados con el
rendimiento del cdigo.
El propsito de este documento es mostrar una herramienta que muestre que Visual Studio posee
una herramienta que permite medir, evaluar y detectar los problemas relacionados con el
rendimiento del cdigo.
Alcance
En este documento se muestra las dos manera mas comunes que se utilizan que son, el resumen
que muestra las caractersticas principales de la herramienta y el reporte mas general sabiendo
que este es el mas importante de la herramienta y la raz de todo el ejercicio del anlisis de
cargas del cdigo; la otra opcin es el detalle de la funcin la cual muestra en que funciones
toma mas tiempo de todo el que se gasto y se puede introducir en ellos hasta llegar al mas
pequeo.
El ejemplo con el que se trabajo este ejercicio se puede descargar de la siguiente URL:
http://archive.msdn.microsoft.com/VSTS2010B1PeopleTrax/Release/ProjectReleases.aspx?
ReleaseId=3157
Pasos para la generacin de los resultados.
1- Vaya a la opcin Analyze del men principal del Visual Studio y seleccione la opcin
Launch Performance Wizard.
Grafico 1
Confidencial
Pgina 3 de 22
Cdigo: PTL-GINF-003
<Nombre del activo>
2- Mostrar los pasos para generar los reportes de rendimiento de la aplicacin, primero
muestra la opcin specify the profiling method(especifique el mtodo del perfil), el por
defecto nos muestra CPU(Sampling) que es el recomendado y el que se necesita,
presionamos Next(1).
Indicadores
Muestreo CPU:
El mtodo de generacin de perfiles de muestreo recopila datos estadsticos sobre el
trabajo realizado por una aplicacin durante una generacin de perfiles. El mtodo de
muestreo consume pocos recursos y afecta poco a la ejecucin de los mtodos de la
aplicacin.
El muestreo es el mtodo predeterminado de las Herramientas de generacin de perfiles
de Microsoft Visual Studio Premium. Es til para lo siguiente:
Confidencial
Pgina 4 de 22
Cdigo: PTL-GINF-003
<Nombre del activo>
Confidencial
Pgina 5 de 22
Cdigo: PTL-GINF-003
<Nombre del activo>
Concurrencia:
La generacin de perfiles de simultaneidad recopila informacin sobre las aplicaciones
multiproceso. La generacin de perfiles de contencin de recursos recopila informacin
detallada de la pila de llamadas cada vez que subprocesos competidores se ven a
obligados a esperar para obtener acceso a un recurso compartido. La visualizacin de
simultaneidad tambin recopila informacin ms general sobre la interaccin de su
aplicacin multiproceso consigo misma, el hardware, el sistema operativo y otros
procesos del equipo host.
Confidencial
Pgina 6 de 22
Cdigo: PTL-GINF-003
<Nombre del activo>
3- Nos mostrara las aplicaciones a las cuales se les puede hacer seguimiento en este caso
PeopleTrax, le damos Next.
Grafico 3
Confidencial
Pgina 7 de 22
Cdigo: PTL-GINF-003
<Nombre del activo>
Confidencial
Pgina 8 de 22
Cdigo: PTL-GINF-003
<Nombre del activo>
Confidencial
Pgina 9 de 22
Cdigo: PTL-GINF-003
<Nombre del activo>
Confidencial
Pgina 10 de 22
Cdigo: PTL-GINF-003
<Nombre del activo>
Como analizar las graficas mostradas por el Visual Studio del Analyze
1. Inicialmente el Visual Studio Analyze muestra la siguiente pantalla, en ella se puede
observar que la pantalla esta dividido en 5 partes las cuales se describirn a
continuacin.
Grafico 8
Confidencial
Pgina 11 de 22
Cdigo: PTL-GINF-003
<Nombre del activo>
Descripcin
Nombre de la funcin.
En la aplicacin que se uso de prueba se obtuvo que todas las funciones usaron la parte
inclusiva al 100% mientras que la parte exclusiva no fue usada, solo fue usada por la
tercera aplicacin System.Windows.Forms.Application.Run(class
System.Windows.Forms.Form) que usa el 1.92% de la memoria interna
4. Una lista de las funciones que utilizaron la mayor parte del tiempo ejecutando cdigo del
cuerpo de la funcin y no en funciones a las que llamaron.
Confidencial
Pgina 12 de 22
Cdigo: PTL-GINF-003
<Nombre del activo>
Funciones con la mayor parte del trabajo individual incluye los datos siguientes para
cada funcin:
Columna
Descripcin
Name
Nombre de la funcin.
% de tiempo de
exclusin
Grafico 11
En esta imagen se muestra el porcentaje que se uso para el desarrollo de esta aplicacin
como pueden ver se muestran de la que mas usa memoria hasta la que menso usa
memoria
5. Existe un men de las opciones que puede manejar el reporte, estas opciones pueden
mostrar si quiere comparar dos reportes, si desea exportarlo a otro documento, revisar
los punto calientes en mas detalle, guardar el reporte, filtrar reporte por datos, ver en
pantalla completa
Grafico 12
Confidencial
Pgina 13 de 22
Cdigo: PTL-GINF-003
<Nombre del activo>
6. La ultima parte muestra el reporte como tal, su nombre y brinda unas opciones donde se
puede para en PeopleTrax12502.vsp y al darle clic derecho le mostrara las opciones que
se vieron en el punto 5. Si se para en el Targets->PeopleTrax y da clic derecho sobre este
le muestra una opciones de poder volver a lanzar el proceso u otras cosas, y si da clic
derecho sobre el proyecto principal y se va hasta propiedades puede configurar el reporte
para que seleccione sus opciones preferidas.
Grafico 13
Confidencial
Pgina 14 de 22
Cdigo: PTL-GINF-003
<Nombre del activo>
7. Al seleccionar alguno de los mtodos que se tiene en la ruta caliente (grafico 10) o en
funciones que utilizaron la mayor parte del tiempo ejecutndose (grafico 11) este los
llevara a la opcin Function Details, tambin puede ingresar a detalles de la funcin
yendo a al parte superior de la pagina y en vista actual poner Function Details (2).
Detalles de la Funcin.
1. La ventana de la vista Detalles de la funcin muestra la informacin siguiente:
El grfico de barras de distribucin del costo, que representa las relaciones entre una
funcin que se selecciona y las funciones de llamada que ejecutaron la funcin
seleccionada, y entre la funcin seleccionada y las funciones que ella llam.
La tabla Detalles de rendimiento de la funcin, que muestra datos de generacin de
perfiles de resumen acerca de la funcin especificada.
La ventana Vista de cdigo de funcin, que muestra el cdigo de la funcin si est
disponible.
La ventana Vista de cdigo de funcin es un recuadro independiente. De forma
predeterminada, los dos recuadros se dividen horizontalmente y la ventana Vista de
cdigo de funcin se coloca en la parte inferior del marco.
Para dividir los dos recuadros verticalmente, haga clic en Dividir la pantalla
verticalmente en la barra de herramientas.
Para cambiar el tamao relativo de los recuadros, haga clic en el borde sombreado
entre los marcos y arrstrelo a una ubicacin diferente.
Confidencial
Pgina 15 de 22
Cdigo: PTL-GINF-003
<Nombre del activo>
Grafico 15
Confidencial
Pgina 16 de 22
Cdigo: PTL-GINF-003
<Nombre del activo>
Grfico de barras
Llamadas a funciones
La barra Funciones que llaman muestra las funciones que llamaron a la funcin
seleccionada. El tamao del bloque que contiene la funcin de llamada es proporcional a
al valor de la contribucin de la funcin del valor total de la mtrica de rendimiento de
la funcin seleccionada.
Puede hacer clic en el nombre de una funcin de llamada para convertirla en la funcin
seleccionada en la vista.
Si hay demasiadas funciones que llaman para enumerar, las funciones con las
contribuciones ms pequeas se recopilan en un bloque Otros. Haga clic
en Otros para mostrar todas las funciones que llaman y a las que llama la funcin
seleccionada en la ventana de la vista Llamador y destinatario.
Si no hay ninguna funcin que llame o si la funcin es la funcin de entrada de un
subproceso o proceso, aparece un bloque Parte superior de la pila.
Funcin seleccionada
La barra de funcin seleccionada muestra las contribuciones de las funciones llamadas y
del cdigo de la funcin seleccionada a la mtrica de rendimiento total de la funcin
seleccionada. El tamao del bloque que contiene una funcin llamada o el cuerpo de la
funcin es proporcional a su contribucin al valor total de la mtrica de rendimiento de
la funcin seleccionada.
Puede hacer clic en el nombre de una funcin llamada para convertirla en la funcin
seleccionada en la vista.
El valor Total es la mtrica de rendimiento de la funcin seleccionada.
El bloque Cuerpo de funcin representa la cantidad del valor total de la mtrica de
rendimiento que se produjo en la ejecucin directa del cdigo incluido en el cuerpo
de la funcin.
Las funciones a las que llama la funcin seleccionada se muestran en bloques. El
tamao del bloque de funciones seleccionadas representa la cantidad de la mtrica
de rendimiento total para la funcin que se selecciono.
Si hay demasiadas funciones que se llaman para enumerar, las funciones con las
contribuciones ms pequeas se recopilan en un bloque Otros. Haga clic
en Otros para mostrar todas las funciones que llaman y a las que llama la funcin
seleccionada en la ventana de la vista Llamador y destinatario.
Si no hay ninguna funcin a la que se llame, aparece un bloque Parte inferior de la
pila.
Cada vez que ingresa a una funcin le muestra el porcentaje de de moria inclusiva que utiliza
para la funcin en este caso utiliza un total del 53 % para PeopleNS.People.GetPeople(int32) y
esta se divide en el resto de funciones que necesita para llevar a cabo sus operaciones como lo
muestra la grafica gastando en el cuerpo de la funcin un 3. 7% y en resto lo que queda
Grafico 16
Confidencial
Pgina 17 de 22
Cdigo: PTL-GINF-003
<Nombre del activo>
Descripcin
Exclusive
Llamadas
entrantes
Total
inclusivo
Grafico 17
Confidencial
Pgina 18 de 22
Cdigo: PTL-GINF-003
<Nombre del activo>
Para mas informacin al respecto de como analizar los diferentes reportes que muestra el
Analyze visite: http://msdn.microsoft.com/es-co/library/dd255375.aspx
Confidencial
Pgina 19 de 22
Cdigo: PTL-GINF-003
<Nombre del activo>
2. Varios Proyectos
Cuando se desea calcular mtricas de cdigo para ms de un proyecto, puede CTRL +
Izquierda Haga clic en los proyectos en el Explorador de soluciones:
Grafico 20
3. Toda la solucin
El clculo de mtricas de cdigo para una solucin completa es simplemente una cuestin
de ir a Analizar | Calcular las mtricas de cdigo para la solucin. Adems, el Cdigo de
Confidencial
Pgina 20 de 22
Cdigo: PTL-GINF-003
<Nombre del activo>
4. Las mtricas de cdigo son un conjunto de medidas de software que proporcionan a los
programadores una mejor visin del cdigo que estn desarrollando. Al aprovechar las
mtricas de cdigo, los programadores pueden entender qu tipos y mtodos se deben
rehacer o probar ms a fondo. Los equipos de desarrollo pueden identificar los riesgos
potenciales, entender el estado actual de un proyecto y seguir el progreso durante el
desarrollo del software.
ndice de mantenimiento: calcula un valor de ndice entre 0 y 100 que representa la
facilidad relativa de mantenimiento del cdigo. Un valor alto significa mayor
facilidad de mantenimiento. Las calificaciones codificadas por colores se pueden
utilizar para identificar rpidamente puntos problemticos del cdigo. Una
clasificacin verde se encuentra entre 20 y 100 e indica que el mantenimiento del
cdigo es bueno. Una clasificacin amarilla se encuentra entre 10 y 19 e indica que el
mantenimiento del cdigo es moderado. Una clasificacin roja se encuentra entre 0 y
9 e indica un mantenimiento pobre.
Complejidad ciclomtica: mide la complejidad estructural del cdigo. Se crea
calculando el nmero de rutas de acceso del cdigo diferente del flujo del programa.
Un programa que tenga un flujo de control complejo requerir ms pruebas para
lograr una buena cobertura de cdigo y ser ms difcil de mantener (5).
Profundidad de herencia: indica el nmero de definiciones de clase que se extienden
a la raz de la jerarqua de clases. Cuanto ms profunda es la jerarqua, ms difcil
puede ser entender dnde se definen y se vuelven a definir determinados mtodos y
campos.
Acoplamiento de clases: mide el acoplamiento a las clases nicas a travs de
parmetros, variables locales, tipos de valores devueltos, llamadas a mtodos,
instancias genricas o de plantillas, clases base, implementaciones de interfaces,
campos definidos en tipos externos y decoracin de atributos. El buen diseo de
software sugiere que los tipos y mtodos deben tener cohesin alta y acoplamiento
bajo. Un acoplamiento alto indica un diseo difcil de reutilizar y mantener debido a
sus interdependencias en otros tipos.
Lneas de cdigo: indica el nmero aproximado de lneas del cdigo. El recuento se
basa en el cdigo IL y, por consiguiente, no representa el nmero exacto de lneas en
el archivo de cdigo fuente. Un recuento muy alto podra indicar que un tipo o
mtodo intenta hacer demasiado trabajo y debe dividirse. Tambin puede indicar que
el tipo o mtodo podra ser difcil de mantener.
Confidencial
Pgina 21 de 22
Cdigo: PTL-GINF-003
<Nombre del activo>
Historia de Cambios
Fecha
Versin
Descripcin
Autor
<02/05/2012>
<1.0>
Carlos
Waldo
Imbachi
serna
Bibliografa
[1] http://msdn.microsoft.com/es-es/library/dd264994.aspx
[2] http://msdn.microsoft.com/es-co/library/dd465180.aspx
[3] http://msdn.microsoft.com/es-co/library/dd255375.aspx
[4] http://msdn.microsoft.com/es-co/library/bb385908.aspx
[5] http://msdn.microsoft.com/es-co/library/ee703787.aspx
Confidencial
Pgina 22 de 22