![]() |
PCDVD數位科技討論區
(https://www.pcdvd.com.tw/index.php)
- 七嘴八舌異言堂
(https://www.pcdvd.com.tw/forumdisplay.php?f=12)
- - 程式設計問題:暫存檔問題
(https://www.pcdvd.com.tw/showthread.php?t=1064703)
|
|---|
程式設計問題:暫存檔問題
事情是這樣的
我的研究有一部分是寫一個齒輪受力分析程式做數值解 現在的問題是他會輸出一個求解用矩陣(倍精度浮點數陣列) 這個矩陣太大了(佔記憶體 38GB) 但實際上這個矩陣在大部份的時間都用不到,放在記憶體內很浪費 老師希望可以找出方法可以保留陣列型態的方式把他暫存在硬碟中 但目前google到的都是轉成文字檔寫入檔案(C++ VB Delphi...) 不知道有沒有其他語言有支援這種功能的? 或是有其他解決方法? |
根據以往的經驗
知道"結果要什麼",然後再去尋找解答的方法 老師講的建議,聽聽就好 |
假設計算用電腦的記憶體
1.小於38GB,那麼系統可能已經實現你的要求 2.大於38GB,那你特別把它寫到硬碟上純粹浪費I/O效能... 既然大多數時間用不到 那為什麼不是修改程式於使用前再輸出這個矩陣? |
如果只是把記憶體內容丟到檔案.
樓主似乎把問題複雜了. 開個二進位的暫存檔案寫進去就好了. 想寫什麼就寫什麼. 如果矩陣大部分是零,寫檔之前找個簡單的壓縮程式壓一下就好了. |
矩陣每個元素都有非零的值嗎?
matlab 對 sparse martrix 有特別的用法。 |
|
引用:
這句巴了好多老師的臉 :laugh: |
引用:
二進位暫存檔案是正解,先解決問題. 最佳化(優化),後續再處理,不要本末倒置:) 其實不最佳化也可以,現在硬體很便宜,或用系統本身功能如cache,ssd就可以:) |
將你 GOOGLE 來的程式,增添或修改成具備緩衝區
功能的虛擬陣列,保留 64K RAM當緩衝區,直接用 陣列索引當雜湊值,全陣列置入 SSD,結案。 |
引用:
最佳化!!! 好令我感動的用語 ...優化 ,優化 ... 我怎麼聽都不習慣... :cry: :cry: :cry: :cry: :cry: |
| 所有的時間均為GMT +8。 現在的時間是02:33 AM. |
vBulletin Version 3.0.1
powered_by_vbulletin 2025。