Golang 常用关键字for range使用 for-range 的控制结构最终也会被 Go 语言编译器转换成普通的 for 循环 现象 循环永动机 如果我们在遍历数组的同时修改数组的元素,能否得到一个永远都不会停止的循环呢? func main() { a2021-07-28 GolangGolang Golang 语言基础函数调用C语言 C 语言同时使用寄存器和栈传递参数,使用 eax 寄存器传递返回值,由于只使用一个寄存器存储返回值,所以 C 语言的函数不能同时返回多个值 优点:极大地减少函数调用的额外开销,CPU 访问栈的开销比访问寄存器高几十倍缺点:2021-06-18 GolangGolang Golang 数据结构数组 数组是由相同类型元素的集合组成的数据结构,计算机会为数组分配一块连续的内存来保存其中的元素,我们可以利用数组中元素的索引快速访问特定元素 存储元素类型相同、但是大小不同的数组类型在 Go 语言看来也是完全不同的,只有两个条件都相同才2021-05-20 GolangGolang Golang 内存管理内存分配器 程序中的数据和变量都会被分配到程序所在的虚拟内存中,内存空间包含两个重要区域:栈区(Stack)和堆区(Heap) Go语言会由工程师和编译器共同管理,堆中的对象由内存分配器分配并由垃圾收集器回收 设计原理3个组件:用户程序(2021-05-10 GolangGolang 内存 Golang 编译原理预备知识抽象语法树 抽象语法树(Abstract Syntax Tree、AST),是源代码语法的结构的一种抽象表示,它用树状的方式表示编程语言的语法结构 抽象语法树中的每一个节点都表示源代码中的一个元素,每一棵子树都表示一个语法元素,以2021-04-12 GolangGolang Golang 优雅重启长连接服务优雅重启长连接服务目前一些设备长连接服务,每次发布新版本都需要踢掉连接,然后再发布,本文研究go实现长连接服务器的优雅重启 我们要解决的事情: 如何做到不中断接收连接 如何做到已有连接不中断 第一个问题,如何做到不中断接受连接 看lin2021-04-10 GolangGolang Linux devel包和非devel包的区别devel 包主要是供开发用,至少包括以下2个东西: 头文件 链接库有的还含有开发文档或演示代码。 以 libsodium 和 libsodium-devel 为例: 如果你安装基于 libsodium 开发的程序,只需要安装 libs2021-03-19 LinuxLinux Linux 内核参数可用sysctl来管理,变量的设置通常是字符串、数字或者布尔型。 (布尔型用 1 来表示“yes”,用 0 来表示“no”) 获取sysctl net.core.somaxconn写入sysctl -w net.core.somaxconn2021-03-19 LinuxLinux Mysql schema与数据类型优化内容学习自《高性能MySQL》 数据类型选择 更小的通常更好 尽量使用可以正确存储数据的最小类型。占用的更小的磁盘、内存和CPU缓存 简单就好 简单的数据操作通常需要更少的CPU周期,整形比字符串操作的代价更低,因为字符集合校对2021-03-15 MySQLMySQL 二十四节气二十四节气歌春雨惊春清谷天,夏满芒夏暑相连。秋处露秋寒霜降,冬雪雪冬小大寒。每月两节不变更,最多相差一两天。上半年来六廿一,下半年是八廿三。 立春 雨水 惊蛰 春分 清明 谷雨 立夏 小满 芒种 夏至 小暑 大暑 立秋 处暑 白露 秋分 寒2021-03-01 国粹国粹 神话传说上古十大神器东皇钟 轩辕剑 盘古斧 炼妖壶 昊天塔 伏羲琴 神农鼎 崆峒印 昆仑镜 女娲石 洪荒十大先天至宝太极图、盘古幡、混沌钟、诛仙剑阵、天地玄黄玲珑宝塔、乾坤鼎、先天五行旗、十二品莲台、24颗定海珠、天地人三书 上古十大凶兽裂天兕(s2021-03-01 国粹国粹 内存分配算法简介内存管理不外乎三个层面,用户程序层,C运行时库层,内核层。allocator 正是值C运行时库的内存管理模块,它响应用户的分配请求,向内核申请内存,然后将其返回给用户程序。为了保持高效的分配,allocator 一般都会预先分配一块大于2021-02-16 计算机内存分配算法 Golang 依赖管理简述 Go 在做依赖管理时会创建两个文件,go.mod 和 go.sum go.mod 提供了依赖版本的全部信息,类似php的composer.json go.sum 具体的版本,类似php的composer.lock go.sum格式&2021-01-10 GolangGolang Golang 内存对齐为什么要内存对齐 CPU访问内存时,并不是逐个字节访问,而是以字长(word size)为单位访问。比如32位的CPU,字长为4字节,那么CPU访问内存的单位也是4字节。 这么设计的目的,是减少CPU访问内存的次数,加大CPU访问内存的吞2021-01-10 GolangGolang 内存 Golang 指针指针类型*类型 普通指针类型,用于传递对象地址,不能进行指针运算 unsafe.Pointer 通用指针类型,用于转换不同类型的指针,不能进行指针运算,不能读取内存存储的值(必须转换到某一类型的普通指针) 特点: 任何类型的指针都可以2021-01-09 GolangGolang 指针 TCP协议TCP协议学习《计算机网络》 TCP是面向连接的传输层协议,需建立连接,数据传输完毕后必须释放已建立的连接 每条TCP连接只能有两个端点,点对点。连接的端点叫做套接字(socket),由IP+端口和冒号组成。 TCP提供可靠交付的2020-12-27 NetworkTCP 最美古文《过秦论》 贾谊秦孝公据崤函之固,拥雍州之地,君臣固守以窥周室,有席卷天下,包举宇内,囊括四海之意,并吞八荒之心。当是时也,商君佐之,内立法度,务耕织,修守战之具,外连衡而斗诸侯。于是秦人拱手而取西河之外。 孝公既没,惠文、武、昭襄蒙故业,2020-12-26 国粹国粹 一文理解 ERP、MES、APS之间的关系基本概念 ERP 企业资源计划 MES 制造执行系统 APS 进阶生产规划及排程系统 使用一个例子来理解(纯属编造)一天中午,丈夫在外给家里打电话:“亲爱的老婆,晚上想带几个同事回家吃饭可以吗?”(订货意向) 订货意向丈夫:“2020-12-21 随笔随笔