Re: Tempo de execução de programa

2008-08-26 Por tôpico Erick Andrade
Mauro..

Essas informações sobre tempo de processo estão na task_struct, no kernel.

Com LKM é trivial obter essas informações, mas em user-mode:

The short answer is no, POSIX does not provide a system call to get the
start time of a process, so there is not simple standard way to get this
information across unixes.

http://simons-clan.com/~msimons/proc


Se você procurar, deve haver alguma forma. Senão, kernel-mode é a solução.



Até +


--
[]s
Erick


Re: Tempo de execução de programa

2008-08-25 Por tôpico PEdroArthur_JEdi
Recomendo utilizar o gprof. Ele gera um perfil de sua aplicação.

Um exemplo rápido:

$ gcc fonte.c -O0 -pg
$ ./a.out
$ gprof a.out gmon.out

No primeiro comando estamos desativando a otimização e adicionando a
flag de profiling. O segundo comando gera o arquivo gmon.out para que
possa ser analisado no gprof. O terceiro comando interpreta as
informações geradas pela execução do programa retornando-as em modo
legível.

ps[0] = Assumi que seu programa está em C;

-- 
PEdroArthur_JEdi


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Tempo de execução de programa

2008-08-25 Por tôpico Mauro 'Kenny' Freitas
Ele está em C sim, vou dar uma olhada agora

2008/8/25 PEdroArthur_JEdi [EMAIL PROTECTED]

 Recomendo utilizar o gprof. Ele gera um perfil de sua aplicação.

 Um exemplo rápido:

 $ gcc fonte.c -O0 -pg
 $ ./a.out
 $ gprof a.out gmon.out

 No primeiro comando estamos desativando a otimização e adicionando a
 flag de profiling. O segundo comando gera o arquivo gmon.out para que
 possa ser analisado no gprof. O terceiro comando interpreta as
 informações geradas pela execução do programa retornando-as em modo
 legível.

 ps[0] = Assumi que seu programa está em C;

 --
 PEdroArthur_JEdi



Re: Tempo de execução de programa

2008-08-24 Por tôpico Davi Vercillo C. Garcia (デビッド)
Se você quiser, você pode usar um script em Python q faça isso pra
você. É bem simples:

= START =

import os
import sys
from time import time

t = time()
os.system('./foo.sh')
print time() - t

= END =

Basta subtituir o './foo.sh' pelo seu programa. Acho que a chamada do
os.system() não afetará, sensivelmente, o tempo de execução do seu
programa.

On Sun, Aug 24, 2008 at 9:35 PM, Mauro 'Kenny' Freitas
[EMAIL PROTECTED] wrote:
 Olá a todos,

 To querendo medir em quanto tempo um programa é executado, pode ser em
 ciclos de clock ou tempo mesmo.
 Fiz algumas tentativas com o comando time no terminal, mas como o programa
 que estou querendo testar executa em pouco tempo aparece 0 segundos no user
 e no sys(tempo em user mode e kernel mode), tem como aumentar a precisão
 desse comando pra eu poder ver em milisegundos?
 Nao usei o elapsed time porque ele conta todo o tempo inclusive o tempo que
 o processador escalonou pra outro processo.

 Outra tentativa que fiz foi dar um cat /proc/id_do_processo/stat e ver o
 tempo que é retornado em jiffies.
 Só que cai no mesmo problema de ele ser muito rápido e eu nao poder executar
 o comando acima ja que eu nao sei em qual id que ele vai pegar. E depois que
 eu consigo o id já acabou o processo.

 Preciso de alguma idéia, obrigado.




-- 
Davi Vercillo Carneiro Garcia
http://davivercillo.blogspot.com/

Universidade Federal do Rio de Janeiro
Departamento de Ciência da Computação
DCC-IM/UFRJ - http://www.dcc.ufrj.br

Grupo de Usuários GNU/Linux da UFRJ (GUL-UFRJ)
http://groups.google.com/group/gul-ufrj

Linux User: #388711
http://counter.li.org/

Good things come to those who... wait. - Debian Project

A computer is like air conditioning: it becomes useless when you open
windows. - Linus Torvalds


Re: Tempo de execução de programa

2008-08-24 Por tôpico Mauro 'Kenny' Freitas
Mas ele pegaria o tempo total de execução e nao o tempo que o programa ficou
em execução.
Se o programa foi retirado do processador e colocado outro no lugar e depois
de um tempo ele volta e termina seu processamento,
todo esse tempo é contado. Eu queria pegar somente o tempo de processamento,
para nao haver essa interferencia da multiprogramação.

2008/8/24 Davi Vercillo C. Garcia (デビッド) [EMAIL PROTECTED]

 Se você quiser, você pode usar um script em Python q faça isso pra
 você. É bem simples:

 = START =

 import os
 import sys
 from time import time

 t = time()
 os.system('./foo.sh')
 print time() - t

 = END =

 Basta subtituir o './foo.sh' pelo seu programa. Acho que a chamada do
 os.system() não afetará, sensivelmente, o tempo de execução do seu
 programa.

 On Sun, Aug 24, 2008 at 9:35 PM, Mauro 'Kenny' Freitas
 [EMAIL PROTECTED] wrote:
  Olá a todos,
 
  To querendo medir em quanto tempo um programa é executado, pode ser em
  ciclos de clock ou tempo mesmo.
  Fiz algumas tentativas com o comando time no terminal, mas como o
 programa
  que estou querendo testar executa em pouco tempo aparece 0 segundos no
 user
  e no sys(tempo em user mode e kernel mode), tem como aumentar a precisão
  desse comando pra eu poder ver em milisegundos?
  Nao usei o elapsed time porque ele conta todo o tempo inclusive o tempo
 que
  o processador escalonou pra outro processo.
 
  Outra tentativa que fiz foi dar um cat /proc/id_do_processo/stat e ver o
  tempo que é retornado em jiffies.
  Só que cai no mesmo problema de ele ser muito rápido e eu nao poder
 executar
  o comando acima ja que eu nao sei em qual id que ele vai pegar. E depois
 que
  eu consigo o id já acabou o processo.
 
  Preciso de alguma idéia, obrigado.
 



 --
 Davi Vercillo Carneiro Garcia
 http://davivercillo.blogspot.com/

 Universidade Federal do Rio de Janeiro
 Departamento de Ciência da Computação
 DCC-IM/UFRJ - http://www.dcc.ufrj.br

 Grupo de Usuários GNU/Linux da UFRJ (GUL-UFRJ)
 http://groups.google.com/group/gul-ufrj

 Linux User: #388711
 http://counter.li.org/

 Good things come to those who... wait. - Debian Project

 A computer is like air conditioning: it becomes useless when you open
 windows. - Linus Torvalds



Re: Tempo de execução de programa

2008-08-24 Por tôpico Davi Vercillo C. Garcia (デビッド)
Mas desse jeito teria que ser implementado direto no programa... e
provavelmente em baixo nivel... já que você quer saber o tempo somente
enquanto os processadores estão rodando ele...

2008/8/24 Mauro 'Kenny' Freitas [EMAIL PROTECTED]:
 Mas ele pegaria o tempo total de execução e nao o tempo que o programa ficou
 em execução.
 Se o programa foi retirado do processador e colocado outro no lugar e depois
 de um tempo ele volta e termina seu processamento,
 todo esse tempo é contado. Eu queria pegar somente o tempo de processamento,
 para nao haver essa interferencia da multiprogramação.

 2008/8/24 Davi Vercillo C. Garcia (デビッド) [EMAIL PROTECTED]

 Se você quiser, você pode usar um script em Python q faça isso pra
 você. É bem simples:

 = START =

 import os
 import sys
 from time import time

 t = time()
 os.system('./foo.sh')
 print time() - t

 = END =

 Basta subtituir o './foo.sh' pelo seu programa. Acho que a chamada do
 os.system() não afetará, sensivelmente, o tempo de execução do seu
 programa.

 On Sun, Aug 24, 2008 at 9:35 PM, Mauro 'Kenny' Freitas
 [EMAIL PROTECTED] wrote:
  Olá a todos,
 
  To querendo medir em quanto tempo um programa é executado, pode ser em
  ciclos de clock ou tempo mesmo.
  Fiz algumas tentativas com o comando time no terminal, mas como o
  programa
  que estou querendo testar executa em pouco tempo aparece 0 segundos no
  user
  e no sys(tempo em user mode e kernel mode), tem como aumentar a precisão
  desse comando pra eu poder ver em milisegundos?
  Nao usei o elapsed time porque ele conta todo o tempo inclusive o tempo
  que
  o processador escalonou pra outro processo.
 
  Outra tentativa que fiz foi dar um cat /proc/id_do_processo/stat e ver o
  tempo que é retornado em jiffies.
  Só que cai no mesmo problema de ele ser muito rápido e eu nao poder
  executar
  o comando acima ja que eu nao sei em qual id que ele vai pegar. E depois
  que
  eu consigo o id já acabou o processo.
 
  Preciso de alguma idéia, obrigado.
 



 --
 Davi Vercillo Carneiro Garcia
 http://davivercillo.blogspot.com/

 Universidade Federal do Rio de Janeiro
 Departamento de Ciência da Computação
 DCC-IM/UFRJ - http://www.dcc.ufrj.br

 Grupo de Usuários GNU/Linux da UFRJ (GUL-UFRJ)
 http://groups.google.com/group/gul-ufrj

 Linux User: #388711
 http://counter.li.org/

 Good things come to those who... wait. - Debian Project

 A computer is like air conditioning: it becomes useless when you open
 windows. - Linus Torvalds





-- 
Davi Vercillo Carneiro Garcia
http://davivercillo.blogspot.com/

Universidade Federal do Rio de Janeiro
Departamento de Ciência da Computação
DCC-IM/UFRJ - http://www.dcc.ufrj.br

Grupo de Usuários GNU/Linux da UFRJ (GUL-UFRJ)
http://groups.google.com/group/gul-ufrj

Linux User: #388711
http://counter.li.org/

Good things come to those who... wait. - Debian Project

A computer is like air conditioning: it becomes useless when you open
windows. - Linus Torvalds