Go Ballast 让内存控制更加丝滑
关于 Go GC 优化的手段你知道的有哪些?比较常见的是通过调整 GC 的步调,以调整 GC 的触发频率。
扫地僧
2021-11-20 23:13:35
45
1
0
Go 语言内存管理三部曲(三)图解 GC 算法和垃圾回收原理
现代高级编程语言管理内存的方式分为两种:自动和手动,像 C、C++ 等编程语言使用手动管理内存的方式,工程师编写代码过程中需要主动申请或者释放内存;而 PHP、Java 和 Go 等语言使用自动的内存管理系统,有内存分配器和垃圾收集器来代为分配和回收内存,其中垃圾收集器就是我们常说的 GC。
小王子
2021-11-04 10:32:32
74
0
0
Go 语言内存管理三部曲(二)解密栈内存管理
应用程序的内存会分成堆区(Heap)和栈区(Stack)两个部分,程序在运行期间可以主动从堆区申请内存空间,这些内存由内存分配器分配并由垃圾收集器负责回收。栈区的内存由编译器自动进行分配和释放,栈区中存储着函数的参数以及局部变量,它们会随着函数的创建而创建,函数的返回而销毁。
cutercorley
2021-11-04 10:08:24
74
0
0
Go 语言内存管理三部曲(一)内存分配原理
现代高级编程语言管理内存的方式分为两种:自动和手动,像 C、C++ 等编程语言使用手动管理内存的方式,工程师编写代码过程中需要主动申请或者释放内存;而 PHP、Java 和 Go 等语言使用自动的内存管理系统,有内存分配器和垃圾收集器来代为分配和回收内存。
翻译小组
2021-11-04 09:14:31
69
0
0
golang的CGO_ENABLED交叉编译(Linux, Windows)
编译到Windows添加参数CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ 编译到Linux添加参数CGO_ENABLED=1 GOARCH=amd64 CC=x86_64-linux-musl-gcc CXX=x86_64-linux-musl-g++
小王子
2021-09-08 14:00:01
230
0
0
Idea 永久激活教程
分享一下JetBrains破解教程,本教程适用于JetBrains下的全部软件,如idea,pycharm,webstorm......等等,相当于永久激活,亲测有效,,请放心食用~下面是详细文档哦~
xiaowen
2021-09-05 12:47:14
185
0
0
mac安装brew 和 port 443 解决办法
使用国内gitee源可以下载成功
xiaowen
2021-09-04 16:01:56
179
0
1
Django 表单字段详细说明
当你创建一个 Form 类时,最重要的部分是定义表单的字段。每个字段都有自定义的验证逻辑,以及其他一些钩子。
小王子
2021-08-26 21:24:57
235
0
0
线上go 应用程序如何定位和进行性能问题-profiling
Profiling 是指在程序的执行过程中,收集能反映程序执行状态的数据,例如程序执行所占用内存、特定指令的使用情况或函数调用的频率和持续时间,等等。Profiling 最常见的应用就是帮助应用程序定位和优化性能问题。
麦洛
2021-07-18 12:46:10
243
0
0
solidity智能合约一笔交易详解
和pure和view不同,当我们执行changeName方法时,会发现,我们需要消耗gas。这笔事务会发送给全网所有的节点。全网所有的节点都会执行同样的操作
麦洛
2021-07-17 15:15:07
275
0
0
solidity智能合约的pure与view剖析
view: 可以自由调用,因为它只是“查看”区块链的状态而不改变它;pure: 也可以自由调用,既不读取也不写入区块链
麦洛
2021-07-17 15:05:50
273
0
0
solidity智能合约代码结构
public:任何人都可以调用该函数,包括DApp的使用者;private:只有合约本身可以调用该函数(在另一个函数中);internal:只有这份合同以及由此产生的所有合同才能称之为合同;external:只有外部可以调用该函数,而合约内部不能调用;view: 可以自由调用,因为它只是“查看”区块链的状态而不改变它;pure: 也可以自由调用,既不读取也不写入区块链
小王子
2021-07-17 15:01:39
254
0
0
solidity智能合约-helloworld
solidity智能合约-helloworld
麦洛
2021-07-17 14:51:39
269
0
0
solidity 简介加 hello world
以太坊拥有多种高级语言,可用于编写智能合约,每种语言都受到另一种广泛使用的语言的启发。最流行的一种叫做Solidity,它基于JavaScript。由于Solidity是迄今为止最成熟的以太坊语言,因此它是社区大力鼓励开发人员现在使用的语言。
麦洛
2021-07-17 14:47:49
285
0
0
Go 协程调度——基本原理与初始化
goroutine是Go语言实现的用户态线程,主要用来解决操作系统线程太“重”的问题
麦洛
2021-07-17 12:28:40
288
0
0
Go语言(golang)新发布的1.13中的Error Wrapping深度分析
Go 1.13发布的功能还有一个值得深入研究的,就是对Error的增强,也是今天我们要分析的 Error Wrapping.
麦洛
2021-07-17 11:54:09
257
0
0
以太坊中如何判断一个地址为合约账户地址
对以太坊稍微了解一些朋友,应该知道,以太坊中有两类账户,一类是普通的由私钥控制的外部账户,一类是关联有合约代码的合约账户。
小王子
2021-07-15 10:54:59
270
0
0
深入研究 Go interface 底层实现
接口是高级语言中的一个规约,是一组方法签名的集合。Go 的 interface 是非侵入式的,具体类型实现 interface 不需要在语法上显式的声明,只需要具体类型的方法集合是 interface 方法集合的超集,就表示该类实现了这一 interface。编译器在编译时会进行 interface 校验。interface 和具体类型不同,它不能实现具体逻辑,也不能定义字段。
麦洛
2021-07-13 19:12:30
294
0
0
go 语言内存泄漏的场景
当使用一门支持自动垃圾回收的语言编程时,一般来说我们不需要关心内存泄露问题,因为程序的运行时会负责回收不再使用的内存。 但是,我们确实也需要知道一些特殊的可能会造成暂时性或永久性内存泄露的情形
麦洛
2021-07-13 18:47:08
297
0
0
Golang 互斥锁内部实现
go语言提供了一种开箱即用的共享资源的方式,互斥锁(sync.Mutex), sync.Mutex的零值表示一个没有被锁的,可以直接使用的,一个goroutine获得互斥锁后其他的goroutine只能等到这个gorutine释放该互斥锁,在Mutex结构中只公开了两个函数,分别是Lock和Unlock,在使用互斥锁的时候非常简单,本文并不阐述使用。
小王子
2021-07-13 16:53:17
270
0
0
Go 语言的优点,缺点和令人厌恶的设计
这是关于 「Go是一门设计糟糕的编程语言 (Go is not good)」 系列的另一篇文章。Go 确实有一些很棒的特性,所以我在这篇文章中展示了它的优点。但是总体而言,当超过 API 或者网络服务器(这也是它的设计所在)的范畴,用 Go 处理商业领域的逻辑时,我感觉它用起来麻烦而且痛苦。就算在网络编程方面,Go 的设计和实现也存在诸多问题,这使它看上去简单实际则暗藏危险。
麦洛
2021-07-13 16:46:50
325
0
0
Golang 新手可能会踩的 50 个坑
Go 是一门简单有趣的编程语言,与其他语言一样,在使用时不免会遇到很多坑,不过它们大多不是 Go 本身的设计缺陷。如果你刚从其他语言转到 Go,那这篇文章里的坑多半会踩到。
麦洛
2021-07-13 16:39:47
269
0
0
goroutine的生老病死
通过goroutine的创建,消亡,阻塞和恢复等过程,来观察Go语言的调度策略,这里就称之为生老病死吧。整个Go语言的调度系统是比较复杂的,为了避免结构体M和结构体P引入的其它干扰,这里主要将注意力集中到结构体G中,以goroutine为主线。
小王子
2021-07-13 16:32:09
261
0
0
由浅入深聊聊Golang的sync.Pool
Golang在 1.3 版本的时候,在sync包中加入一个新特性:Pool。 简单的说:就是一个临时对象池。
麦洛
2021-07-13 16:27:35
272
0
0
如何优雅的关闭Go Channel
也就是说应该只在[唯一的或者最后唯一剩下]的生产者协程中关闭channel,来通知消费者已经没有值可以继续读了。只要坚持这个原则,就可以确保向一个已经关闭的channel发送数据的情况不可能发生。
小王子
2021-07-13 15:25:43
257
0
0
Go - 反射中函数和方法的调用
既然函数可以像普通的类型变量一样可以的话,那么在反射机制中就和不同的变量是一样的,在反射中 函数 和 方法 的类型(Type)都是 reflect.Func,如果要调用函数的话,可以通过 Value 的 Call() 方法,例如:
小王子
2021-07-13 14:21:41
260
0
0
Go 语言反射学习与实践--reflect包
反射包中的所有方法基本都是围绕着Type和Value这两个类型设计的。我们通过reflect.TypeOf、reflect.ValueOf可以将一个普通的变量转换成『反射』包中提供的Type和Value,随后就可以使用反射包中的方法对它们进行复杂的操作。
麦洛
2021-07-13 14:14:32
277
0
0
深入解析 Go 中 Slice 底层实现
切片是 Go 中的一种基本的数据结构,使用这种结构可以用来管理数据集合。切片的设计想法是由动态数组概念而来,为了开发者可以更加方便的使一个数据结构可以自动增加和减少。但是切片本身并不是动态数据或者数组指针。切片常见的操作有 reslice、append、copy。与此同时,切片还具有可索引,可迭代的优秀特性。
麦洛
2021-07-13 11:52:16
293
0
0
Golang Context 原理与实战
本文让我们一起来学习 golang Context 的使用和标准库中的Context的实现。golang context 包 一开始只是 Google 内部使用的一个 Golang 包,在 Golang 1.7的版本中正式被引入标准库。下面开始学习。
麦洛
2021-07-12 20:47:12
287
0
0
深度解密Go语言之context
Go 语言的 context 包短小精悍,非常适合新手学习。不论是它的源码还是实际使用,都值得投入时间去学习。
麦洛
2021-07-12 20:40:59
299
0
0
努力加载中...
问我社区
人工智能,区块链,大数据,软硬件开发,运维测试,技术学习与咨询,就来问我
关注公众号 获取最新动态