[R-br] Questão de performance em processamento

Paulo Nogueira Starzynski paulons em gmail.com
Segunda Setembro 2 19:51:39 BRT 2013


Obrigado a todos pela ajuda e debate.
A principal diferença foi alocar todo o vetor antes de começar a atribuir
valores às suas posições. Essa modificação fez um processo de
aproximadamente 15 minutos ser executado em menos de 45 segundos!!

Abraços,
Paulo Nogueira Starzynski


Em 2 de setembro de 2013 18:33, Bernardo Rangel Tura
<tura em centroin.com.br>escreveu:

> On 09/01/2013 12:22 PM, Paulo Nogueira Starzynski wrote:
>
>> Senhores,
>> recorro a lista para buscar ajuda referente a uma questão de tempo de
>> processamento no R.
>> Escrevi um código para realizar, basicamente, operação de contagem
>> dentro de subvetores de um vetor maior. O problema é que a performance
>> vai caindo conforme a tarefa é executada.
>>
>>
>
> Paulo fiz algumas mexidas no seu código acho que ficou muito bom, mas veja
> se resolve. A principal diferença foi eliminar o if dentro do loop com o
> uso de um outro vetor d.adj. No meu sistema rodou tudo em 14.22 segundos
> com os passos variando entre 0.23 a 0.26. Considerando que não tenho
> nenhuma otimização no meu R acho que está bom ...
>
> []s
> Tura
>
> vetor <- rnorm(1499855, mean=46.21,sd=6)
> d<-diff(vetor)
> k<-140
> progress<-seq(2,(length(vetor)**-k), by=10000)
> d.adj <- d[d>0]
> tam<- length(d.adj)
> pctMaiorDepois<-vector('**numeric', tam)
> marcacoes<-NA
>
> t1<-Sys.time()
> for (i in 2:tam){
>     subVetorD<-d.adj[(i+1):(i+k)]
>     pctMaiorDepois[i]<-mean(**subVetorD>0)
>
>   if (any(i==progress)) {
>     t2<-Sys.time()
>     print(paste(round(i/tam,2), round(difftime(t2,t1,units="**secs"),2)))
>     t1<-t2
>   }
> }
>
> ______________________________**_________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/**cgi-bin/mailman/listinfo/r-br<https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br>
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-**guia<http://www.leg.ufpr.br/r-br-guia>)
> e forneça código mínimo reproduzível.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20130902/0655a4d0/attachment.html>


Mais detalhes sobre a lista de discussão R-br