Top Banner
7/21/2019 AP TecnicasProfile Final http://slidepdf.com/reader/full/ap-tecnicasprofile-final 1/46 Técnicas de Profling Equipe: Rosangela Melo Diego Liberalquino Rosiberto
46

AP TecnicasProfile Final

Mar 05, 2016

Download

Documents

Rutek

tecnicss
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 1/46

Técnicas de Profling

Equipe:RosangelaMeloDiegoLiberalquinoRosiberto

Page 2: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 2/46

Roteiro

• O que é Profling?• Como e onde utilizar?•  Técnicas de Profling

 – Program Counter Sampling – Instrumentação Binária – Simulação

• Comparação entre as Técnicas•  Tracing• erramentas de Profler• Prática•

!e"er#ncias

Page 3: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 3/46

Page 4: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 4/46

O que é profling

• Profling é uma técnica de análisedinâica – $nalisa um programa durante a sua e%ecução& – Considera apenas um estado de todo o espaço

de estados poss'(eis de um programa a cadainter(alo de tempo&

 – !ealiza análise das partes de um processo

durante a sua e%ecução•  Tempo de CP)&• *em+ria e Cac,e&•  T,reads- *onitores e *ute%es.

Page 5: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 5/46

O que é profling

• O que o profler analisa – C,amadas de métodos& – /struturas de Branc,

• 0oops 12,ile- "or- etc3&• /struturas de decisão 1i"4else3&

 – C,amadas ao sistema& – $cesso a mem+ria

• Pil,a&• 5eap.

Page 6: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 6/46

Profling

• )ma "erramenta de P!OI0/ permite aidentifcação de trec,os que são 6astantesolicitados nos c+digos 1B/7/!!$ 8/TO- 9::;3&

• ornece um (isão glo6al do tempo de e%ecuçãoda $plicação 1*$CI/0- 9:<<3&

• = necessário o con,ecimento não apenas do >u%odo programa- mas tam6ém dos trec,os quedemandam mais tempo.

Page 7: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 7/46

O que é profling

• O profler produz estat'sticas so6re oprograma que podem ser analisadas emtempo real.

Page 8: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 8/46

!oo e onde utili"ar#

•$oralente utili"ados para@ Otimização no c+digo&@ /ncontrar mi%es de instruçAes utilizadas&@ /stat'sticas de des(ios e de uso de registradores&

 – *edir quanto tempo- ou "ração do tempo total- osistema passa em um certo estado ou su64rotina.

•!ouente aceita:@ )m programa e%ecutá(el como entrada&@ ecodifcam e analisam as instruçAes do e%ecutá(el.

Page 9: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 9/46

!oo e onde utili"ar#

• %diciona c&digo 1pro6es3 aplicação a sermonitorada. $lguns adicionam o c+digo1pro6es3 durante a compilação ou o6tém

amostras do contador de programa&

• 'dentifca()o e %*ustes@ In"ormaçAes são utilizadas por

programadores para identifcar qual porçãodo programa consome uma grande "ração dotempo total de e%ecução&@ Os programadores podem aDustar seus

c+digos para conseguir uma mel,or

Page 10: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 10/46

Técnicas de Profling

Progra+countersapling'nstruenta()obinária

Siula()o

Page 11: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 11/46

Progra+counter sapling

• Sampling é uma técnica de estat'stica qual umsu6conDunto de elementos da população ée%aminado atra(és de uma seleção randEmica&

Como o sampling é um processo estat'stico emqual as caracter'sticas de uma população sãoin"eridas a partir de uma seleção randEmica-então podemos está suDeito a erros aleat+rios&

$s amostras da e%ecução dos programas sãocoletadas em um f%o inter(alo atra(és deperi+dicas interrupçAes. O inter(alo de confançapode ser calculado.

Page 12: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 12/46

,igura -. Program4couter sampling "unciona1COS*OS-9::;3

Progra+countersapling

Page 13: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 13/46

Progra+counter sapling

E/eploSupon,a que usando uma "erramenta deamostragem que interrompe a e%ecução do

programa a cada Tc 0 -1s. Incluindo o temporequerido para a rotina de interrupção& oprograma e%ecuta em um total de Fs. 8o totalde nGF:: 1F:::H<:3 amostras- apenas <9 (ezes

a su64rotinas ocorreu no momento dasinterrupçAes.Jual é a "ração de tempo total o programa gastae%ecutando a su64rotina ?

Page 14: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 14/46

Progra+counter sapling

Calcular o inter(alo de confança com o n'(elde confança de ;;K.

Podemos estimar com ;;K de confança queem Fs da e%ecução do programa- o tempogasto na e%ecução da su64rotina está entreL< e 9:; milissegundos.

Page 15: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 15/46

!onsidera(2es•   8ecessário um nMmero grande de

amostras&

•   Para o6ter mais amostras por e(entolongo per3odo do tepo ou auentar ata/a de aostra&

•   /m algumas situaçAes pode4se dei%ar oprograma e%ecutando em um longo per'odo-mas em outros casos o programa tem umaduração f%a&

•  $umentar a ta%a da amostra- aumenta 8r.de (ezes que a rotina deinterrupção1ass'ncronas3 é e%ecutada-

Page 16: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 16/46

'nstruenta()o binária

• !ece6e programa como entrada – C+digo onte& –

C+digo o6Deto& – In"ormaçAes de linNagem.

• Sa'da –

Programa e%ecutá(el instrumentado.

Page 17: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 17/46

'nstruenta()o binária

Page 18: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 18/46

'nstruenta()o binária

• $nálise da Instrumentação – Contagem de 6locos& –

ra"o de c,amadas.

Page 19: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 19/46

!ontage de blocos

• )sa como unidade 6ásica um bloco dec&digo• )m trec,o do c+digo e%ecutá(el com um Mnico ponto de

entrada e Mnico ponto de sa'da&

• !ece6e como entrada um e%ecutá(el eproduz• )m e%ecutá(el instrumentado com uma rotina de

análise no in'cio e fm de cada 6loco&• )ma ta6ela com endereços de cada 6loco&• )ma ta6ela com contagens para cada endereço.

Page 20: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 20/46

4ra5o de !6aadas

• Permite coletar estat'sticas mais detal,adasdo >u%o de um programa – Juantos des(ios "oram realizados de um 6loco de

origem para n destinos? – Juantas c,amadas de n 6locos de origem "oram "eitas

para um 6loco destino?

• Constr+i um gra"o de controle de >u%o para oe%ecutá(el instrumentado – Identifca camin,os poss'(eis entre 6locos& – Insere trec,os de instrumentação para cada des(io

encontrado no c+digo 6inário&

Page 21: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 21/46

4ra5o de !6aadas

Page 22: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 22/46

4ra5o de !6aadas

• ifculdades – Saltos indiretos /%ceçAes- longDmp13& – Condition codes;

 – *istura de c+digo e dados& – C+digo Independente de Posição.

Page 23: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 23/46

Siula()o

• Implementa uma máquina (irtual quesimula a arquitetura de um processador&

• Coleta dados da instrumentação de acordocom as instruçAes e%ecutadas eregistradores preenc,idos.

Page 24: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 24/46

!opara()o entre as Técnicas

PRO4R%M+!O7$TERS%MPL'$4

'$STR7ME$T%89O '$;R'%

S'M7L%89O

Sa3da /strutura estat'stica Contagem e%ata Contagem e%ata

O<er6ead !otina de ser(iço deinterrupção

InstruçAes e%tra emcada 6loco

 Tradução einstrumentação decada instrução

Perturba()

o

$leatoriamente

istri6u'da

alta $lta

Repetitibilidade

entro da (arinciaestat'stica

per"eita per"eita

Page 25: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 25/46

Tracing

• Como o profler coleta dados? – !egistra e%ecução de 6locos de c+digo& – Qerifca instruçAes de load e store e%ecutadas no 6loco

e%ecutado& – Qerifca segmentos de dados dentro da pil,a de

e%ecução& – *antém registro dos dados modifcados.

Page 26: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 26/46

,erraentas Profler = M&dulos

*em+ria

Processador

 T,readSistema

Page 27: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 27/46

,erraentas Profler

QTune IntelR&• Code$nalst$*R&

• $Jtime&•

Proelp,i&•  ourUit Va(a&

• Profler&• pProfle&• SamplingProfle

r&• Qalgrind&• >isual>M&• 4pro5.

Page 28: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 28/46

>Tune 'ntel?

• erramenta de análise estat'stica&• !ecol,e amostras em inter(alos regulares

de tempo- determinando qual "unçãoconsome mais recursos da CP) 16aseadono tempo3&

• eterminando qual "unção causa a

utilização mais inefciente do processador16aseado em e(entos3&

• *ede desempen,o sem instrumentação.

Page 29: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 29/46

>Tune 'ntel?

Page 30: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 30/46

>Tune 'ntel?

Page 31: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 31/46

4Pro5 

• /scrita por Va enlason- permite a análiseda per"ormance do algoritmo e e%i6eesses resultados na "orma de gra"o&

• $ análise realizada pelo Pro" permitecon,ecer –

Juantidade de métodos e%istentes noc+digo& – 8Mmero de c,amadas de cada método

ou "unção& – $ porcentagem do tempo gasto para

Page 32: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 32/46

4Pro5 = Passos

• Compilar o programa acrescentando a >agde compilação- atra(és do comando

gcc -pg codigo.c -o nome-exec

• $p+s compilar de(e4se e%ecutar oprograma usando a lin,a de comando – Linux – ./nome-exec (args);

 – Windows – nome-exec.

= gerado um arqui(o com nome de"aultgmon.out  que é interpretado pelo

programa de profle.

Page 33: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 33/46

4Pro5 = Passos

• Para (isualizar a análise gerada pelo Pro"pode4se usar o comando

 – Linux – gprof ./nome-exec (args);

 – Windows – gprof –pq nome-exec.

$utomaticamente o Pro" irá interpretar oarqui(o gmon.out  Duntamente com oe%ecutá(el do programa e irá imprimir na

tela os resultados.

Page 34: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 34/46

4Pro5 

• Ktime @ percentual de tempo gasto&• Cumulati(e seconds @ tempo gasto pela "unção mais tempos das "unçAes

acima da ta6ela&• Sel" seconds @ tempo gasto da "unção&• Calls @ 8r. e c,amadas da "unção&• Sel" msH call @ tempo milisec para c,amar a "unção&•

 Total msHcall @ tempo de c,amada da "unção e descendentes em milisec&• 8ame @ nome da "unção.

Page 35: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 35/46

4Pro5 

Para o6ter outras estat'sticas de(emoscompilar o programa utilizandogcc arqui<o.c +o arqui<o.e/e +5profle+arcs

+5test+co<erage

/ para e%i6ir...

<• gco< arqui<o.c @estat3stica

geralA

9• gco< +5b arqui<o.c @outras

estat3sticasA

Page 36: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 36/46

>isual>M

• erramenta (isual que integra (árias"erramentas da su'te VU. Inclui – *onitoramento de CP)- mem+ria e T,reads& – Profling ,'6rido

• Simulação&• Sampling&• BlocN counting em tempo real&•

Call grap, para snaps,ots de e%ecução.

Page 37: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 37/46

>isual>M

Page 38: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 38/46

>isual>M

fli li ) d

Page 39: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 39/46

Profling B %<alia()o deDesepen6o

• Os proflers au%iliam na a(aliação dedesempen,o trazendo a identifcação depontos a serem mel,orado nos programas

6em como a sugestão de otimização dosprogramas. ei%ando4os com a e%ecuçãomais rápida e em alguns casos commenor taman,o 1COS*OS- 9::;3.

Page 40: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 40/46

Page 41: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 41/46

Prática = >isual>M

)tilizar o QisualQ* para analisar ocomportamento de algoritmos de ordenaçãoimplementados em Va(a.

• )tilizar a6ordagens – Instrumentação 6inária&

 – Program Counter Sampling.

Page 42: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 42/46

E/erc3cio = Problea -

8o grande templo de Bra,ma em Benares- numa 6andeDa demetal so6 a cMpula que marca o centro do mundo- tr#sagul,as de diamante ser(em de pilar a sessenta e quatrodiscos de ouro puro.

Incansa(elmente- os sacerdotes trans"erem os discos- um decada (ez- de agul,a para agul,a- o6edecendo sempre leiimutá(el de Bra,ma

“Nenhum disco se poder so!repor a um menor  W

8o in'cio do mundo todos os sessenta e quatro discos de ouro-"oram dispostos na primeira das tr#s agul,as- constituindo a

 Torre de Bra,ma. 8o momento em que o menor dos discos "orcolocado de tal modo que se "orme uma (ez mais a Torre deBra,ma numa agul,a di"erente da inicial- tanto a torre como o

templo serão trans"ormados em p+ e o ri6om6ar de um tro(ãoassinalará o fm do mundo.

Page 43: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 43/46

E/erc3cio = Problea -

Obser<a()o)ma solução Dá esta implementada- mas "oi identifcado quetem um 6ai%o desempen,o.

Pede+se!eescre(er o programa que calcula o mo(imento de nG9Xdiscos de acordo com as regras esta6elecidas. /m seguida-analisar as duas soluçAes com a "erramenta de profleQisualQ* e discorrer so6re os gan,os perce6idos.

Page 44: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 44/46

E/erc3cio = Problea C

)m ,omem tem um par de coel,os em um am6ienteinteiramente "ec,ado. eseDamos sa6er quantos pares decoel,os podem ser gerados deste par em Y9 meses 1Z anos3-se de um modo natural a cada m#s ocorre a produção de um

par e um par começa a produzir coel,os quando completadois meses de (ida.Especifca(2es:<. 8o primeiro m#s nasce somente um casal&9. Casais amadurecem se%ualmente ap+s o segundo m#s de

(ida&L. 8ão ,á pro6lemas genéticos no cruzamento consangu'neo&Z. Todos os meses- cada casal dá luz a um no(o casal&Y. Os coel,os nunca morrem&

Obser<a()o )ma solução Dá esta implementada- mas "oi

Page 45: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 45/46

E/erc3cio = Problea C

Pede+se!eescre(er o programa que calcula a quantidade de pares decoel,o que podem ser gerados em Y9 meses 1Z anos3 deacordo com as regras esta6elecidas. /m seguida- analisar as

duas soluçAes com a "erramenta de profle QisualQ* ediscorrer so6re os gan,os perce6idos.

Page 46: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 46/46

Re5erncias

C5$Q/S- 0. Dicas para 5acilitar a depura()o de prograas. instituto de computação-)ni(ersidade estadual de campinas- 9:<:.

)![/S- il(an *. SO$!/S- $ndré C. B. IO77$- \illiam . Otii"ando o Desepen6o doSiR% C.1 usandoa Técnica de Profler para 'dentifca()o de 4argalos. 9::F.

8) pro". 'pleentation o5 Profling. ispon'(el em ],ttpHHsource2are.orgH6inutilsHdocsHgpro"HSampling4/rror.,tml^. $cesso em :Y out. 9:<9.

Intel QTune $mplifer / 9:<<. ispon'(el em ],ttpHHso"t2are.intel.comHen4usHarticlesHintel4(tune4amplifer4%eH^. $cesso em <X out. 9:<9.

 V$I8- !aD. %rt o5 !oputer SFstes Per5orance analFsis Tec6niques ,or E/perientalDesign Measureents Siulation %nd Modeling. Vo,n \ile _ Sons- Inc. ISB8:ZX<Y:LL`L-<;;<.

*$CI/0- P. !. Material da disciplina a<alia()o de Desepen6o- 9:<<.

8/TO- 5eleno Pontes Bezerra. 7SO D% ,ERR%ME$T% DE PRO,'LE 4PRO,. 9::;.

PO!UO0$B- 7oltan. *I5$0IC7$- Vozse". P$T$UI- 8or6ert. SIPOS- $dam. %nalFsis o5 ProlingTec6niques 5or !GG Teplate Metaprogras. 9:<:. ispon'(el em ],ttpHHaszt.in".elte.,uHgsdHsHciNNeNHproflingHprofle.pd" ^. $cesso em <`. out. 9:<9.