查看tidb源代码:::util/charset/charset.go,下面有段代码:

// GetAllCharsets gets all charset descriptions in the local charsets.
func GetAllCharsets() []*Desc {
descs := make([]*Desc, 0, len(charsets))
// The charsetInfos is an array, so the iterate order will be stable.
for _, ci := range charsetInfos {
c, ok := charsets[ci.Name]
if !ok {
continue
}
desc := &Desc{
Name: c.Name,
DefaultCollation: c.DefaultCollation.Name,
Desc: c.Desc,
Maxlen: c.Maxlen,
}
descs = append(descs, desc)
}
return descs
}

查看append,思考一个问题,调用本方法之后,descs内存地址是否重新分配?

特做如下例子进行测试:

type Names struct {
Name string
}
mynames := make([]*Names, 0)
for i := 0; i < 10; i++ {
my := &Names{
Name: "append"}
mynames = append(mynames, my)
fmt.Println(&mynames)
}

运行结果如下:

从10次的输出结果来看,调用append内部函数,不改变内存地址,也就是不产生性能损耗。

最新文章

  1. tp5 中 model 的新增方法
  2. 探测FTP状态,socket方式
  3. web应用程序 ---- 日志系统的设计
  4. mongodb数据结构学习1--增删改查
  5. Json工具类 - JsonUtils.java
  6. hdu 4271 动态规划
  7. 从最近MySQL的优化工作想到的
  8. android:layout_weight属性的简单使用
  9. map——映射(message.cpp)
  10. CodeForces - 788B Weird journey 欧拉路
  11. [LeetCode] Next Greater Element II 下一个较大的元素之二
  12. Codeforces Round #401 (Div. 2)
  13. #VSTS日志# Xamarin构建支持和一大波更新
  14. JavaEE开发之基于Eclipse的环境搭建以及Maven Web App的创建
  15. C# 复选框显示多项选择
  16. Java基础总结3
  17. TensorFlow走过的坑之---数据读取和tf中batch的使用方法
  18. 终于,我还是下决心学Java后台了
  19. OpenID
  20. 第20课-数据库开发及ado.net 可空值类型,资料管理器,多条件查询,Case

热门文章

  1. BZOJ.4910.[SDOI2017]苹果树(树形依赖背包 DP 单调队列)
  2. Android软件设计规范---命名规则/代码包设计规则等
  3. php 将两个数组进行相加 http://blog.csdn.net/lcstrive/article/details/38331487
  4. Oracle内置函数
  5. assets 与 res 目录的区别
  6. Django——日志
  7. 什么是OKR?
  8. sql 2008 查询性能优化笔记
  9. JAVA自学笔记08
  10. 100本Python精品书籍(附pdf电子书下载)