由于网络的波动,拥塞控制对于保证实时通信(RTC)用户的体验质量(QoE)是必不可少的。这个组件调整媒体数据的发送速率,从而决定了视频编码的码率。然而,现有的控制方案要么只关注网络数值指标,要么不能适应各种网络环境。因而,我们在本文针对 RTC 提出了基于感知的拥塞控制(PACC: Perception-Aware Congestion Control)。利用卷积神经网络(CNN),我们开发了一个质量评估模型来预测视频质量。借助于用户感知的变化趋势分析,PACC 将朝着更好的 QoE 方向去调整码率。大量的实验证明了 PACC 的有效性,它在传输层和应用层的 QoE 指标方面分别比现有的方案高出 8.2% 至 32.4% 和 6.8% 至 18.0%。 本项工作为“淘宝(中国)软件有限公司-上海交通大学电子信息与电气工程学院媒体计算联合实验室”的合作研究成果。
近日,在国际数据库领域顶级会议ACM SIGMOD23上,阿里云数据库与浙江大学合作的一篇论文《Detecting Logic Bugs of Join Optimizations in DBMS》获得最佳论文。
每个程序员都会讨厌两件事情,阅读没有注释的代码,给代码写注释。那么如何一次解决两大难题,不用写注释,也不会被他人吐槽没有注释呢?
经过长达大半年时间的崩溃治理后,基于 Electron 框架开发的新版 PC 淘宝直播推流客户端的稳定性终于赶超基于QT 框架开发的旧版本了。剩下的崩溃问题中有 40% 是跟内存 OOM 有关,其中 V8FatalErrorCallback js heap OOM 问题整整困扰了我一个多月。历经千辛万苦终于破案并解决了这个问题,作为技术人来说还是非常兴奋的。为了了解该问题的来龙去脉,本文会从 V8FatalErrorCallback 崩溃问题的堆栈分析开始讲起,然后通过堆栈信息尝试各种解决方案,并对 v8 堆内存进行源码分析和尝试编译 electron 源码提升 v8 堆内存上限都不奏效后(如果对于编译 electron 源码不感兴趣,可以直接跳到 “如何用 Memory 和 Performance 工具分析内存泄漏问题“章节查看最终解决问题的方案),最终借助 chrome devtools 提供的 Memory 和 Performance 工具一步步排查和解决 Electron v8 引发的内存 OOM 问题,并且触类旁通解决其他内存 OOM 问题。
随着企业规模的不断扩大,传统单体应用已很难进一步支持业务的发展,业务的迭代速度已经难以满足业务的增长,此时企业会对应用系统做微服务化的改造,降低业务的耦合度,提升开发迭代的效率,让开发更加敏捷。 系统架构微服务化的,原本的愿景是希望通过将系统的颗粒度变小,提升业务的迭代效率。但是在实践微服务架构的过程中,尤其是在服务数量越来越多之后,那么引发的效率问题可能会大于微服务架构本身所带来的架构红利。
Java 应用在云计算时代面临“冷启动”慢、内存占用高、预热时间长等问题,无法很好的适应 Serverless 等云上部署模式,GraalVM 通过静态编译、打包等技术在很大程度上解决了这些问题,同时针对 GraalVM 的一些使用限制,Spring 和 Dubbo 等主流框架也都提供了相应的 AOT 解决方案。 本文我们将详细分析 Java 应用在云时代面临的挑战,GraalVM Native Image 是如何解决这些问题,GraalVM 的基本概念与工作原理,最后我们通过一个 Spring6 + Dubbo3 的微服务应用示例演示了如何将一个普通微服务应用进行静态化打包。