CALCULO DE PORCENTAGEM

NALDOXD 14/06/2013 10:41:51
#424771
(QUE VERGONHA)

Pessoal, estou com uma dúvida, tenho eu tenho duas rotinas no C# uma usando DataTable e outra usando DataReader a média do retorno do DataTable esta dando 38 segundos e do DataReader esta dando 15 segundos.. eu queria calcular a porcentagem de vantagem de 38 segundos para 15... eu fiz o seguinte calculo para teste usando regra de três:

100 30
x 15
---------------
30x = 1500
x = 1500/30
x = 50% (correto)

mas quando eu coloco os 38 segundos (seguindo a lógica a porcentagem deveria ser maior mas...)

100 38
x 15
---------------
38x = 1500
x = 1500/38
x = 39,47%

provavelmente a minha conta deve estar errada ou eu estou confundindo os lugares do valor, alguém pode me ajudar.. invertendo o valor da mais de 200% de vantagem e estou achando o valor meio [ô]acima[ô]...

100 15
x 38
--------------
15x = 3800
x = 3800/15
x = 253,33%

alguém me ajuda? Minha lógica está correga? 15 segundos de 38 segundos é 253% mais veloz?
OMAR2011 14/06/2013 11:54:13
#424780
Vai haver controvérsia.
Acho que o cálculo tem que ser feito deste jeito
38 - 15 = 23

15s ------ 100%
23s ------- x

x= 23s x 100%
--------------
15s

x= 153,33

Então,sua velocidade é 153,33% superiror.
NALDOXD 14/06/2013 14:11:17
#424792
Citação:

:
Vai haver controvérsia.
Acho que o cálculo tem que ser feito deste jeito
38 - 15 = 23

15s ------ 100%
23s ------- x

x= 23s x 100%
--------------
15s

x= 153,33

Então,sua velocidade é 153,33% superiror.



Entendo, é que por lógica não bate esses calculos malditos.. ainda sinto que 153,33% é muito acíma do valor que deve ser (eu acho) mas obrigado!..
OCELOT 14/06/2013 16:41:56
#424804
Resposta escolhida
Tem que ver que no seu cálculo não retorna o quanto um é mais rápido que o outro, me parece que ele retorna quantos % do tempo o segundo leva para fazer em comparação ao primeiro.

No caso o primeiro é 30 e o segundo 15, então o segundo leva apenas 50% do tempo do primeiro para completar.

Se o primeiro é 38 e o segundo é 15, então o segundo leva aproximadamente 39% do tempo do primeiro para completar.

Como no primeiro caso o 15 leva metade do tempo, isso significa que ele é 2x mais rápido que o 30, pois no mesmo tempo que o 30 faz apenas uma operação o 15 faz duas operações.

Já o calculo do OMAR parece que retorna a diferença de velocidade, o quanto o segundo faz a mais que o primeiro.

é complicado isso pois se você for pensar 15 é 50% de 30, porém 30 e 200% de 15

Um jeito fácil de saber quantas vezes (e não porcentagem) um é mais rápido que o outro é simplesmente dividir um pelo outro.

30 / 15 = 2
Pois no tempo que o 30 faz 1 operação o 15 faz 2 operação, logo ele é 2x a velocidade do 30

38 / 15 = 2,53
Pois no tempo que o 30 faz 1 operação o 15 faz aproximadamente 2 e meia, logo ele é aproximadamente 2.5x a velocidade do 38

NALDOXD 14/06/2013 16:50:50
#424806
Citação:

Se o primeiro é 38 e o segundo é 15, então o segundo leva aproximadamente 39% do tempo do primeiro para completar.



é claro OCELOT, a resposta estava na cara.. você falando eu conseguir visualizar 15 segundos é 39% de 38 segundo, logo, 100 - 39 = 61 então o resultado que eu queria é, o desempenho do DataReader é 61% mais rápido que o DataTable!!! Obrigado a vocês dois! :D
Tópico encerrado , respostas não são mais permitidas