8年后,我们使用自己实现的有限的简单Smart Pointers,解决了SRS的内存泄漏问题,保持项目的可维护性。
Introduction
每个流在SRS服务器上有个Source对象,用于管理流的生命周期。为了逻辑和代码简单,SRS一直没有释放Source对象;在流特别多的情况下, 比如不断更换推流的地址,会导致内存不断增长和泄露。
8年后,我们使用自己实现的有限的简单Smart Pointers,解决了SRS的内存泄漏问题,保持项目的可维护性。
每个流在SRS服务器上有个Source对象,用于管理流的生命周期。为了逻辑和代码简单,SRS一直没有释放Source对象;在流特别多的情况下, 比如不断更换推流的地址,会导致内存不断增长和泄露。