IT书架 本次搜索耗时 0.020 秒,为您找到 746 个相关结果.
  • 568.新版的golang slice切片扩容机制

    42 2024-05-16 《Golang面试题》
    引言 测试代码 Go 1.17版本切片扩容 Go 1.18版本切片扩容 总结 引言 Go1.18之前切片的扩容是以容量1024为临界点,当旧容量 < 1024个元素,扩容变成2倍;当旧容量 > 1024个元素,那么会进入一个循环,每次增加25%直到大于期望容量。 然而这个扩容机制已经被Go 1.18弃用了,官方说新的扩容机制能更平滑地过渡。...
  • 1.开篇词:如何精进 Go 开发能力?

    Go 带你撬开云原生世界的大门 Go 带给你更好的求职优势 如何学习 Go 语言? 学习 Go 基础语法 学习 Go 编程实战 进行 Go 编程实战 精进 Go 编程能力 通过本课程你将学到什么? 我们知道,Go 出自名门 Google 公司,是一门支持并发、垃圾回收的编译型高级编程语言。Go 兼具静态编译语言的高性能以及动态语言的高开发效...
  • 48.程序性能分析基础(上)

    762 2023-12-29 《Go语言核心36讲》
    48 | 程序性能分析基础(上) 问题解析 总结 48 | 程序性能分析基础(上) 作为拾遗的部分,今天我们来讲讲与Go程序性能分析有关的基础知识。 Go语言为程序开发者们提供了丰富的性能分析API,和非常好用的标准工具。这些API主要存在于: runtime/pprof ; net/http/pprof ; runtime/trace ;...
  • 174.go 里的 syncLock 和 channel 的性能有区别吗?

    155 2024-01-18 《Golang面试题》
    go 里的 syncLock 和 channel 的性能有区别吗? 答案: go 里的 syncLock 和 channel 的性能有区别吗? 参考解析 题目来源: 小米 答案: channel的底层也是用了syns.Mutex,算是对锁的封装,性能应该是有损耗的,用测试的数据更有说服力 package channel ...
  • 313.GO语言中的协程与Python中的协程的区别?

    132 2024-01-22 《Golang面试题》
    GO语言中的协程与Python中的协程的区别? GO语言中的协程与Python中的协程的区别? 题目来源: python协程特点 单线程内切换,适用于IO密集型程序中,能够最大化IO多路复用的效果。 没法利用多核。 协程间彻底同步,不会并行。不须要考虑数据安全。 关键词yield go协程特点 协程间须要保证数据安全,好比经过channel或锁...
  • 17.项目测试:Go 代码测试种类有哪些,如何编写测试用例?

    Go 单元测试现状 Go 语言如何编写测试用例? Go 语言测试种类及用例编写方法 单元测试 性能测试 编写性能测试用例 运行性能测试用例 查看性能并生成函数调用图 模糊测试 测试工具介绍 测试框架 Mock 工具 测试覆盖率 小结 提示:本节课最终代码为:feature/s23 。 在实际开发中,不仅要开发功能,更重...
  • 5.应用构建:如何构建一个高质量的 Go 应用?

    应用程序组成部分及构建方法 应用配置 应用业务逻辑处理 应用启动框架 最佳构建方法 miniblog 应用构建 编译并运行 miniblog 小结 提示:本节课最终代码为:feature/s02 。 开发一个 Go 项目,最核心的目的是开发一个能够满足产品需求的应用,那么如何构建应用呢?不同的开发者有不同的构建方法。 有些开发者将...
  • 1.Go goroutine的底层实现原理?

    1.Go goroutine的底层实现原理? 概念 底层数据结构 状态流转 创建 阻塞 唤醒 退出 1.Go goroutine的底层实现原理? 概念 Goroutine可以理解为一种Go语言的协程(轻量级线程),是Go支持高并发的基础,属于用户态的线程,由Go runtime管理而不是操作系统。 底层数据结构 type g ...
  • 323.Go 语言内存分配,什么分配在堆上,什么分配在栈上

    138 2024-01-22 《Golang面试题》
    Go 语言内存分配,什么分配在堆上,什么分配在栈上 Go 语言内存分配,什么分配在堆上,什么分配在栈上 题目来源:知乎 答案: Go 语言有两部分内存空间:栈内存和堆内存。栈内存由编译器自动分配和释放,函数调用的参数、返回值以及局部变量大都会被分配到栈上。堆内存的生命周期比栈内存要长,如果函数返回的值还会在其他地方使用,那么这个值就会被编译...
  • 571.golang 多个协程向同一个map写入数据会发生什么 能不能被recover捕获到吗

    8 2024-06-08 《Golang面试题》
    在Go语言中,多个协程向同一个map写入数据会导致并发读写冲突,可能会引发数据竞争(data race)问题,从而导致程序panic。为了解决这个问题,可以使用sync.Map,这是Go语言1.9版本后提供的并发安全的map。 在Go语言中,多个协程向同一个map写入数据会导致数据竞争(data race),从而引发panic。尽管可以通过recover...