240 发简信
IP属地:四川
  • 120
    分布式事务 Seata(二) 理解什么是AT、TCC、Saga

    前言 建议在阅读这篇文章的时候先理解 XA的模式,否则很难有一个概念去阅读本文。有关XA模式查看 AT 模式 AT 模式是一种无侵入的分布式事务解决方案。阿里seata框架,...

  • 【思考🤔】既然initial mark阶段+concurrent mark阶段已经扫果了young gen 为何还要再次Remark?
    这个问题你可以考虑这种情况,如果remark阶段不重新扫描young gen,那么young gc发生时(old gc发生的同时young gc也是可以发生的)年轻代有对象gc年龄到了,晋升到老年代,如果不重新标记,那么这个对象是不是就被漏标了呢。

  • 【思考🤔】CardTable与mod-union table有什么关系,都是干什么的?
    这个问题是这样的,在分代垃圾回收时,跨代引用是要考虑的,比如young gc时老年代对象B引用年轻代的对象A,这个老年代对象B就被称为假根。hotspot是这样处理的,它把堆内存分为card的集合,一个card是512B,然后用一个全局的卡表来记录引用的变化。就比如卡表中的一个字节用来对应堆上的一个card是否存在跨代引用。B对象所在的card在全局卡表上对应字节标记为dirty就说明这个card存在跨代引用。而cms为了处理漏标的情况,也会记录引用关系的变化(比如黑对象指向了白对象)同样记录在card table中。这个card table只有一份既要用来支持young GC又要用来支持CMS。每次young GC过程中都涉及重置和重新扫描card table。那岂不是cms所需引用关系就没有了,所以又产生了一个mod-union table(一个bit对应一个card)用来在CMS concurrent marking正在运行的过程中,每当发生一次young GC,当youngGC要重置card table里的某个记录时,将card table的记录更新到mod union table中,这样在重新标记时card table外加mod-union table就足以记录在并发标记过程中old gen发生的所有引用变化了。

  • 这个跟uniapp ,有什么关系????....

  • +1,解决了吗

    flv.js简单使用示例

    Bilibili相信大家都不会陌生,而 Flv.js 就是由 bilibili 网站开源的 HTML5 Flash 视频(FLV)播放器,纯原生 JavaScript 开发(...

  • 不知道为什么报这样的错
    logger.js:38 [TransmuxingController] > DemuxException: type = CodecUnsupported, info = Flv: Unsupported codec in video frame: 5
    value @ logger.js:38

    20events.js:62 Uncaught (in promise) Error: Uncaught, unspecified "error" event. (MediaError)
    at i.emit (events.js:62)
    at i.<anonymous> (flv-player.js:239)
    at i.emit (events.js:84)
    at transmuxer.js:181
    at <anonymous>