问题描述
领导设计是分层方式,其中有个内存数据过滤层,都用得变量,数据字典,lisft,object什么,这内存数据过滤层怎么来写?多线程、委托、回调什么有管理内存的么?
解决方案
解决方案二:
你说的那几个技术都会用得到,数据存储的数据结构多样(数组,列表,字典,树,链表甚至是栈..),有序还是无序时空复杂度有什么要求(当然一般取折衷方案)
解决方案三:
这层是干啥的?
解决方案四:
这只是名字吧,功能可能不是你想的那样
解决方案五:
内存数据过滤层你这层究竟是干嘛的?是数据缓存吗?
解决方案六:
不明白你到底想做什么,但是有可能要用到intface。
解决方案七:
我也迷茫,数据都有变量、数据字典什么管了,内存过滤层做什么呢?这个项目是要通过串口连设备的,会涉及多线程,异步回调,委托,这些需要管理内存么?能给些具体建议么?先谢过了
解决方案八:
自己都不知道要干嘛,那还问什么呀?
解决方案九:
按一般常见的功能,过滤这个功能都是用来过滤或者筛选一些不符合条件的数据,你这个内存数据过滤也是做一样的事情吗?
解决方案十:
你首先问你的领导什么是“内存过滤”,假设是类似防火墙,隔离器或者网闸一类的项目,我到能理解,大概是根据缓存规则过滤放行数据,不过通用串口程序“内存过滤”不太理解含义了。难不成是消息总线??
解决方案十一:
当然这个也可能是相反的意思,比如linq,Rx,TPL这类玩意,我也能理解成内存过滤。后面两个现在用的人不多,估计你也不太了解,但linq绝对是内存过滤的,也许你的领导可能是这个意思也说不定,大量缓存然后linq过滤查询(数据库的压力倒是小了,不过服务器压力到未必小,只是可以分布出去横向架构,这架构现在到流行,也许你滴领导正准备拥抱流行也说不定)
解决方案十二:
当然数据过滤成也可以是另外理解,比如消息总线你所有串口的数据通过Rx产生流水数据,交给消息总线,消息总线根据订阅分发(没有订阅的数据,直接抛弃)这个可以玩的花样就比较多了,比如(生产/消费,分布式,限流缓存,解耦隔离,并行数据流等等)
解决方案十三:
解决方案十四:
从项目角度来说,一般什么情况下数据放内存里管理?
解决方案十五:
一般对持久化要求不高的东西,可以缓存处理。这样的数据不需要实时入库,即使断电了也不影响大局。比如信号采集,我100毫秒采集一次,但是实际上我也并不需要把每次采集的都入库,这样的可以限流缓存,当然这样的数据即使断电了也无所谓,因为100毫秒的一次的东西,即使少了那么几次也无关大局。(比如我要移动鼠标画图,我移动过程中实际系统会发给我起码50个点,但我绘图其实顶多3个采样点就够了,所以我们就限流缓存,只取3个点,而不是使用100个点)还有一种就是读写分离的或者实时统计可以缓存,复杂计算和持久化可以另外开线程工作,前端则直接读写缓存数据
解决方案:
总体上是并发量大,持久化要求不高的东西都可以缓存(或者并发量大,后续计算处理复杂,但对结果影响不大,比如老p谈过的电商秒杀一类的场景,这类场景就是如此,秒杀的确并发很大,所以前端需要快速从缓存里返回秒杀结果,但是后续那些什么支付,缴款,扣库存的动作可以延后在说,虽然后续操作也是重要业务逻辑,但是对结果本身影响不大)