|  | 
| 
	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。 現在的時間是09:56 AM. | 
	vBulletin Version 3.0.1  
powered_by_vbulletin  2025。