请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

就一般的网络请求和数据库操作,一般核心数设置多少合适?

因为使用数据库非常频繁,网络是使用Rxjava的线程池,现在就想知道数据库操作使用多少个核心线程数合适,基本上每一条Item都会使用数据库查询。

正在回答 回答被采纳积分+3

8回答

提问者 TT2_X 2020-09-26 22:27:34

其他不看,这里是重点:

真的建议64个吗,在一些低端机,比如1024M的运行内存,480*800的手机上也64个?

1 回复 有任何疑惑可以回复我~
  • 提问者 TT2_X #1
    用户很多都是低端机,所以我都是按照CPU核心计算的。
    回复 有任何疑惑可以回复我~ 2020-09-26 22:31:51
  • 随风绽放 回复 提问者 TT2_X #2
    同学,这个针对cpu密集型的可以,但是io的你可以多设置。你说的1024m和线程的没多大关联,线程创建消耗的更多是虚拟内存,1024是物理内存,而且中间还有个堆内存限制。这几个概念别混了。
    回复 有任何疑惑可以回复我~ 2020-09-26 22:35:06
  • 提问者 TT2_X 回复 随风绽放 #3
    那我的任务基本是操作文件和数据库还有一些数据量比较大的for循环,而且查询数据库是及其频繁的,因为一个页面可以看见的条目大概12个,并且是分页,每个条目都进行了查询。网络用的Okhttp和Rxjava和Retrofit,Rxjava和Okhttp都有独立的线程池我也不进行控制,其他第三方的我也不进行控制。这样你建议多少个
    回复 有任何疑惑可以回复我~ 2020-09-26 22:44:05
提问者 TT2_X 2020-09-26 22:17:10

如何删除此问题,我新开一个。

1 回复 有任何疑惑可以回复我~
  • 我不会关问题的,就这值得我关问题?
    回复 有任何疑惑可以回复我~ 2020-09-26 22:20:01
  • 提问者 TT2_X 回复 随风绽放 #2
    我搞错了
    回复 有任何疑惑可以回复我~ 2020-09-26 22:24:21
提问者 TT2_X 2020-09-26 20:43:50

经过测试在1024M运行内存的手机上,核心线程设置为60直接进应用就崩。

1 回复 有任何疑惑可以回复我~
  • 同学你好,你看下崩的因为什么
    回复 有任何疑惑可以回复我~ 2020-09-26 21:21:19
  • 提问者 TT2_X 回复 随风绽放 #2
    一进应用创建那么多线程,分配内存都不够
    回复 有任何疑惑可以回复我~ 2020-09-26 21:33:46
  • 提问者 TT2_X 回复 随风绽放 #3
    实实在在的崩溃了,你可以自己尝试在1024M运行内存的手机上,使用60个核心线程的固定线程尝试。
    回复 有任何疑惑可以回复我~ 2020-09-26 21:46:53
提问者 TT2_X 2020-09-26 21:37:57

这就是崩溃的原因https://img1.sycdn.imooc.com//szimg/5f6f440009b75faf19910215.jpghttps://img1.sycdn.imooc.com/szimg/5f6f442f09eebaac15990805.jpg

0 回复 有任何疑惑可以回复我~
提问者 TT2_X 2020-09-26 20:41:49

https://img1.sycdn.imooc.com//szimg/5f6f36df0901b9a803560814.jpg实在是不知道这么控制

0 回复 有任何疑惑可以回复我~
提问者 TT2_X 2020-09-26 20:34:56

在运行内存为1024m的手机上,你一下子就创建64个线程,怕不是还没有使用应用功能就崩溃了。

0 回复 有任何疑惑可以回复我~
  • 同学你刚开始怎么不说你是 1024 的手机呢?我们的app 一开启到启动完成就是 200 多个线程,信不信由你。
    
    你知道单个设备线程数限制吗?64 算个毛线啊!
    回复 有任何疑惑可以回复我~ 2020-09-26 21:23:50
  • 不仅是我们的 App,我经历过的 所有App 国内的、海外的,包括市面所有的中大型 App。
    回复 有任何疑惑可以回复我~ 2020-09-26 21:24:53
  • 哈哈哈这个问答区现在再看,有点儿看相声的感觉了,第一看到老师的“毛线”,用“算球”会不会更合适
    回复 有任何疑惑可以回复我~ 2022-07-29 14:50:07
提问者 TT2_X 2020-09-26 20:33:32

64这么大开什么玩笑呀!我都是2*n+1大于14就等于14

0 回复 有任何疑惑可以回复我~
随风绽放 2020-09-26 20:29:25

一般来说,网络请求和数据库操作都是 IO 密集型任务,这样的你可以设置为 64。不过还是需要根据项目中对这个线程池的使用情况综合决定。

0 回复 有任何疑惑可以回复我~
  • 提问者 TT2_X #1
    64?能发一下你的线程池代码吗?
    回复 有任何疑惑可以回复我~ 2020-09-26 20:46:20
  • 提问者 TT2_X #2
    299就问几个问题,这都不回复吗?
    回复 有任何疑惑可以回复我~ 2020-09-26 20:54:11
  • 随风绽放 回复 提问者 TT2_X #3
    同学,说话讲道理讲良心,我有不回复????????
    回复 有任何疑惑可以回复我~ 2020-09-26 21:22:09
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信