暂无搜索历史
Go语言的一个优势是能够生成静态链接的可执行程序。但是,这并不是说默认情况下编译出来的Go可执行程序都是静态链接的。在有些情况下,需要额外的操作才能实现。具体情...
在Go语言中,类型名称、变量或者函数名首字母大写,表示其是可导出的,对于这个知识点我们都不陌生。例如,如果一个函数名首字母是大写的,我们称之为公有方法,相反如果...
最近小编在一个项目的联调阶段踩坑了,排查了老半天才解决。问题是这样的:设备A上的某个服务需要将其采集到的数据发送到设备B上的某个服务,传输的数据是JSON格式。...
本文是WebSocket系列文章的第3篇,从源码角度理解WebSocket是如何实现的。分析的是gorilla websocket,即WebSocket协议-实...
在Go语言中,continue语句可以标签一起使用,continue label在处理复杂的嵌套循环时非常有用,可以让代码变得更简洁。
本文是WebSocket系列文章的第2篇,第1篇主要讲述概念原理。本文从实战角度介绍如何使用WebSocket。
WebSocket与HTTP不是同一种协议,虽然两者都位于OSI模型的应用层,并且都依赖底层的TCP协议。它们有着各自的协议格式,应用不同的场景。WebSock...
本系列文章从源码角度分析redis的设计与实现,分析的源码为最新版本7.2.4。下载地址(https://github.com/redis/redis/tree...
2021年Go开发者调查(https://go.dev/blog/survey2021-results)表明,用Go编写服务是最常见的用法,见下图。与此同时,K...
垃圾回收♻(GC)是Go语言关键特性,帮助开发人员大大减轻心智负担。我们知道内存有栈和堆区之分,栈内存无需手动释放,但是堆内存需要我们手动释放。在Go语言中,G...
Go语言提供了一些优秀的分析工具,可以帮助我们定位程序的性能问题。本文关注最关键的两个工具:pprof和trace。pprof和trace都是Go语言自带的性能...
内联是指用函数体内容替换函数调用。内联过程是由编译器自动完成的,了解内联的基本原理有助于我们对一些场景下的代码进行优化。
减少内存分配是Go应用程序的一个常见优化事项。本系列文章已介绍了不少减少堆上内存分配的方法:
在Go语言中,变量可以分配在栈上,也可以分配在堆上。栈内存和堆内存有着本质不同,会对数据密集型应用产生重大影响。本文主要讨论编译器将一个变量分配到栈上还是堆上规...
数据对齐是指数据在内存中的分配方式。规则的内存分配可以加速CPU访问内存速度。如果不了解数据对齐,会导致编写的程序消耗额外的内存,并且程序性能低下。
指令级别并行也是严重影响程序性能的一个原因。在理解什么是指令级并行之前,先来看一个具体的例子,并分析如何优化它。下面的函数接收一个长度为2的int64类型数组,...
在Go语言中常见100问题-#91 Not understanding CPU caches中讨论了缓存基本概念,可以看到一些特定的缓存(通常是 L1 和 L2...
机械同理心(mechanical sympathy)是三届F1世界冠军杰基·斯图尔特 (Jackie Stewart) 创造的一个术语。
单元测试是每个开发人员必须掌握的开发技能,Go语言特别注重单元测试,所以每个Gopher需要知道如何进行单元测试,使用什么参数控制测试效果,提升我们编写的代码质...
暂未填写公司和职称
暂未填写个人简介
暂未填写技能专长
暂未填写学校和专业
暂未填写个人网址
暂未填写所在城市