uwesterr / CoronaPredict

With AdMOS develop a shiny app to predict corona progress
1 stars 2 forks source link

speed up rechenkern #111

Closed uwesterr closed 4 years ago

uwesterr commented 4 years ago

due to optimisation of the parameters the function rechenkern need to get faster

uwesterr commented 4 years ago

profile code with https://support.rstudio.com/hc/en-us/articles/218221837-Profiling-with-RStudio shows that

updatecalcDf$GesamtAktuellInfizierteBerechnet <- calcDf %>% 
filter((Tag <= updatecalcDf$Tag - ti+1) & (Tag > updatecalcDf$Tag - ende_inf+1 )) %>% 
summarise(sum = sum(NeuGesamtInfizierteBerechnet)) %>% as.numeric()

and here

    updatecalcDf <- tibble(
      Tag                               = tailCalcDf$Tag+1,
      TaeglichReproduktionsRateRt       = calcTaeglichReproduktionsRateRt(Rt, tailCalcDf, Y_inf_limit),
      AktuellInfizierteBerechnet        = n0_erfasst,
      #RestanteilStartwert               = calcRestanteilStartwert(tailCalcDf, n0_erfasst, ta, startDate, date),
      NeuInfizierteBerechnet            = NA,
      ErfassteInfizierteBerechnet       = NA,
      GesamtAktuellInfizierteBerechnet  = 0,
      GesamtInfizierteBerechnet         = NA,
      NeuGesamtInfizierteBerechnet      = 0,
      KhBerechnet                       = NA,
      IntensivBerechnet                 = 0,
      NeueToteBerechnet                 = 0,
      ToteBerechnet                     = 0,
      ReduktionAbDatum                  = 0,
      ReduzierteRt                      = 0,
      MaxKhBerechnet                    = 0,
      MaxIntBerechnet                   = 0,

    )

the majority of time is spend

benchmark rechenkern as is expr min lq mean median uq max neval dfRechenKern <- isolate(Rechenkern(dfRoNoOpt, input, startDate)) 507.7844 523.8768 531.3457 535.2538 542.015 543.4656 10

uwesterr commented 4 years ago

increased speed from 567ns to 349ns