![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Golang
洲洋的编程课堂
希望组件一个快乐的编程社区
展开
-
Go 实战 :抽奖系统核心技术点实现
Go 实战 :抽奖系统核心技术点实现考验系统并发能力最常见的无非是秒杀、抽奖等业务场景。我们不妨以一个支持高并发的抽奖系统的设计和实现为例来进行 Go 语言的实战学习。要实现一个抽奖系统,我们首先需要一个比较合理的抽奖算法,保证每个人抽到奖品的概率是一致的,同时又需要避免奖品被很快抽完的情况。所以本文的第一部分会用三种思路来讲解如何去实现一个合理的抽奖算法。要具备高并发的能力,Go 的 ht...原创 2020-02-19 15:50:18 · 1703 阅读 · 0 评论 -
Golang Web 实战
Golang Web 实战1. 前言在开发一个应用,也就是我们俗称 App 时,最低的配置是需要一个前端和一个后端。由前端技术人员为用户开发接触到的页面,由后端为前端的各类用户事件提供处理和数据响应。比较常见的,如手机 App 应用(QQ、微信),网页 Web 应用(GitChat、CSDN 页面),桌面应用(YY、QQ 游戏)…… 不管是什么应用,都需要有后端技术与之匹配。而我们今天介绍的,...原创 2020-02-19 15:16:38 · 1683 阅读 · 0 评论 -
Go的堆栈
Go的堆栈在理解Go的堆栈分配前,我们先理解下什么是堆栈?在计算机中堆栈的概念分为:数据结构的堆栈和内存分配中堆栈。数据结构的堆栈:堆:堆可以被看成是一棵树,如:堆排序。在队列中,调度程序反复提取队列中第一个作业并运行,因为实际情况中某些时间较短的任务将等待很长时间才能结束,或者某些不短小,但具有重要性的作业,同样应当具有优先权。堆即为解决此类问题设计的一种数据结构。栈:一种先进后出的数据...原创 2020-02-09 07:20:59 · 987 阅读 · 0 评论 -
Go内存管理
Go内存管理Go内存管理基于TCMalloc,使用连续虚拟地址,以页(8k)为单位、多级缓存进行管理;在分配内存时,需要对size进行对齐处理,根据best-fit找到合适的mspan,对未用完的内存还会拆分成其他大小的mspan继续使用.在new一个object时(忽略逃逸分析),根据object的size做不同的分配策略:极小对象(size<16byte)直接在当前P的mcac...原创 2020-02-09 07:20:22 · 362 阅读 · 0 评论 -
Golang runtime的调度
Golang runtime的调度Golang作为一个为并发而产生的语言, 从Golang产生的那一刻就注定它具有高并发的特性,而 Go 语言中的并发(并行)编程是经由 goroutine 实现的,goroutine 是 golang 最重要的特性之一,具有使用成本低、消耗资源低、能效高等特点,官方宣称原生 goroutine 并发成千上万不成问题,于是它也成为 Gopher 们经常使用的特性。...原创 2020-02-09 07:16:34 · 846 阅读 · 0 评论 -
Golang的逃逸分析
Golang的逃逸分析所谓逃逸分析(Escape analysis)是指由编译器决定内存分配的位置,不需要程序员指定。 函数中申请一个新的对象如果分配在栈中,则函数执行结束可自动将内存回收;如果分配在堆中,则函数执行结束可交给GC(垃圾回收)处理;每当函数中申请新的对象,编译器会跟据该对象是否被函数外部引用来决定是否逃逸: 1. 如果函数外部没有引用,则优先放到栈中; 2. 如果函数外部存在引...原创 2020-02-09 07:15:57 · 298 阅读 · 0 评论 -
Redis为什么快
Redis为什么快Redis 是基于内存的操作,CPU 不是 Redis 的瓶颈,Redis 的瓶颈最有可能是机器的内存的大小和网络的带宽,而且单线程的性能已经非常高了,就没有必要使用多线程了,所以 Redis 是单进程单线程的。 提示:如果我们运行的服务器是多核服务器,为了充分利用多核优势我们可以在单台服务器起多个 Redis 服务,或者架设 主从复制、哨兵模式、集群模式等多机方案。Red...原创 2020-02-09 07:15:31 · 170 阅读 · 0 评论 -
Golang性能优化
Golang性能优化GC,全称 GarbageCollection,即垃圾回收,是一种自动内存管理的机制。当程序向操作系统申请的内存不再需要时,垃圾回收主动将其回收并供其他代码进行内存申请时候复用,或者将其归还给操作系统,这种针对内存级别资源的自动回收过程,即为垃圾回收。而负责垃圾回收的程序组件,即为垃圾回收器。垃圾回收其实一个完美的 “Simplicity is Complicated” ...原创 2020-02-09 07:15:08 · 423 阅读 · 0 评论