
Golang 进阶
文章平均质量分 50
Golang 进阶
衣舞晨风
提供复杂系统从架构设计、性能调优到稳定性保障的全流程解决方案,承接企业级系统设计、瓶颈突破及问题诊断需求。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Go HTTP 客户端设置的调优指南
记录一次GoHTTPClientTIME_WAIT的优化more。原创 2025-01-18 07:00:16 · 362 阅读 · 0 评论 -
关于Golang闭包
1、能不用闭包的地方就不要用闭包,没必要为了炫技,写一段增加团队小伙伴负担的代码。2、for 循环代码,统一在内部用临时变量再存一下。关于Golang闭包。原创 2024-01-09 21:30:00 · 729 阅读 · 1 评论 -
Golang SSL 证书 验证
代码平平无奇,需要注意的是http client初始化部分。因为是短连接,如果是大量域名去验证的话,短时间内将导致大量。原创 2023-12-25 22:15:00 · 769 阅读 · 1 评论 -
得物-Golang-记一次线上服务的内存泄露排查
这边大致归纳下go语言中有哪些常见的内存泄露。常见内存泄露。原创 2023-12-19 23:15:00 · 13035 阅读 · 18 评论 -
Gin获取Response Body引发的OOM
同时根据请求的Header跳过SSE及Websocket请求,因为这两类流的请求记录到审计日志中意义不大,而且在json序列化的时候也会有问题。再看下代码,可以看到这个代码的逻辑是每一个请求都会将响应的Body完整的缓存在内存一份,对于响应体很大的请求,在这里就会造成内存暴涨,比如:像日志下载。我们在开发中基于Gin开发了一个Api网关,但上线后发现内存会在短时间内暴涨,然后被OOM kill掉。在图二中可以看到内存的增长是很快的,在一分半的时间内,内存增长了近2G。* 后来参考Echo,补上了这个功能。原创 2023-02-25 04:56:36 · 985 阅读 · 0 评论 -
Golang PutUvarint Uvarint
GO Uvarint用法及代码示例原创 2022-12-23 22:00:00 · 442 阅读 · 0 评论 -
Golang net/http 请求处理流程分析
Golang net/http 请求处理流程分析原创 2022-07-15 21:30:00 · 1550 阅读 · 0 评论 -
Kubernetes中Java应用Heap Dump
伴随着微服务及容器化的发展,越来越多的应用运行在kubernetes集群中,运维、调试的问题也随之而来。以Java为例,当线上环境出现内存问题,比如OOM,这时候需要Dump内存进行分析的时候,就会发现对于普通开发人员来说他们没有操作kubernetes集群机器的权限,从而导致,Dump出来的文件无法回传到开发手中进行MAT之类的分析。本文的解决办法是这样的,当用户需要Dump某个应用实例的时候,只需要在实例终端界面点击一下按钮,后台会自动Dump Heap到OSS上,上传完成后,会将下载的信息展示在列表原创 2021-02-07 09:17:55 · 2181 阅读 · 0 评论 -
Golang GC
一、增量式 GC二、The GC runs concurrently with mutator threads, is type accurate (aka precise), allows multiple GC thread to run in parallel. It is a concurrent mark and sweep that uses a write barrier. I...原创 2018-12-15 11:40:01 · 1556 阅读 · 0 评论 -
Golang GC: Prioritizing low latency and simplicity
The SetupGo is building a garbage collector (GC) not only for 2015 but for 2025 and beyond: A GC that supports today’s software development and scales along with new software and hardware throughout ...转载 2018-12-15 10:29:11 · 592 阅读 · 0 评论 -
Go Concurrency Patterns: Context
IntroductionIn Go servers, each incoming request is handled in its own goroutine. Request handlers often start additional goroutines to access backends such as databases and RPC services. The set of ...转载 2018-12-12 12:51:43 · 746 阅读 · 0 评论 -
视频笔记:理解 channels - Kavya Joshi
一、视频信息1、视频观看地址https://www.youtube.com/watch?v=KBZlN0izeiY2、PPT下载地址http://download.youkuaiyun.com/download/xunzaosiyecao/102128843、博文https://about.sourcegraph.com/go/understanding-channels-转载 2018-01-18 20:27:40 · 1176 阅读 · 0 评论 -
goroutine 调度器(scheduler)
虽然golang的最小调度单元为协程(goroutine),但是操作系统最小的调度单元依然还是线程,所以golang scheduler(golang调度器)其要做的工作是如何将众多的goroutine放在有限的线程上进行高效而公平的调度。操作系统的调度不失为高效和公平,比如CFS调度算法,那么go为何要引入goroutine?原因很多,有人会说goroutine 相比于linux的pthre转载 2018-01-14 15:32:15 · 2076 阅读 · 0 评论 -
Go 1.9 sync Map 源码阅读笔记
1. 空间换时间。 通过冗余的两个数据结构(read、dirty),实现加锁对性能的影响。2. 使用只读数据(read),避免读写冲突。3. 动态调整,miss次数多了之后,将dirty数据提升为read。4. double-checking。5. 延迟删除。 删除一个键值只是打标记(会将key对应value的pointer置为nil,但read中仍然有这个key:key;value:nil的键值对),只有在提升dirty的时候才清理删除的数据。6. 优先从read读取、更新、删除,因为对read原创 2019-05-18 08:58:35 · 4192 阅读 · 1 评论