腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
Golang语言社区
Golang语言社区(www.Golang.LTD)专业分享Go语言基础、提高等最新最前沿动态。
专栏作者
举报
1903
文章
2784614
阅读量
585
订阅数
订阅专栏
申请加入专栏
全部文章(999+)
go(999+)
其他(301)
游戏(139)
编程算法(129)
数据库(91)
https(72)
java(50)
人工智能(48)
api(46)
linux(45)
http(44)
数据结构(42)
云数据库 Redis(39)
html5(38)
网络安全(35)
存储(34)
github(32)
javascript(30)
json(30)
开源(28)
socket编程(28)
系统架构(28)
安全(25)
sql(24)
云数据库 SQL Server(21)
微信(20)
git(19)
分布式(19)
缓存(19)
html(18)
微服务(18)
node.js(17)
全栈(17)
游戏开发(17)
区块链(16)
c++(16)
python(15)
windows(15)
容器镜像服务(12)
rpc(12)
腾讯云测试服务(11)
面向对象编程(11)
打包(10)
ide(10)
udp(10)
nginx(9)
mongodb(9)
网站(9)
tcp/ip(9)
渲染(8)
容器(8)
shell(8)
架构设计(8)
php(7)
android(7)
unix(7)
文件存储(6)
大数据(6)
数据(6)
对象存储(5)
比特币(5)
ios(5)
c 语言(5)
css(5)
ajax(5)
自动化(5)
模型(5)
数字货币(4)
erlang(4)
bash(4)
scala(4)
jquery(4)
memcached(4)
apache(4)
bash 指令(4)
ssh(4)
rabbitmq(4)
c#(3)
lua(3)
.net(3)
xml(3)
汇编语言(3)
access(3)
访问管理(3)
命令行工具(3)
数据加密服务(3)
运维(3)
正则表达式(3)
单元测试(3)
uml(3)
ntp(3)
小程序(3)
编辑器(3)
程序员(3)
配置(3)
同步(3)
机器学习(2)
mac os(2)
ruby(2)
oracle(2)
搜索引擎(2)
mapreduce(2)
全站加速网络(2)
kubernetes(2)
爬虫(2)
hashmap(2)
ftp(2)
kotlin(2)
二叉树(2)
aop(2)
dubbo(2)
敏捷开发(2)
kernel(2)
gcc(2)
iis(2)
func(2)
io(2)
it(2)
动画(2)
队列(2)
服务器(2)
工具(2)
工作流(2)
基础(2)
框架(2)
拖拽(2)
音频(2)
负载均衡(1)
数据挖掘(1)
tensorflow(1)
objective-c(1)
actionscript(1)
react(1)
硬件开发(1)
nosql(1)
postgresql(1)
maven(1)
负载均衡缓存(1)
spring(1)
专用宿主机(1)
容器服务(1)
日志服务(1)
云数据库 MongoDB(1)
SSL 证书(1)
云推荐引擎(1)
大数据可视交互系统(1)
图像处理(1)
电商(1)
企业(1)
underscore(1)
serverless(1)
devops(1)
互联网金融(1)
压力测试(1)
spark(1)
jdk(1)
hive(1)
erp(1)
numpy(1)
sql server(1)
jdbc(1)
asp(1)
zookeeper(1)
grep(1)
zabbix(1)
机器人(1)
数据分析(1)
数据处理(1)
数据可视化(1)
sas(1)
网站建设(1)
nat(1)
openapi(1)
nest(1)
云计算(1)
虚拟化(1)
sdk(1)
迁移(1)
隐私计算(1)
adapter(1)
amazon(1)
auto(1)
binary(1)
block(1)
cube(1)
db(1)
dot(1)
facebook(1)
file(1)
firefox(1)
label(1)
png(1)
schema(1)
stream(1)
streamwriter(1)
url(1)
web(1)
zip(1)
编程语言(1)
遍历(1)
编码(1)
操作系统(1)
测试(1)
后台(1)
计算机(1)
架构(1)
脚本(1)
局域网(1)
客户端(1)
可视化(1)
连接(1)
软件(1)
视频(1)
数据存储(1)
图片资源(1)
网络(1)
系统(1)
线程(1)
压缩(1)
语法(1)
源码(1)
搜索文章
搜索
搜索
关闭
Golang源码探索----GC的实现原理(3)
go
缓存
编程算法
在GC的标记阶段首先需要标记的就是"根对象", 从根对象开始可到达的所有对象都会被认为是存活的. 根对象包含了全局变量, 各个G的栈上的变量等, GC会先扫描根对象然后再扫描根对象可到达的所有对象. 扫描根对象包含了一系列的工作, 它们定义在[https://github.com/golang/go/blob/go1.9.2/src/runtime/mgcmark.go#L54]函数:
李海彬
2020-12-03
989
0
Golang源码探索----GC的实现原理(1)
缓存
go
编程算法
Golang从1.5开始引入了三色GC, 经过多次改进, 当前的1.9版本的GC停顿时间已经可以做到极短. 停顿时间的减少意味着"最大响应时间"的缩短, 这也让go更适合编写网络服务程序. 这篇文章将通过分析golang的源代码来讲解go中的三色GC的实现原理.
李海彬
2020-12-03
1.2K
0
LollipopGo游戏服务器-数据一致性设计
缓存
分布式
数据库
sql
go
本期课程给大家谈谈数据一致性,因为经常有同学问到,今天就给大家讲讲,数据一致性大致可分为三类:
李海彬
2020-04-07
1.1K
0
Go 语言内存管理(二):Go 内存管理
go
缓存
了解操作系统对内存的管理机制后,现在可以去看下 Go 语言是如何利用底层的这些特性来优化内存的。Go 的内存管理基本上参考 tcmalloc 来实现的,只是细节上根据自身的需要做了一些小的优化调整。
李海彬
2019-05-08
6.5K
0
Go 语言内存管理(一):系统内存管理
缓存
go
编程算法
要搞明白 Go 语言的内存管理,就必须先理解操作系统以及机器硬件是如何管理内存的。因为 Go 语言的内部机制是建立在这个基础之上的,它的设计,本质上就是尽可能的会发挥操作系统层面的优势,而避开导致低效情况。
李海彬
2019-05-08
2.3K
0
Go 语言调度(一): 系统调度
缓存
go
编程算法
数据库
sql
调度相关的一系列文章主要参考 Scheduling In Go : Part I - OS Scheduler 翻译来的。 因为在学习的过程中偶然发现,感觉总结得蛮好的,就不造轮子了,干脆直接翻译过来作为自己的学习笔记了,英文好的建议直接阅读原文。
李海彬
2019-05-08
1.3K
0
Golang - 调度剖析【第一部分】
go
缓存
安全
编程算法
http
首先,Golang 调度器的设计和实现让我们的 Go 程序在多线程执行时效率更高,性能更好。这要归功于 Go 调度器与操作系统(OS)调度器的协同合作。不过在本篇文章中,多线程 Go 程序在设计和实现上是否与调度器的工作原理完全契合不是重点。重要的是对系统调度器和 Go 调度器,它们是如何正确地设计多线程程序,有一个全面且深入的理解。
李海彬
2018-10-08
501
0
跳出Go module的泥潭
go
nest
git
rpc
缓存
Go 1.11 前天已经正式发布了,这个版本包含了两个最重要的feature就是 module和web assembly。虽然也有一些简单的教程介绍了go module的特性,但是基本上都是hello world的例子,在实践的过程中, 很多人都在“拼命的挣扎”,包括我自己, 从一些qq群、github的issue, twitter上都可以看到大家茫然或者抱怨的语句。
李海彬
2018-09-29
1.7K
0
Go性能优化小结
存储
缓存
做过C/C++的同学可能知道,小对象在堆上频繁地申请释放,会造成内存碎片(有的叫空洞),导致分配大的对象时无法申请到连续的内存空间,一般建议是采用内存池。Go runtime底层也采用内存池,但每个span大小为4k,同时维护一个cache。cache有一个0到n的list数组,list数组的每个单元挂载的是一个链表,链表的每个节点就是一块可用的内存,同一链表中的所有节点内存块都是大小相等的;但是不同链表的内存大小是不等的,也就是说list数组的一个单元存储的是一类固定大小的内存块,不同单元里存储的内存块大小是不等的。这就说明cache缓存的是不同类大小的内存对象,当然想申请的内存大小最接近于哪类缓存内存块时,就分配哪类内存块。当cache不够再向spanalloc中分配。
李海彬
2018-07-26
2.1K
0
一致性hash算法原理及golang实现
编程算法
go
缓存
存储
这里存在一种场景, 当一个缓存服务由多个服务器组共同提供时, key应该路由到哪一个服务.这里假如采用最通用的方式key%N(N为服务器数目), 这里乍一看没什么问题, 但是当服务器数目发送增加或减少时, 分配方式则变为key%(N+1)或key%(N-1).这里将会有大量的key失效迁移,如果后端key对应的是有状态的存储数据,那么毫无疑问,这种做法将导致服务器间大量的数据迁移,从而照成服务的不稳定. 为了解决类问题,一致性hash算法应运而生.
李海彬
2018-07-26
1K
0
关于缓存你需要知道的
缓存
About Cache 作后端开发的同学,缓存是必备技能。这是你不需要花费太多的精力就能显著提升服务性能的灵丹妙药。前提是你得知道如何使用它,这样才能够最大限度发挥它的功效,并抑制其副作用。本文将介绍最如何正确的添加和更新缓存。 开始之前 这部分将介绍在开始加缓存之前我们必须要做的事情。这步非常重要,如果没弄好,很有可能加了缓存反而不如不加。 为什么要用缓存?对于一个服务其性能瓶颈往往都在DB,传统关系型存储尤甚。我们在创建表的时候,并不会未所有的字段创建索引,这意味着如果我们需要读取非缓存数据就要从磁盘拿
李海彬
2018-03-27
715
0
动态内容缓存
缓存
4.1 缓存与速度 这里所说的动态内容缓存是自行实现的缓存机制,包括整页缓存、局部缓存、数据缓存等。 缓存的目的是把花费昂贵开销的计算结果保存起来,以后需要的时候直接取出,避免重复的计算,一切缓存的本质都是如此。 CPU缓存是位于CPU和内存之间的临时寄存器,它的容量不大,但交换速度高于内存,CPU把频繁交换的数据放在缓存中,以后需要的时候直接从缓存中读出,从而避免访问速度较慢的内存。 缓冲(Buffer)的目的在于改善各部件速度不匹配的问题。例如:用户态空间的数据写入磁盘时
李海彬
2018-03-23
2.3K
0
高并发服务器的设计--缓存的设计
缓存
为什么需要缓存呢? 很简单的道理,拿QQ做个比方,每天有几亿用户登录、查询个人信息,且这些信息基本不会变化,如果你是架构师,你会选择全部从数据库中查询么,估计会被笑的。 一些业务要求大量且高速查询的,数据库必然会成为瓶颈,虽然可以通过横向扩容的方式优化,但这不是最优方案,其实服务器优化没有一个放之四海而皆准的最优方案,业务不同,最优方案也不同。 举个例子,腾讯有十几亿用户,就光登录就是个头疼的事,做架构的往往要朝最坏的地方想,比如所有用户同时登录怎么办,难道要像12306那样直接不理你呢? 这样的业务其实并
李海彬
2018-03-23
1.3K
0
大型服务端开发的反模式技巧
数据库
缓存
1. 用线程池执行异步任务 为了减少阻塞时间,加快响应速度,把无需返回结果的操作变成异步任务,用线程池来执行,这是提高性能的一种手段。 你可能要惊讶了,这么做不对吗? 首先,我们把异步任务分为两种:
李海彬
2018-03-22
1K
0
Go 语言编写的缓存及缓存过滤库:groupcache
缓存
memcached
数据库
groupcache 是使用 Go 语言编写的缓存及缓存过滤库,作为 memcached 许多场景下的替代版本。 对比原始 memcached 首先,groupcache 与 memcached 的
李海彬
2018-03-22
890
0
【Go 语言社区】Go文件操作函数
go
ntp
缓存
文件操作 golang的文件操作时在os包中的。 所以用的时候要import os包 包含以下的这些函数 func Create(name string) (file *File, err error) 直接通过纹面创建文件 func NewFile(fd uintptr, name string) *File func Open(name string) (file *File, err error) 以只读方式打开一个存在的文件,打开就可以读取
李海彬
2018-03-20
739
0
【Go 语言社区】关于Golang 数据缓存到redis内存数据库遇到的问题
go
缓存
云数据库 Redis
数据库
首先, 简单的说下,redis 在项目中的一个作用;针对与大数据在内存操作数据和子数据库操作数据可能都不是一个数量级的,redis在项目中主要是起到配置数据的作用,说白了就是将数据库的不同的表整合到一个数据块,方便程序快速读取。例如APP开发,设计到文章属性的相关的多数都会存在一个内存数据块中,而在数据库则是不同的表。 假如有个工作做排行,我们完全可以用redis自己带的函数经行数据的排行;可以从小到大也可以从大到小。涉及到的API 如下: 保存到内存数据库:这个我
李海彬
2018-03-20
1.4K
0
【Go 语言社区】研究Redis 作为服务器缓存配置的可行性(一)
云数据库 Redis
缓存
最近在研究Redis 作为服务器缓存配置的可行性问题,今天我们测试高并发下的写入数据。 不管对于单服还是集群服务器组,同样涉及到数据缓存的问题,对于我们一般的开发人员,我们并不能想大师那样定义一个变量都小心又小心,生怕影响到服务器性能方面;所以在定义变量或者集合数据块的时候,我们要么利用文件要么利用内存亦或者数据库存储。 今天就给大家讲下,利用redis缓存数据问题,看可行性高不? 首先我们在服务器高并发下存储数据,暂时不读取数据。服务器我是用Go语言写的。
李海彬
2018-03-20
1.2K
0
go channel 通信通道
人工智能
缓存
go中最重要的一种通信通道就是channel 1.给一个 nil channel 发送数据,造成永远阻塞 2.从一个 nil channel 接收数据,造成永远阻塞 3.给一个已经关闭的 channel 发送数据,引起 panic 4.从一个已经关闭的 channel 接收数据,立即返回一个零值 package main import "fmt" // 此channel没有设置缓存,将被阻塞,所以都是执行default func main() { messages := make(chan
李海彬
2018-03-19
796
0
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
立即发文
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档