• 记一次愚蠢的内存泄漏问题的排查


    在增加一个功能接口时,由于对现有的代码不是很理解,所以直接用拷贝代码的方式做出来了,功能测试时没有问题,但是在重复测试时发现有内存泄漏问题。
    从现象上来看,只要调用到一次功能接口,内存就会上涨2M。
    由于不太理解这部分拷贝的代码,加上没有仔细阅读,始终没看出来哪里有问题,然后尝试从底层的网络框架入手查看内存申请和释放的原理,也没有发现问题所在。
    只能向公司的技术大佬求助,结果他只看了2分钟就看出问题了,在使用发送数据包的接口时用错了。
    然后修改为正确的接口后,就没发生内存泄漏问题了。

    总结教训:

    1. 写代码时需要对代码的基本功能有所了解,如果时间不够,也要有一个基本的概括认识。
    2. 如果出现这种问题时,应该理清思路,要从现有的代码示例中进行总结和学习,看出使用规律,有自己的思路。
    3. 层次化排查问题,不能一味按照自己的熟悉程度来决定排查顺序,而是根据实际的代码层次去排查。
    4. 记得及时求助,否则浪费了太多时间可能只得到很少的经验。
  • 相关阅读:
    Git使用基础介绍
    [SnowflakeIdWorker]雪花Id
    C#[反射 Reflection]
    [.Net Core]Castle DynamicProxy
    [Vue]Vuex
    [Vue] 导航守卫
    [Vue] $route和$router的区别
    Unexpected end of JSON input while parsing near '..."
    推荐一款截图的工具(Snip)
    [Vue] 计算属性Computed与函数function的异同
  • 原文地址:https://www.cnblogs.com/lifewithlight/p/16117593.html
Copyright © 2020-2023  润新知