作者bebeewei (蜜蜂)
看板AndroidDev
标题[问题] 关於平行计算 反而更慢
时间Thu Jul 10 00:14:09 2014
最近用到平行程式 想请教两个问题
第一个问题是
我用 AsyncTask 开五个 加上 原本的main thread 下去跑,
(总共六个thread跑)跑出来的时间竟然比没有用Async Task 还慢.....
PS:真得有平行在跑 有看system.out
请问有人有遇到同样的问题吗? 搞不懂为甚麽开thread 会 跑得比较慢?
请问该如何加快呢?
第二个问题是
请问有前辈可以分享一下用平行计算的经验吗?
感激
--
I like people= )
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.114.234.143
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1404922453.A.59C.html
1F:→ Deltaguita:何必一次开6个呢? 开一个在背景跑就好了啊 07/10 00:16
2F:→ Deltaguita:AsyncTask 是为了不影响UI Thread而使用的 07/10 00:16
3F:推 typepeter:Async是不会block main thread, 不代表会比较快 07/10 00:17
4F:→ typepeter:越多额外的thread会有明显的overhead 07/10 00:18
5F:→ Deltaguita:并不是开越多Thread越快,你的CUP并没有因此而变多 07/10 00:18
6F:→ typepeter:Async的好处是使用者不会觉得反应顿顿的 不是真的快 07/10 00:18
7F:→ bebeewei:请问该如何加快呢?? 07/10 00:27
8F:→ bebeewei:感激各位前辈回答 07/10 00:27
※ 编辑: bebeewei (140.114.234.143), 07/10/2014 00:27:55
9F:→ bebeewei:目的是为了加速 所以想说开thread 07/10 00:30
10F:推 tac0wu:看你处理的事情是甚麽 RenderScript看能不能帮上忙 07/10 01:16
11F:→ tac0wu:Default AsyncTask是serial的 详情 07/10 01:18
13F:→ redok:load够多 开thread才有意义, 同时也要满足有多核心的环境 07/10 01:19
14F:→ redok:loading 07/10 01:20
15F:→ redok:而且你thread也要刚好在不同核心上运作才有效果 07/10 01:20
16F:推 Killercat:不要用AsyncTask...... 07/10 13:19
17F:→ Killercat:基本的thread<=>handler不好嘛 干嘛要多包一层 XD 07/10 13:19
18F:→ anguso:thread<=>handler 没办法用 thread pool. AsyncTask 可以 07/10 14:03
19F:→ JULONE780701:multiThread不是用来加速的吧... 07/10 15:36
20F:→ bebeewei:我很确定有平行跑~ 另外我今天测试过thread了 07/10 23:06
21F:→ bebeewei:结果还是慢的~~Q___Q 07/10 23:06
22F:推 tac0wu:你甚麽平行应用都没讲 我们这样隔空抓药 也很无奈 07/11 01:07
23F:→ Deltaguita:有些东西在VM上跑的确会慢些 考虑用JNI吗? 07/11 01:39
24F:→ Killercat:我不太懂位什麽不能丢pool, new个executor丢进去会有 07/11 10:44
25F:→ Killercat:什麽问题嘛(抓头)? 07/11 10:45
26F:推 changyuheng:请问您执行环境的 CPU 是几核心? 07/11 13:16
28F:推 wgl1242254:平行化是一件非常麻烦的事情XD 07/11 14:37
29F:→ Killercat:maa..我想他说的平行跑应该根平行化是不同的事情... 07/11 15:10
30F:→ Killercat:不过元po要知道 因为Context Switch要成本 这搞不好更慢 07/11 15:11
31F:→ Killercat:在一个没有互相等待的case来讲 单核跑多绪不会比较快 07/11 15:12
32F:→ issuemylove:concurrent 跟 parallel 要搞清楚呀 07/11 15:13
33F:→ Killercat:除非你有很多逻辑核 而且确定作业系统会帮你dispatch 07/11 15:13
34F:→ issuemylove:不然你讲讲 System.out你写了甚麽 07/11 15:15
35F:→ bebeewei:hi 各位前辈不好意思那麽晚回 07/13 21:13
36F:→ bebeewei:我用的是S4 是双四核 我是假设有一百笔资料 07/13 21:14
37F:→ bebeewei:每笔做同样的事情 07/13 21:14
38F:→ bebeewei:有的 我就是用那篇的方法 07/13 21:17