背景 By 鲁迅 By 高尔基 说明: 1. Kernel版本:4.14 2. ARM64处理器,Contex A53,双核 3. 使用工具:Source Insight 3.5, Visio 1. 概述 本文将描述 ,内存碎片整理技术。 内存碎片分为内碎片和外碎片: 内碎片:内存页里边的碎片; 外 ...
分类:
系统相关 时间:
2019-10-27 00:34:08
阅读次数:
142
垃圾回收机制,依赖JRE和JVM,涉及操作系统中内存的分配与回收。依据所学,我猜想这种机制需要的数据结构是堆内存分配表(链),管理已分配和未分配的堆内存,对于已分配堆内存,需要知道由栈内存中的哪些变量引用。知道了这些,依赖垃圾检测和回收算法,把长期未得到栈变量引用的堆内存块回收,挂到未分配内存表中。 ...
分类:
编程语言 时间:
2019-10-16 13:02:54
阅读次数:
81
MySQL是常用的关系型数据库,本文介绍了go语言如何操作MySQL数据库。Go操作MySQL连接Go语言中的database/sql包提供了保证SQL或类SQL数据库的广泛接口,并不提供具体的数据库驱动。使用database/sql包时必须注入一个数据库驱动。下载依赖goget-ugithub.com/go-sql-driver/mysql使用MySQL驱动funcOpen(driverName
分类:
数据库 时间:
2019-07-27 17:03:49
阅读次数:
103
并发与并行并发:同一时间段内执行多个任务。并行:同一时刻执行多个任务。Go语言的并发通过goroutine实现。goroutine类似于线程,属于用户态的线程,我们可以根据需要创建成千上万个goroutine并发工作。goroutine是由go语言的运行调度完成的,而线程是由操作系统调度完成的。Go语言还提供了channel在多个goroutine间进行通信。goroutine和channel是g
分类:
其他好文 时间:
2019-07-26 01:49:14
阅读次数:
71
本文介绍go语言反射的意义和基本使用。变量的内在机制go语言中的变量是分为两部分的:类型信息:预先定义好的元信息值信息:程序运行过程中可动态变化的。反射的介绍反射是指在程序运行期对程序本身进行访问和修改的能力。程序在编译时,变量被转换为内存地址,变量名不会被编译器写入到可执行部分。在运行程序时,程序无法获取自身的信息。支持反射的语言可以在程序编译期将变量的反射信息,如字段名称,类型信息、结构体信息
分类:
其他好文 时间:
2019-07-07 22:47:42
阅读次数:
175
在工程化的Go语言开发项目中,Go语言的源码复用是建立在包(package)基础之上的,本文介绍了go语言中如何定义包,如何导出包的内容以及如何导入其他包。包介绍包(package)是多个Go源码的集合,是一种高级的代码复用方案,go语言为我们提供了很多的内置包,如fmt、os、io等。定义包我们还可以根据自己的需要创建自己的包,一个包可以简单理解为一个存放.go文件的文件夹。该文件夹下面的所有g
分类:
编程语言 时间:
2019-07-04 00:11:20
阅读次数:
151
接口接口(interface)定义了一个对象的行为规范,只定义规范不实现,由具体的对象来实现规范的细节。接口类型在Go语言中接口(interface)是一种类型,是一种抽象的类型。interface是一组method的集合,是duck-typeprogramming的一种体现。接口做的事情就像是定义一个协议(规则),只要一台机器有洗衣服和甩干的功能,我就称它为洗衣机。不关心属性(数据),只关心行为
分类:
编程语言 时间:
2019-06-27 11:04:42
阅读次数:
195
strconv包strconv包实现额基本数据类型与其字符串表示的转换,主要有以下常用函数,Atoi()、Itia()、parse系列、format系列、append系列。string与int类型转换这一组函数是我们平时用的最多的。Atoi()Atio()函数用于将字符串类型的整数转换为int类型,函数签名如下:funcAtoi(sstring)(iint,errerror)如果传入的字符串参数无
分类:
编程语言 时间:
2019-06-09 19:40:17
阅读次数:
133
log,Go语言内置的log包实现了简单的日志服务。本文介绍了标准库log的基本使用。 ...
分类:
编程语言 时间:
2019-06-06 12:09:05
阅读次数:
96
无论是软件开发的调试阶段还是软件上线之后的运行阶段,日志一直是很重要的环节,我们也应该养成在程序中记录日志的好习惯。logGo语言内置的log包实现了简单的日志服务。本文介绍了标准库log的基本使用。使用Loggerlog包定义了Logger类型,该类型提供了一些格式化输出的方法。本包也提供了一个预定义的“标准”logger,可以通过调用函数Print系列(Print|Printf|Println
分类:
编程语言 时间:
2019-06-06 09:13:16
阅读次数:
131