callmePicacho

Results 11 comments of callmePicacho

哈哈哈你一说我也发现了,不过给了太多链接出去,不打算改了,谢谢指正!

抱歉才看到 我是这样考虑的,其实这返回什么值都无所谓,因为前面已经提示过不存在元素了,如果后面再返回一个 -1,可能会产生困扰,所以我就没有返回 -1

总结: 1. 性能分析类型 - CPU 性能分析,runtime 每隔 10 ms 中断一次,记录此时正在运行的 goroutines 的堆栈信息 - 内存性能分析,记录堆内存分配时的堆栈信息,忽略栈内存分配信息,默认每 1000 次采样 1 次 - 阻塞性能分析,GO 中独有的,记录一个协程等待一个共享资源花费的时间 - 锁性能分析,记录因为锁竞争导致的等待或延时 2. CPU 性能分析 - 使用原生 `runtime/pprof` 包,通过在...

总结: 1. 字符串最高效的拼接方式是结合预分配内存方式 `Grow` 使用 `string.Builder` 2. 当使用 `+` 拼接字符串时,生成新字符串,需要开辟新的空间 3. 当使用 `strings.Builder`,`bytes.Buffer` 或 `[]byte` 的内存是按倍数申请的,在原基础上不断增加 4. `strings.Builder` 比 `bytes.Buffer` 性能更快,一个重要区别在于 `bytes.Buffer` 转化为字符串重新申请了一块空间存放生成的字符串变量;而 `strings.Builder` 直接将底层的 `[]byte` 转换成字符串类型返回

总结: 1. 进行性能测试时,尽可能保持测试环境的稳定 2. 实现 benchmark 测试 • 位于 `_test.go` 文件中 • 函数名以 `Benchmark` 开头 • 参数为 `b *testing.B` • `b.ResetTimer()` 可重置定时器 • `b.StopTimer()` 暂停计时 • `b.StartTimer()` 开始计时 3. 执行...

> @boyl > 这里当节点数量变化后(新增节点/删除节点),只是简单的通过回调函数去加载一次数据吗,不考虑迁移变化节点的缓存吗,是否会同时造成缓存雪崩 雪崩是全部失效,用分布式一致性算法后只有部分失效

总结: 1. GO 中的数组变量属于值类型,当数组变量被赋值或传递时,实际上会复制整个数组 2. 切片本质是数组片段的描述,包括数组的指针,片段的长度和容量,切片操作并不复制切片指向的元素,而是复用原来切片的底层数组 - 长度是切片实际拥有的元素,使用 `len` 可得到切片长度 - 容量是切片预分配的内存能够容纳的元素个数,使用 `cap` 可得到切片容量 - 当 append 之后的元素小于等于 cap,将会直接利用底层元素剩余的空间 - 当 append 后的元素大于 cap,将会分配一块更大的区域来容纳新的底层数组,在容量较小的时候,通常是以 2 的倍数扩大 3. 可能存在只使用了一小段切片,但是底层数组仍被占用,得不到使用,推荐使用 `copy` 替代默认的...

> @bowenddd > 是不是在执行完成Commit和Rollback方法最后中要将s.tx设置为nil呢,否则一旦开启事务后。之后所有的sql语句都将通过s.tx来执行了 不用啊,`Transaction` 里的 session 在方法中 New 出来的,生命周期都在这个方法里

问题产生在 tp102-how-to-use-git-github.md 文档中 36 行的 `**Suggested Assignments: **`