Jump to content

Um segundo.... é um segundo???


NameException
 Share

Recommended Posts

Regra geral, o relógio do PC é extremamente fiável. Um Timer de um programa já não.

Nunca se consegue um segundo mesmo um segundo - até os relógios atómicos ficam com atrasos passados muitos anos. 🙂

A questão que se coloca é: quão próximo do "verdadeiro" segundo fica o segundo contado pelo PC? 🙂

Resposta: como referi, o relógio é muito fiável para o nosso tempo médio de vida. Timers e outros semelhantes já não.

Cumpriumentos.

Knowledge is free!

Link to comment
Share on other sites

Concordo...

De facto estou a medir o tempo retornado pela execução de um programa. Ou melhor, o tempo de execução de determinado código executado por esse programa.

O que pretendo então confirmar é se o tempo que obtenho corresponde mesmo à realidade. Isto é, se obtiver como resposta do programa que determinado pedaço de código que executou demorou 10seg a executar, se foi exactamente 10seg e não 10,1 ou 9,9seg quando comparado com outra forma de medição que não pelo programa que executa o código.

Espero não ter sido demasiado confuso...

Link to comment
Share on other sites

A melhor forma de cronometrar a execução de um programa é utilizar o relógio do sistema.

No início, mesmo antes do primeiro processo, guardas a hora do sistema. Mesmo no fim, lês a data do sistema, fazes a diferença, e voilá. O tempo mais fiável que, pessoalmente, conheço para PCs. 🙂

Knowledge is free!

Link to comment
Share on other sites

Thoga31, de facto esse tipo de implementação resultava no caso de pretender calcular o tempo total de execução de um programa.

Para ser mais específico, estou a utilizar a aplicação QTP para automatizar testes a aplicações web. Os programa executados no QTP são desenvolvidos na linguagem VBScript.

O que pretendo então, é verificar por exemplo, se o tempo de execução de um trecho de código que abre browser, medido pelo QTP será o mesmo tempo se este for medido por outra aplicação.

Talvez não seja de fácil implementação, por ao que me parece, será algo intrusivo.... visto que estou a querer calcular o tempo de execução de determinado pedaço de código que está a ser executado por uma outra aplicação...

Obrigado, pelas dicas que possa dar...

Link to comment
Share on other sites

Assim em traços gerais... não

Tens diferentes tipos de tempo de processamento... Tens o tempo "real", e tens o tempo efectivo de processamento, o tempo que o processo gasta no CPU. Não te esqueças que existem vários processo a correr ao "mesmo tempo" embora o CPU apenas trate um de cada vez (por core).

Assim se uma aplicação te medir o tempo real, e outra o tempo de CPU, vão seguramente dar tempos diferentes.

Mais, convém não esquecer que diferentes chamadas do mesmo código podem levar tempos de processamento diferentes, dependendo de tempos de espera de IO, assim como estão sujeitos ao escalonamento por parte do SO.

Mas não sei ao certo o que faz o código que queres medir, nem como o QTP o mede. Por instinto diria que será o tempo de CPU, visto que é o que melhor determina a eficiência de uma aplicação.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.