Re: Tempo de execução de programa
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
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
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
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
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
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