火山引擎 RTC 视频性能降级策略解析、用 AI 完成数据挖掘 | 酱酱的下午茶第 113 期


theme: v-green

今日主理人|下午茶

本期每日掘金由 帅气的法医 负责制作。如有投稿文章,请私信👉 帅气的法医

酱酱们的下午茶全新改版,欢迎大家多提宝贵意见!

本文字数 1800+,阅读时间大约需要 6 分钟。

  • 【掘金酱的下午茶】亮点:
  • Eslint是如何工作的(深度源码解析)
  • 如何优雅地校验后端接口数据,不做前端背锅侠
  • 后端自学两个小时前端,究竟能做出什么东西
  • 一次想不到的 Bootstrap 类加载器带来的 Native 内存泄露分析
  • 火山引擎 RTC 视频性能降级策略解析
  • 火山引擎工具技术分享:用 AI 完成数据挖掘,零门槛完成 SQL 撰写
  • Android 内存缓存框架 LruCache 原理分析,手写试试?
  • ……

筛选规则:文章发布时间在本期「掘金酱的下午茶」发布时间的 1-3 天内,且符合社区推荐标准,也会同步发布在掘金相关技术社群。

每日干货|下午茶

主理人们会对近期(1-3 天)社区深度技术好文进行挖掘和筛选,优质的技术文章有机会出现在下方列表,排名不分先后。

『前端』

对于前端工程化,Eslint是一个非常重要的环节,它可以方便的检查出代码中不符合规范的地方,并给予错误提示,对前端规范来说非常重要! 阅读本文,您将收获:

  • 如何直接调试eslint node_modules源码
  • 文件遍历以及文件配置生成过程
  • 如何将代码转换成ast
  • 如何利用ast和rules生成错误信息
  • 如何利用ast和rules进行代码修复

如何对接口数据进行校验呢,因为我们的项目是 React+TypeScript 写的,所以第一时间就想到了使用 TypeScript 进行数据校验。但是众所周知,TypeScript 用于编译时校验,有没有办法作用到运行时呢?

今天的内容比较偏前端一点,主要是给大家换换口味,毕竟学一个东西学久了就想学点新东西休息一点,俗称换换脑子。其实早就想学学前端看了,不过碍于工作繁忙,也可能是懒癌发作一直没有成行,直到在做OKR的时候有些东西需要前端的支持,而我们又没有多余前端的时候,我就知道,我需要开始学前端了

相信大部分兄弟都体验过 Vite 了,知道它很快。但你知道它为什么快,相比 Webpack 有哪些不同吗?今天咱们就来全面了解一下 Vite ,尤其适合新手兄弟。话不多说,开整!

『后端』

最近我们线上有同学反馈,java 服务在接入了支持预发的 javaagent 以后会出现缓存的内存增长,去掉 agent 启动以后内存增长正常。于是分析了一下这个问题,写了这篇文章。

在日常业务代码开发中,我们经常接触到AOP,比如熟知的Spring AOP。我们用它来做业务切面,比如登录校验,日志记录,性能监控,全局过滤器等。但Spring AOP有一个局限性,并不是所有的类都托管在 Spring 容器中,例如很多中间件代码、三方包代码,Java原生代码,都不能被Spring AOP代理到。如此一来,一旦你想要做的切面逻辑并不属于Spring的管辖范围,或者你想实现脱离Spring限制的切面功能,就无法实现了。

在使用 BI 工具的时候,经常遇到的问题是:“不会 SQL 怎么生产加工数据、不会算法可不可以做挖掘分析?”而专业算法团队在做数据挖掘时,数据分析及可视化也会呈现相对割裂的现象。流程化完成算法建模和数据分析工作,也是一个提效的好办法。同时,对于专业数仓团队来说,相同主题的数据内容面临“重复建设,使用和管理时相对分散”的问题——究竟有没有办法在一个任务里同时生产,同主题不同内容的数据集?生产的数据集可不可以作为输入重新参与数据建设?

随着 RTC 使用场景的不断复杂化,新特性不断增多,同时用户对清晰度提升的诉求也越来越强烈,这些都对客户端机器性能提出了越来越高的要求 (越来越高的分辨率,越来越复杂的编码器等)。但机器性能差异千差万别,同时用户的操作也不可预知,高级特性的使用和机器性能的矛盾客观存在。当用户机器负载过高时,我们需要适当降级视频特性来减轻系统复杂性,确保重要功能正常使用,提升用户体验。

『移动端』

随着4G网络的推广和网络带宽的提升,视频成为互联网用户主要的消费载体,用户通过短视频来分享和浏览信息。由此视频的编辑功能越来越重要、越来越普遍。视频编辑的APP也如雨后春笋般涌现。更好地推动得物App社区业务的发展,得物也自研符合得物需求的视频编辑工具。我们致力于打造一个“更快、更强”的视频编辑工具。

1、ThreadLocal 是一种特殊的无锁线程安全方式,通过为每个线程分配独立的资源副本,从根本上避免发生资源冲突;

2、ThreadLocal 在所有线程间隔离,InheritableThreadLocal 在创建子线程时会拷贝父线程中 InheritableThreadLocal 的有效键值对;

3、虽然 ThreadLocal 提供了自动清理数据的能力,但是自动清理存在滞后性。为了避免内存泄漏,在业务开发中应该及时调用 remove 清理无效的局部存储;

4、ThreadLocal 是采用线性探测解决散列冲突的散列表。

今天,我们来分析一个 LRU 的应用案例 —— Android 标准库的 LruCache 内存缓存。

Gradle是一个构建工具,面向开发者的脚本语言是GroovyKotlin,即我们常用的build.gradle和build.gradle.kts或plugin等。那么在Gradle 5.0之后已经支持Kotlin的情况下,为什么还要讲Groovy,直接上Kotlin不行吗?

趣味码上掘金分享|下午茶

作者 文章 简介
Guowc 超Q弹跳跃游戏-谁能逃出生天? 超Q弹跳跃游戏-谁能逃出生天? 还不错

https://code.juejin.cn/pen/7166586991231008805

📖 投稿专区|下午茶

大家可以在评论区推荐认为不错的文章,并附上链接和推荐理由,有机会登上下一期。文章创建日期必须在近 1-3 天内;可以推荐自己的文章、也可以推荐他人的文章。

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容