当前位置: 首页 > news >正文

【Go】常见的四个内存泄漏问题

Goroutine没有顺利结束

1、这里更多的是由于channel+for+select导致的,错误的写法导致了发送者或接收者没有发现channel已经关闭,任务已经结束了,却仍然在尝试输入输出https://geektutu.com/post/hpg-exit-goroutine.html

Map的remove方法不会真正的删除某个key,内存会无限增长

不要把map用作全局

timer的错误用法

//错误用法
for{select {//这里timer会生成一个新变量,在timer到期之前会一直占用内存case <-time.After(duration):fmt.Println("process request with", duration)}}
//正确用法
idleDelay := time.NewTimer(idleDuration)
defer idleDelay.Stop()
for{idleDelay.Reset(idleDuration)select {case <-idleDelay.C:fmt.Println("process request with", duration)}}

闭包,某个局部变量的指针被外部所引用,导致不能被GC

http://www.lryc.cn/news/125592.html

相关文章:

  • 【LeetCode-简单】剑指 Offer 29. 顺时针打印矩阵(详解)
  • TOMCAT基础
  • 自动化集装箱码头建设指南
  • 为什么要用redis
  • QT qmake解析
  • 【TypeScript】this指向,this内置组件
  • MySQL 深度分页优化
  • 如何在CSS中水平居中一个元素?
  • 生信豆芽菜-ESTIMATE预测免疫评分
  • 分享一颗能用在TYPE-C接口取电协议芯片LDR6328Q,方便好用
  • 【java】Java与SQLite3数据库类型之间对应关系
  • ELK常见部署架构以及出现的问题及解决方案
  • windows使用vscode配置java开发环境
  • centos系统kubeadm安装K8S_v1.27.x容器使用docker(K8S_v1.24版本以后依然使用docker容器管理)
  • 如何使用索引加速 SQL 查询 [Python 版]
  • Oracle 开发篇+Java通过DRCP访问Oracle数据库
  • 在安装 ONLYOFFICE 协作空间社区版时如何使用额外脚本参数
  • ChatGPT在智能家居控制和环境管理中的应用如何?
  • 理解 Go 中的切片:append 操作的深入分析(篇2)
  • GPT-4 如何为我编写测试
  • java.lang.NoClassDefFoundError: org/apache/tez/dag/api/TezConfiguration
  • 19、SQL注入之SQLMAP绕过WAF
  • Redis对象类型和结构、内存回收、对象共享
  • 标准模板库STL——容器适配器-stack/queue/priority_queue
  • Golang实现完整聊天室(内附源码)
  • WSL2 ubuntu子系统OpenCV调用本机摄像头的RTSP视频流做开发测试
  • 20230814让惠普(HP)锐14 新AMD锐龙电脑不联网进WIN11进系统
  • 基于ScrollView的下拉刷新
  • 强训第31天
  • 什么是Java中的策略模式?