你好呀 !
我正在循環中迭代許多分析(例如數百萬次),並且我需要存儲結果。 這些結果是文本值和數值。 到目前為止,我將結果存儲在數據表中,但隨著表大小的增加,內存也會增加,並且分析速度往往會降低。
我正在尋找一種節省時間和內存的方法。
該表已經是私有的(如論壇其他主題中所建議的);它使它變得更好,但還不夠。
我嘗試將文本變量保存在列表中,將數字變量保存在向量中(這對於 R 來說非常有效)。 也許我做錯了,但這裡似乎增加了循環時間。
有人有好主意嗎?
我正在使用 Jmp 14,但我可以訪問 JMP 16。
您使用哪些特定平台? JMP 16 和 17 提高了許多平台的速度。
此外,您還可以使用 HP Time() 函數來測試迭代。 一些很好的討論是這裡和這裡。
添加到@傑德坎貝爾的回复,您還可以使用JMP中的分析功能調試器以確定瓶頸在哪裡。
如果內存不足,請留意您忘記關閉的私有數據表。 (嘗試將它們設置為不可見而不是私有,以確保您已關閉它們。 隱形仍然出現在主窗口中。)
如果 JMP 運行速度越來越慢
- 如果您有一台帶有磁盤燈的老式台式機,請密切注意它是否經常亮起。 您可能正在創建非常大的矩陣。 J(10000) 構成一個 2D(非 1D)矩陣。
- 如果您通過連接到末尾來構建字符串或矩陣,那麼隨著字符串或矩陣變大,速度會變得非常慢。 將矩陣預先分配到正確的大小,或者使用字符串部分列表,然後在完成後使用 concatitems() 。
請使用 JSL 調試器的分析器作為@馬克貝利建議。
Wrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, Go扳手、時鐘、Go
如果幸運的話,將會有一個明顯的熱點可能與上面的內容相匹配。
我使用 Kmean 平台(並在此過程中打開和關閉報告)。
我習慣使用 tick Second () ,我不知道 Hp time() 。 看起來好像很相似?
我會檢查您發現的討論,謝謝。
謝謝克雷格,這是非常好的建議,我不知道預先分配大小會有幫助!
我很確定這與我忘記關閉的表無關,因為我的腳本中有一個步驟使我的表可見。