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

看板R_Language作者 (serena)時間6年前 (2018/03/14 16:15), 6年前編輯推噓0(006)
留言6則, 2人參與, 6年前最新討論串1/1
[問題類型]: 效能諮詢(我想讓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,速度 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.162.129.151 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1521015335.A.237.html ※ 編輯: a3236852 (1.162.129.151), 03/14/2018 16:16:38 ※ 編輯: a3236852 (1.162.129.151), 03/14/2018 16:17:32

03/14 16:49, 6年前 , 1F
建議你把每個chunk都time看看,才知道往哪邊優化
03/14 16:49, 1F
不好意思,請問要怎麼測時間呢?我只知道有system.time()但不知道怎麼用這個測SHINY 每個區塊跑的時間,謝謝!!!! ※ 編輯: a3236852 (1.162.129.151), 03/14/2018 16:56:38

03/14 17:41, 6年前 , 2F
基本上就是除掉shiny code, 把裡面做的事情time看看吧
03/14 17:41, 2F

03/14 17:43, 6年前 , 3F
shinyapp也只是在對方的server上跑R而已
03/14 17:43, 3F

03/14 17:43, 6年前 , 4F
如果很慢很有可能是其中幾個chunk向量化的等級不夠
03/14 17:43, 4F

03/14 21:37, 6年前 , 5F
有資料嗎,code也沒註解,其實不知道怎麼幫你做
03/14 21:37, 5F

03/14 21:37, 6年前 , 6F
有完整一點的資訊,板友們會比較容易幫你找到問題
03/14 21:37, 6F
文章代碼(AID): #1QgDed8t (R_Language)