腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
数据小冰
专栏作者
举报
139
文章
62173
阅读量
27
订阅数
订阅专栏
申请加入专栏
全部文章
go
编程算法
函数
http
腾讯云测试服务
单元测试
打包
node.js
api
缓存
内存
字符串
数据库
sql
文件存储
存储
java
linux
网站
网络安全
raft
string
优化
jquery
json
ide
github
unix
rpc
https
测试
对象
c 语言
html
android
云数据库 Redis
命令行工具
SSL 证书
tcp/ip
etcd
error
int
return
time
using
变量
编码
并发
程序
内核
数据
负载均衡
c++
php
javascript
bash
css
单片机
汇编语言
git
bash 指令
mapreduce
批量计算
日志服务
访问管理
NAT 网关
海外加速
检测工具
serverless
开源
dns
推荐系统
udp
gcc
socket编程
数据处理
数据结构
系统架构
nat
kafka
聚类算法
性能测试
account
alignment
break
build
byte
code
concatenation
cpu
data
debug
for循环
gc
get
handler
heap
iteration
join
key
map
max
memory
package
path
port
redis
reduce
select
server
slice
stack
testing
tree
trim
遍历
编译
编译器
并发编程
部署
接口
配置
日志
设计
数组
线程
指针
重构
字符编码
搜索文章
搜索
搜索
关闭
redis SDS设计与实现分析
字符串
redis
内存
设计
数组
本系列文章从源码角度分析redis的设计与实现,分析的源码为最新版本7.2.4。下载地址(https://github.com/redis/redis/tree/7.2.4)。
数据小冰
2024-03-22
79
0
Go语言中常见100问题-#100 Not understanding the impacts of running Go ..
go
部署
内核
配置
线程
2021年Go开发者调查(https://go.dev/blog/survey2021-results)表明,用Go编写服务是最常见的用法,见下图。与此同时,Kubernetes是部署这些服务最广泛使用的平台。
数据小冰
2024-02-23
98
0
Go语言中常见100问题-#99 Not understanding how the GC works
gc
并发
对象
内存
go
垃圾回收♻️(GC)是Go语言关键特性,帮助开发人员大大减轻心智负担。我们知道内存有栈和堆区之分,栈内存无需手动释放,但是堆内存需要我们手动释放。在Go语言中,GC会跟踪和释放不再使用的堆内存,每个Gopher都应该了解其工作原理,这非常有助于我们对程序进行优化。
数据小冰
2024-02-23
122
0
Go语言中常见100问题-#98 Not using Go diagnostics tooling
go
using
程序
函数
内存
Go语言提供了一些优秀的分析工具,可以帮助我们定位程序的性能问题。本文关注最关键的两个工具:pprof和trace。pprof和trace都是Go语言自带的性能分析工具,pprof可以采集内存分配、goroutine等信息,使用trace可以分析并发、阻塞事件以及GC情况。
数据小冰
2024-02-23
158
0
Go语言中常见100问题-#97 Not relying on inlining
编译器
函数
优化
go
编译
内联是指用函数体内容替换函数调用。内联过程是由编译器自动完成的,了解内联的基本原理有助于我们对一些场景下的代码进行优化。
数据小冰
2024-02-01
113
0
Go语言中常见100问题-#96 Not knowing how to reduce allocations
reduce
对象
函数
优化
go
减少内存分配是Go应用程序的一个常见优化事项。本系列文章已介绍了不少减少堆上内存分配的方法:
数据小冰
2024-02-01
101
0
Go语言中常见100问题-#95 Not understanding stack vs. heap
heap
stack
变量
函数
go
在Go语言中,变量可以分配在栈上,也可以分配在堆上。栈内存和堆内存有着本质不同,会对数据密集型应用产生重大影响。本文主要讨论编译器将一个变量分配到栈上还是堆上规则。
数据小冰
2024-01-22
94
0
Go语言中常见100问题-#94 Not being aware of data alignment
alignment
data
变量
内存
go
数据对齐是指数据在内存中的分配方式。规则的内存分配可以加速CPU访问内存速度。如果不了解数据对齐,会导致编写的程序消耗额外的内存,并且程序性能低下。
数据小冰
2024-01-10
84
0
Go语言中常见100问题-#93 Not taking into account instruction-level ...
go
account
函数
数据
优化
指令级别并行也是严重影响程序性能的一个原因。在理解什么是指令级并行之前,先来看一个具体的例子,并分析如何优化它。下面的函数接收一个长度为2的int64类型数组,函数内部将迭代一定次数,在每轮迭代时,执行如下操作:
数据小冰
2024-01-02
92
0
Go语言中常见100问题-#92 Writing concurrent code that leads to false ...
go
缓存
code
内存
内核
在Go语言中常见100问题-#91 Not understanding CPU caches中讨论了缓存基本概念,可以看到一些特定的缓存(通常是 L1 和 L2)并不在所有逻辑内核之间共享,而是属于一个特定物理内核。这种特殊性会产生一些影响,比如并发时伪共享,这会导致性能显著下降。下面通过一个具体例子来说明什么是伪共享,以及如何预防这种情况发生。
数据小冰
2023-12-13
141
0
Go语言中常见100问题-#91 Not understanding CPU caches
go
缓存
cpu
函数
内存
机械同理心(mechanical sympathy)是三届F1世界冠军杰基·斯图尔特 (Jackie Stewart) 创造的一个术语。
数据小冰
2023-11-29
157
0
Go语言中常见100问题-#90 Not exploring all the Go testing features
go
testing
测试
对象
函数
单元测试是每个开发人员必须掌握的开发技能,Go语言特别注重单元测试,所以每个Gopher需要知道如何进行单元测试,使用什么参数控制测试效果,提升我们编写的代码质量,本文讨论相关单测技巧。
数据小冰
2023-09-10
184
0
Go语言中常见100问题-#89 Writing inaccurate benchmarks
go
性能测试
测试
函数
优化
我们不要猜测程序性能,在对代码进行优化的时候,可能会有很多因素发挥作用,所以需要综合考虑,进行测试验证准没错。然而,编写benchmark并不是一件简单的事情,很容易因编写错误的benchmark导致做出不正确优化。本章节将列举一系列非正确编写benchmark问题点。
数据小冰
2023-08-17
201
0
Go语言中常见100问题-#88-2 the iotest package
go
package
测试
函数
接口
iotest包 https://pkg.go.dev/testing/iotest 提供了测试 readers和writers 函数集合。很多Gopher不知道有这个包,本文讲如何使用该包,方便我们编写测试代码。
数据小冰
2023-08-17
158
0
Go语言中常见100问题-#41 substrings and memory leaks
go
memory
内存
日志
字符串
在Go语言中常见100问题-#26 slices and memory leaks讨论切片可能导致的内存泄露问题,其实对于字符串也可能会导致内存泄露。下面来分析在操作字符串的时候如何防止内存泄露。
数据小冰
2023-08-17
163
0
Go语言中常见100问题-#40 Useless string conversions
go
byte
string
函数
字符串
当编码操作的类型既可以是 []byte 又可以是 string时,大多数程序员倾向使用string类型,因为这样可能更方便。但是大多数的 I/O 操作采用的类型是 []byte。例如 io.Reader、io.Writer 和 io.ReadAll. 如果拿到的类型是string,但又要使用这些接口意味着需要进行类型转换,strings包提供了相关的转换函数。
数据小冰
2023-08-17
99
0
Go语言中常见100问题-#39 Under-optimized string concatenation
go
concatenation
string
数据
字符串
在Go语言中,字符串连接主要有两种方法,其中一种在某些时候是非常低效的,通过本文学习我们应该掌握在不同的场景下选择最合适的方法。
数据小冰
2023-08-17
97
0
Go语言中常见100问题-#38 Misusing trim functions
go
trim
函数
字符串
很多Gopher常犯的一个错误是混合使用strings包中的 TrimRight 和 TrimSuffix 函数,因为这个两个函数提供的功能相似,极容易产生误用。下面通过具体的例子说明。
数据小冰
2023-08-17
127
0
Go语言中常见100问题-#37 Inaccurate string iteration
go
iteration
string
编码
字符串
对字符串进行迭代是一个非常常见的操作,例如我们想要对字符串中的每个rune做一些操作或者实现一个查找具体子串的函数。但是字符串迭代中存在一些误区,需要了解掌握,避免踩坑。
数据小冰
2023-08-17
137
0
Go语言中常见100问题-#36 Not understanding the concept of a rune
go
编码
函数
字符编码
字符串
通过字符可以简化字符集定义,但是在Unicode中,使用代码点来标识字符,字符集中的每个字符都有唯一的代码点值。例如,中文汉字的代码点值是U+6C49. 如果采用UTF-8编码,汉字存储占3个字节:0xE6,0xB1,0x89. 理解这些非常重要,因为在Go语言中,1个rune字符是一个代码点。
数据小冰
2023-08-17
140
0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
立即发文
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档