我有一個在我的程序中使用了很多的嚮導類。不幸的是,該向導需要一段時間才能加載,主要是因爲GUI框架非常慢。我試圖多次重新設計嚮導類(比如使對象可重用,所以它只創建一次),但我總是在某處碰到磚牆。那麼,在這一點上,將這個野獸的50個實例加載到一個矢量中並在我使用它時彈出它們,這是一個巨大的醜陋攻擊?這種方式延遲只會在啓動時被注意到,並在此後運行良好。太多的黑客?這樣的結構是否共同?創建我的對象需要很長時間。在啓動時創建大量實例以便稍後加快速度是不好的做法嗎?
1
A
回答
2
在遊戲中,我們經常首先分配和構造遊戲會話中需要的所有東西。然後我們回收這些對象,如果它們的生命期很短,試圖在遊戲會話運行時獲得0分配/釋放。
所以,不,它不是一個真正的黑客攻擊,讓計算機做更少的工作以獲得更快的速度是很有道理的。一種策略是「緩存」,即一般情況下,首先計算您的非變量數據,然後使用動態數據運行。在可能和必要的情況下,必須在使用之前準備內存分配,對象構造等。
0
是的,這是不好的做法,它打破了RFC2549標準。
好吧,我只是在開玩笑。做任何最適合你的應用的東西。這不是「黑客」或「標準」的問題。
只要確保你有適當的文件,說明什麼不像應該的那樣直截了當(如黑客)。
相信我,如果5K的投資產生了大量黑客(如Windows)的產品,那麼他們[黑客]必須在某個時刻真正幫助。
0
不幸的是,嚮導需要一段時間才能加載,主要是因爲GUI框架非常慢。
是不是一個嚮導只是一個基於表單的模板?這不應該帶來實質性的開銷嗎?查找什麼會減慢框架(未壓縮的背景圖像?)並修復根本原因。
作爲一種權宜之計,您可以在後臺創建窗口,並在用戶詢問之前不顯示它們。但顯然這只是將問題轉移到其他地方。即使你在啓動時在後臺線程中創建它們,用戶的第一個命令可能會要求最後一個嚮導,然後它們必須等待50倍的時間......他們可能會將其解釋爲崩潰。至少,預測並測試這樣的角落案例。還要在低RAM設置上進行測試。
相關問題
- 1. 在啓動畫面中創建對象以便稍後使用
- 2. 爲什麼我的對象需要很長時間才能創建?
- 3. 爲什麼在VB6中創建新的Crystal Report對象需要很長時間?
- 4. 創建SQL Server 2014執行計劃需要很長時間(在舊版本中速度很快)
- 5. C#對象創建需要時間
- 6. 聚合創建需要很長時間的頻率矩陣
- 7. 創建索引需要很長的時間
- 8. 物化視圖的創建速度很快,但刷新需要幾小時
- 9. 創建表格後很長時間創建觸發器
- 10. WYSIHTML5 - 創建多個實例時速度很慢
- 11. 將HTML創建爲PDF需要很長時間
- 12. 加快ASP.NET的速度需要多長時間?
- 13. 使用FFmpeg創建大型電影的縮略圖需要很長時間
- 14. 是內核單例,我可以在需要時創建它
- 15. 我可以在RedShift中創建快速插入臨時表嗎?
- 16. ASP.NET無法啓動創建的類的實例對象
- 17. 創建鏈表時,我們不需要創建實際節點嗎?
- 18. 爲什麼我的Eclipse需要很長時間才能啓動?
- 19. Coldfusion CFC的創建需要花費大量時間來執行
- 20. 在創建對象時動態創建綁定 - 可能嗎?
- 21. 調用變量時不創建對象實例
- 22. IOS的測試需要很長時間才能添加構建
- 23. 通過ODBC創建數據庫需要很長的時間在sql服務器
- 24. 我可以在創建PDF時減少加載時間嗎?
- 25. 在對象創建時/創建對象後設置Parse.Object.relation
- 26. 寶途EC2創建磁盤需要要創建一個很長一段時間 - Python的
- 27. 大TChart需要很長時間繪製
- 28. Powershell在加載ssh-agent/git時需要很長時間來啓動加載
- 29. res.cookie在很長一段時間後停止創建cookie
- 30. 需要方法創建並且在實例確實存在時不更新
std :: vector.reserve()確實如此,這是一個糟糕的設計? – Grozz 2010-10-09 23:03:57