![]() |
PCDVD數位科技討論區
(https://www.pcdvd.com.tw/index.php)
- 系統組件
(https://www.pcdvd.com.tw/forumdisplay.php?f=19)
- - 用到大量資料比對以及演算法要用哪種CPU
(https://www.pcdvd.com.tw/showthread.php?t=778938)
|
---|
用到大量資料比對以及演算法要用哪種CPU
用Java寫的程式會用到大量資料比對以及演算法要用哪種CPU?
如果L2大小會有很大的影響,打算放棄E2忍痛買E8系列了 如果完全無關,可能考慮直接用AMD |
如果資重複使用率低, 演算法對資料相依性低, 而且每次運算的資料量大,
那 cache 大就沒有幫助. 如果是比對某些固定的 pattern, 而 pattern 足以塞進 cache, 那可就大大減少 pattern 載入時間. 所以, 還是得看樓主的程式 (更詳細的說明?? ) 搞不好運算複雜, 每秒產出率不到10MB, 那根本不用管 cache 大小. :D |
引用:
字串比對分群,pattern不能算多,但是要比對的資料很多 類似google那種字串搜尋分群,資料量很大,P4 2.4BG Run起來要很久 |
我想,這種時後,與Cache的大小雖然是有關,但影響應該不會太大了
頂多大概影響個 20%的運算效率吧? 整體運算的效能取決於 演算法吧? (這時就得把以前學的 資料結構拿出來好好的唸一唸了... ) 因為裡面就有提到 排序的部份 ,我想這應該就是你要的了吧?? 如果只是單純就使用暴力法,那當然你可以選Intel/AMD的頂級CPU (也要看你有沒有錢啦,有的話,那當然就是買Tyan/SuperMicro/Intel等大廠的MB + 大量的ECC DDR2 DRAM) 另一個問題就是,資料本身的問題,是在Local 主機裡還是存放於另一台 的Database主機裡?? 如果是在另一台主機裡,那問題又來了,另一台主機不夠power,或者 Database太弱,當然也會拖慢效率!! 如果是在localhost ,那效能會好 一點!! 總之,效率的問題很多種,一關卡一關,好好的去找出每個環節的問題 改善之 , 再來談該怎麼implement你的程式吧!! |
若講求效能,用C/C++應該比較適合,
印象中翻過侯傑翻譯的Java書,Java比C/C++慢了10-50倍 |
如果程式可以寫成多執行序的話
那四核應該會是比較好的選擇 |
引用:
我想這應該是在Java HotSpot技術前的速度,現在應該沒這麼懸殊了 |
樓主所謂 "大量資料比對" 是多大量?
一顆CPU的Cache才多大? 而且也不會全部被挪為對比的用途, 所以你應該考量的是浮點運算的速度, 譬如幾位元的CPU搭配幾位元的OS, 以及Memory與CPU的IO速度等等, 這件事情應該從硬體到OS到軟體整體考量, 不單只是Cache的問題那麼簡單喔! :shock: |
引用:
略有所聞,但因Java先天架構的關係,不論如何改良仍比C/C++慢很多倍,實在不適合用在非常需要效能的地方。 此外,越是強調物件導向特性的語言,其對CPU指令解碼分支預測的考驗越是嚴厲,或許L2大一點可加以彌補,但這只是理論上的猜測,不做實驗是無法得知的。我猜就算有幫助,了不起就快一成而已,遠不如改用C/C++有效。 |
Java是在VM上運行的, 與cache應無直接關係 :think:
|
所有的時間均為GMT +8。 現在的時間是03:48 AM. |
vBulletin Version 3.0.1
powered_by_vbulletin 2025。