短视频加速利器-LocalCDN SDK
1. 背景 当前短视频已经成为最广泛、最普及的内容载体,短视频的观看体验无疑是至关重要的。当前普遍都采用边下边播的模式,使得用户不用等完全下载完视频,就可以立刻享受流畅的播放体验,但是对于某些特定场景,缓存的策略还是有其作用的。 一个场景是使用移动网络时,在反复观看同一个视频内容时,已经下载过的内容如果没有缓存,就会重新从服务器请求一遍,造成一定的…
苹果音频管家-AVAudioSession探索
1. 什么是AVAudioSession? 官方文档: AVAudioSession是一个对象,用于向系统传达你将如何在应用程序中使用音频。 使用AVAudioSession可以向操作系统描述应用程序使用音频的一般策略,而无需详细说明特定场景下的表现或与音频硬件的交互。你可以将这些细节的管理委托给AVAudioSession实现,这样可以确保操作系…
内存管理设计(二)
上一节讲完了虚拟地址空间的管理,现在再来看一下Linux是如何管理物理内存的。 3. 物理地址空间的管理 传统的x86架构的工作模式中,多处理器与一个集中存储器相连时,所有CPU都要通过总线去访问内存。也就是对称多处理器模式SMP(Symmetric multiprocessing)。 由于所有的内存访问都要经过总线,所以总线会成为瓶颈。 为了提高…
视频黑科技-智能视频压缩
1. 背景 随着国家的天网工程、雪亮工程、平安城市等项目的展开,越来越多的摄像头被安装在街道、场站、园区等公共场所,视频这种非结构化数据需要占用巨大的存储空间,而公安部门要求保留一定时长的监控数据(通常是3个月),这就带来了极大的成本。针对这个问题,360智汇云提供了一种智能视频压缩技术,能较好的解决这个问题,本文就来分析一下智能视频压缩技术。 2…
内存管理设计(一)
计算机的计算,一方面说的是进程、线程对于CPU的使用,另一方面是对于内存的管理. 在Linux中用户态是没有权限直接操作物理内存的,与硬件相关的交互都是通过系统调用由内核来完成操作的。Linux抽象出虚拟内存,用户态操作的只是虚拟内存,真正操作的物理内存由内核内存管理模块管理。本文通篇都在探索三个问题: 虚拟地址空间是如何管理的物理地址空间是如何管…
源码阅读之再探EMQX
路由层与分布层 上一篇文章,将消息订阅与投递过程中偏重Conn进程与Session进程间的关系,这一篇文章则偏重于系统如何维护路由层和分布层数据以及如何通过他们组织分布式服务并进行消息投递的。 ( 感兴趣的可以看看上一篇,两篇文章一起“食用”更香哦  ( ^_^) ) 图四 订阅与发布 订阅发布是一个解耦的过程,图三中一对一消息发布只是为…
源码阅读之初探EMQX
一、EMQX项目简介 EMQX (Erlang/Enterprise/Elastic MQTT Broker) 是基于 Erlang/OTP 平台开发的开源物联网 MQTT 消息服务器。Erlang/OTP 是出色的软实时(Soft-Realtime)、低延时(Low-Latency)、分布式(Distributed) 的语言平台。MQTT 是轻量…
联盟链技术
背景 目前区块链技术的发展存在两个大的方向,即联盟链和公链,两者之间最大的区别在于是否存在”准入机制”,这里的”准入机制”指访问权限的管理机制。联盟链有“准入机制”,并不是任意的个人或组织都能参与其中,数据只在联盟链内部公开、共享。而公链,则是完全公开,没有任何的准入门槛,所有个人或组织都可以参与其中,数据对所有人公开。 下面从技术方面对联盟链和公…
influxdb内存消耗分析及性能优化【探索篇】
1.新的问题 influxdb目前支持内存型索引inmem及文件型索引tsi1。之前追踪篇将influxd索引修改为tsi1之后,经过一段时间的运行,从监控观察到,由于调用方采用异步队列+批处理的方案将数据写入influxdb,会在某些时刻调用方内部出现数据堆积,指标如图: 横坐标: 时间轴,从12-29 00:00 到 12-30 00:00纵坐…
influxdb内存消耗分析及性能优化【追踪篇】
1.问题现象 由于业务场景需求,在生产环境服务器(32core64G)搭建了基于golang开发的influx时序数据库v1.8版本 ,经过持续一周的运行之后(每天写入约100G数据),发现服务器内存消耗95%以上,并偶现SWAP报警: (swap使用率)[交换内存使用率][79.10744][server_alarm] 使用top命令查…