java 板


LINE

各位大大,小弟我最近在寫一支程式 是針對一個 "物件陣列"做循序的條件比對,物件陣列數約莫24萬個 比對的參數有8種a, b, c, d,.....h 比對方式像是這樣, 先比較 物件[0].value >= a,如果是就要去做某個數值計算 再比較 物件[0].value <= b,如果是就去做另一個數值計算 最後每一組參數都會得到一個結果R,紀錄起來後,再運算下一組參數 所以我寫了一個迴圈像是以下這樣 for(int a=0.4 ; a<0.9 ; a+=0.1){   for(int b=0.4 ; b<0.9 ; b+=0.1 ){ ........(好幾層迴圈) for(int h=1.0 ; h<1.5 ; h+=0.1){ //計算完結果,寫入記事本 fileWriter.write(test(物件陣列, a, b, c,..., h)+"\r\n"); } } } test函數,會把物件陣列循序的提出來,進行比對,然後把結果寫入記事本 最一開始做一次,大概要5~6秒的時間,但是越到後來,速度越慢,到了60幾秒做一次, 我每完成一個參數比對都有把全域變數=null掉,並呼叫gc(),僅留下那個物件陣列沒 釋放,因為要一直對他做比對,除此之外,跑這個大量回圈比對時。 我是另外呼叫一個SwingWorker,在背景中做算算,僅僅一個,沒用到多Thread, 我估狗過了,但幾乎都是在講多執行緒的問題,但我除了GUI的Thread,僅多一條而以, 請問有各位高手大大有什麼想法嗎...或是直接知道是怎麼回事... 另外我想問 StringBuilder的問題,到現在1.8還是依舊嗎?還是說有修正了? --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.241.138.246
※ 文章網址: https://webptt.com/m.aspx?n=bbs/java/M.1480337878.A.20D.html ※ 編輯: baconcsie (123.241.138.246), 11/28/2016 21:06:24
1F:→ cug990617: 你的for迴圈全部分開吧,綁在一起會是倍數成長,效能很 11/28 21:45
2F:→ cug990617: 差 11/28 21:45
3F:→ baconcsie: 不太了解大大的意思,通通綁在一起跑,為何會影響效能? 11/28 22:01
4F:→ baconcsie: 因為要測遍所有的參數組合,才會這樣寫... 11/28 22:02
5F:→ pttworld: 可稱為條件就是如果if這的,還可以配邏輯運算子。 11/28 23:24
6F:→ cug990617: 抱歉,看錯,誤會意思,請忽略我上面說的。 11/29 00:53
7F:→ cug990617: 另外是否要輸出的值過多堆積在記憶體裡,可嘗試flush看 11/29 00:53
8F:→ cug990617: 看是否能改善。 11/29 00:53
9F:推 LaPass: int a=0.4 ???? java不能這樣寫吧? 11/29 09:51
10F:→ LaPass: 還有,妳這個到底是在算什麼東西?把問題完整的講出來,有 11/29 09:52
11F:→ LaPass: 時候直接換一套演算法可以加速好多倍 11/29 09:52
12F:→ KekeMonster: 有試過把gc()拿掉嗎?感覺你花在gc的時間比運算還多 11/29 10:08
13F:→ ssccg: 重點是你的記算內容,數值計算都用primitive type、local 11/29 10:15
14F:→ ssccg: 變數的話,為什麼要gc? 11/29 10:16
15F:推 gmoz: 該不會變成超大的笛卡兒積吧 11/29 11:08
16F:→ gmoz: 是不是有變數沒RESET阿 11/29 11:08
17F:→ gmoz: 你的運算應該也就24X8= 190萬次左右的運算吧 11/29 11:09
18F:→ gmoz: 放個count看看跑了幾次? 11/29 11:10
19F:→ gmoz: 沒看仔細 不只190萬.. 我覺得先加COUNT吧 自己先估計一下 11/29 11:15
20F:→ gmoz: 你有看一下跑的時候記憶體吃多少嗎 11/29 11:17
21F:→ riddlefree: 你的程式和你描述的邏輯不太合 11/29 11:39
22F:→ lucky1lk: 你的程式有跑完的一天嗎@@ 你的型別怪怪der 11/29 12:47
23F:→ baconcsie: 記憶體吃的不多幾G而已,變數每完成一次最小迴圈都會nu 11/29 16:04
24F:→ baconcsie: ll一次 11/29 16:04
25F:→ ripple0129: 先單元化吧,別把全部邏輯塞一堆 11/29 16:14
26F:推 gmoz: 話說你的"一開始做一次"是什麼意思 最內圈迴圈? 11/29 17:31
27F:→ baconcsie: 是的 最內迴圈 做一次test,要5~6秒 11/30 02:04
28F:推 gmoz: 內層迴圈5秒 第二層 n次跑5*n秒 第三層m次跑5*n*m秒 正常吧 11/30 11:46
29F:→ gmoz: 還是內層迴圈越來越慢(? 11/30 11:47
30F:→ baconcsie: 對 最內層的test每執行一次的完成時間,越來越久 11/30 17:16
31F:推 gmoz: 換電腦或換個OS跑跑看? 12/01 14:22
32F:→ gmoz: Jconsole? 12/01 14:23
33F:→ twntwn: 看看你是不是IO Bound呀 12/04 23:10
34F:推 friendever: 這為何不會compile error? int a = 0.4怎麼會動 01/13 08:06







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:WOW站內搜尋

TOP