WebRTC的三种架构
WebRTC 是基于 P2P 的实时通信技术,(如果 P2P 打洞失败,则会使用 TURN 服务器进行数据转发),在有 2 台客户端参与的情况下,网络拓扑结构如图:
客户端软件日志输出规范
众所周知,软件日志对问题的排查可以起到至关重要的作用,但在多人协同开发的情况下,可能会导致不同的人使用不同的日志打印风格,导致日志可阅读性不高。纵观各大知名软件的输出日志,无不有着规范的格式,非常利于阅读。
流媒体基础概念
Windows资源管理器图标覆盖优先级设定
我们在安装了TortoiseSVN或TortoiseGit后,会自动在资源管理器的文件夹和文件图标上显示覆盖图标(Icon Overlay),这样可以比较方便的查看文件状态。
但有时候我们安装的其他软件,如Dropbox等,也会在资源管理器中显示覆盖图标。多个软件都显示覆盖图标时,会由于优先级问题导致覆盖图标不显示的问题。
本文讲述如何通过调整软件覆盖图标的优先级来解决诸如此类的问题。
Windows平台编译WebRTC源码
Wav音频编码
WAV格式是微软公司(Microsoft)开发的一种声音文件格式,它符合 RIFF(Resource Interchange File Format)文件规范,用于保存 Windows 平台的音频信息资源,被 Windows 平台及其应用程序所广泛支持。
WAVE 是录音时用的标准的 WINDOWS 文件格式,文件的扩展名为“WAV”,数据本身的格式为 PCM 或其他压缩数据,属于无损音乐格式的一种。
所有的 WAV 都有一个文件头,这个文件头记录了音频流的编码参数。WAV文件 = WAV头 + PCM数据。
WebRTC官方示例apprtc搭建
本文讲述如何搭建WebRTC官方的apprtc示例,系统环境 Ubuntu 16.04,在搭建之前建议关闭系统防火墙。
Windows内存探索:从虚拟内存到堆管理的核心机制
在 Windows 开发中,对内存的理解深度,往往直接决定了一个程序的稳定性、性能与安全边界。那些看似突然的程序崩溃、难以追踪的内存泄漏,或是性能分析工具中令人困惑的内存数据,其根源常深植于我们对系统内存机制的理解盲区。
Windows 内存管理是一套层次分明、环环相扣的精密体系。从应用程序视角看到的连续“内存”,实际上是虚拟内存技术精心营造的抽象空间;支撑程序运行的物理资源,则通过分页机制在物理内存与磁盘间灵活流动。而开发者日常打交道的堆内存,则是系统在这一庞大抽象之上,为我们提供的一个兼顾效率与便利的关键服务层。更进一步,内存映射文件等高级特性,则打通了 I/O 与内存的边界,展现了系统统一管理资源的强大能力。
本文将为你厘清这些核心概念之间的内在联系与运作逻辑。我们不过度深入艰涩的内核细节,而是聚焦于为开发者建立清晰、准确、实用的认知模型。理解这些机制如何共同作用,能帮助你更有效地诊断内存问题、优化程序性能,并从根本上写出更为健壮可靠的 Windows 应用程序。
让我们从基本概念出发,逐步构建起关于 Windows 内存运作的系统性理解。
