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/cn.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灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP