[問題] shiny跑出來的速度很慢

作者: a3236852 (serena)   2018-03-14 16:15:30
[問題類型]:
效能諮詢(我想讓R 跑更快)
[軟體熟悉度]:
入門(寫過其他程式,只是對語法不熟悉)
[問題敘述]:
我用R做了一個股票回測,在放到shiny上,但是回測圖很慢才跑出來,超過10秒
我不確定問題出在哪裡,我想了幾個可能
1.macd(技術指標)的方法我是自己寫的,因為原本的套件跑出來的值跟我要的有點不一樣,
我照著公式寫出來,但是寫的方法是土法煉鋼,有用到迴圈,我知道用到迴圈速度會慢,
但不知道該怎麼改
2.選擇要什麼決策我用checkbox group,假設我今天checkbox寫KD>80,macd<50
抓到的值
K <- "K>80" %in% input$checkstrategy
M <- "macd<50" %in% input$checkstrategy
我用if else的方式把所有可能窮盡
像是 if(K){cond=kd<80}
else if (K&M){cond=kd<80&Macd<50}
else if (M){cond=Macd<50}
像是這樣,我前面有看到一篇一樣是shiny的,但我還是看不懂如何簡化跟怎麼
把我要的公式設成條件
3.方法該放在哪裡,放在output$Strategy <- renderPlot({})輸出還是放在
shinyServer(function(input, output) {}裡面
或是放在shinyServer(function(input, output) {}外面
問題有點雜亂,不好意思~
只是希望能以正常的速度跑出來就好了
不曉得為什麼跑出來的速度很慢
[程式範例]:
程式碼沒有很完整,請見諒
這是1跟2相關的程式碼
https://ideone.com/cZ8153
[環境敘述]:
3.4.1
[關鍵字]:
shiny,速度
作者: clansoda (小笨)   2018-03-14 16:49:00
建議你把每個chunk都time看看,才知道往哪邊優化基本上就是除掉shiny code, 把裡面做的事情time看看吧shinyapp也只是在對方的server上跑R而已如果很慢很有可能是其中幾個chunk向量化的等級不夠
作者: celestialgod (天)   2018-03-14 21:37:00
有資料嗎,code也沒註解,其實不知道怎麼幫你做有完整一點的資訊,板友們會比較容易幫你找到問題

Links booklink

Contact Us: admin [ a t ] ucptt.com