avatar
求问个C# gc的问题# Programming - 葵花宝典
w*e
1
唉,小黑去年12月就领回来了,大概介绍的时候急了些。
肥猫本来没有爪子,在外面流浪的时候又受了欺负,所以对别的猫很不喜欢,小黑凑上
去的时候就哇哇惨叫。
所以后来就一直分开来放,一个在里面,一个在外面,小黑瞅了开卧室门的机会就往里
冲,肥猫就大叫,所以我们每次开卧室门都如临大敌的防着小黑。
但是我后来实在受不了大家都炫耀自己的猫和平相处,而且两个猫大半年了都没有一点
进展,以后万一没有条件隔离两个猫,所以我一搬到ld的新住处,东西收拾好了以后,
就强行让两个猫接触。
其实小黑也不是想打肥猫,她就是想和肥猫一起玩,但是肥猫非常讨厌她,小黑一靠近
就惨叫,伸没有爪子的手乱打,然后小黑就很无辜的看着我,或者对着肥猫倒在床上地
上,把肚皮露出来,然后再试图接近肥猫,又被打。
不过两个星期的强制训练,现在两个猫已经可以在相隔1米的距离相安无事拉。
avatar
g*3
2
最近才开始来programming版,发现高手好多啊,就来请教个工作中遇到的问题。
在程序中,需要频繁开容器来存储从db拿回来的东西,然后做filtering and sorting
,所以请求数据大了之后,会频繁触发gc,导致整个process 锁住,程序性能下降。
数据量比较大,每次从db拿回来的数据可能在几个G~20G的样子。现在的workaround是
distribute query到leaf nod上,但是distribute之后,可靠性又下降了。
请问怎么解?
avatar
s*r
3
难道不能从数据库直接取到filter sort过的数据?这样直接分页拿回就行了

sorting
★ 发自iPhone App: ChineseWeb 8.7

【在 g***3 的大作中提到】
: 最近才开始来programming版,发现高手好多啊,就来请教个工作中遇到的问题。
: 在程序中,需要频繁开容器来存储从db拿回来的东西,然后做filtering and sorting
: ,所以请求数据大了之后,会频繁触发gc,导致整个process 锁住,程序性能下降。
: 数据量比较大,每次从db拿回来的数据可能在几个G~20G的样子。现在的workaround是
: distribute query到leaf nod上,但是distribute之后,可靠性又下降了。
: 请问怎么解?

avatar
d*e
4
你需要lazy.
具体说做个data processing pipeline,
数据端坐一个data stream.
then filter sort save.
最近刚坐个了这么个东西。

sorting

【在 g***3 的大作中提到】
: 最近才开始来programming版,发现高手好多啊,就来请教个工作中遇到的问题。
: 在程序中,需要频繁开容器来存储从db拿回来的东西,然后做filtering and sorting
: ,所以请求数据大了之后,会频繁触发gc,导致整个process 锁住,程序性能下降。
: 数据量比较大,每次从db拿回来的数据可能在几个G~20G的样子。现在的workaround是
: distribute query到leaf nod上,但是distribute之后,可靠性又下降了。
: 请问怎么解?

avatar
g*3
5
sorry, cannot type Chinese with my laptop.
Have to sort and filter across db partitions

【在 s********r 的大作中提到】
: 难道不能从数据库直接取到filter sort过的数据?这样直接分页拿回就行了
:
: sorting
: ★ 发自iPhone App: ChineseWeb 8.7

avatar
g*3
6
not sure what do you mean "lazy".
Do you mean don't get all the data, just get as many as we need?
can you talk the details?
Thx.

【在 d******e 的大作中提到】
: 你需要lazy.
: 具体说做个data processing pipeline,
: 数据端坐一个data stream.
: then filter sort save.
: 最近刚坐个了这么个东西。
:
: sorting

avatar
p*r
7
#1
lazy vs eager,基本就是你理解的意思,
和上面几个高手说page之类的一个意思
比如你现在拿100个page的数据,
可以改成先拿10个page的数据,然后对这个10个数据做处理的同时,
再拿下面20个数据,抓数据用异步,不影响你目前处理数据。
#2
如果你非要一下把数据全拿来,
那我个人觉得架构设计上可能有缺陷,可以考虑改一下架构,
类似上面database大神说的pipe/filter
#3
如果架构上你没法动,或者其他组的问题,
你可以干脆在你这步做一个NOSQL CACHE层,
可以丢进AWS ES做,或者本地用lucene做,

【在 g***3 的大作中提到】
: not sure what do you mean "lazy".
: Do you mean don't get all the data, just get as many as we need?
: can you talk the details?
: Thx.

avatar
N*n
8

sorting
If all you do is filter/sort, you could distribute the work load
onto different nodes with each one holding a subset of data. Let
each node F/S the subset and then merge the sorted results from
them. Merging sorted lists are reasonably fast.

【在 g***3 的大作中提到】
: 最近才开始来programming版,发现高手好多啊,就来请教个工作中遇到的问题。
: 在程序中,需要频繁开容器来存储从db拿回来的东西,然后做filtering and sorting
: ,所以请求数据大了之后,会频繁触发gc,导致整个process 锁住,程序性能下降。
: 数据量比较大,每次从db拿回来的数据可能在几个G~20G的样子。现在的workaround是
: distribute query到leaf nod上,但是distribute之后,可靠性又下降了。
: 请问怎么解?

avatar
g*3
9
多谢pker大牛,现在的问题是数据源是两个不同的db,需要两个source 一起做filter/
sort,所以必须全拿出来,sort好了之后,是page后的往UI送。

【在 p**r 的大作中提到】
: #1
: lazy vs eager,基本就是你理解的意思,
: 和上面几个高手说page之类的一个意思
: 比如你现在拿100个page的数据,
: 可以改成先拿10个page的数据,然后对这个10个数据做处理的同时,
: 再拿下面20个数据,抓数据用异步,不影响你目前处理数据。
: #2
: 如果你非要一下把数据全拿来,
: 那我个人觉得架构设计上可能有缺陷,可以考虑改一下架构,
: 类似上面database大神说的pipe/filter

avatar
g*3
10
that's exactly what we are doing.
The problem of distributed query is the reliability. Once some nodes become
bad status, lots of query are affected.

【在 N********n 的大作中提到】
:
: sorting
: If all you do is filter/sort, you could distribute the work load
: onto different nodes with each one holding a subset of data. Let
: each node F/S the subset and then merge the sorted results from
: them. Merging sorted lists are reasonably fast.

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。