Go语言中文网 为您找到相关结果 32

Golang文件名命名规则

1、平台区分 文件名_平台。 例: file_windows.go, file_unix.go 可选为:windows, unix, posix, plan9, darwin, bsd, linux, freebsd, nacl, netbsd, openbsd, solaris, dragonfly, bsd, notbsd, android,stubs 2、测试单元 文件名_test.go或者 文件名_平台_test.go。 例: path_test.go, path_windows_test.go 3、版本区分(猜测) 文件名_版本号等。 例:trap_windows_1.4.go 4、CPU类型区分, 汇编用的多 文件名_(平台:可选)_CPU类型. 例:vdso_linux_amd...阅读全文

博文 2016-09-22 07:00:01 zyjying520

Markdown相关资料收集

Markdown 的目标是实现「易读易写」。 1、[Markdown 语法说明(简体中文版)](http://wowubuntu.com/markdown/) 2、[如何转换Markdown到html/doc/pdf/ppt格式](https://github.com/limingth/share/blob/master/markdown-demo/demo.md) 3、[Markdown写作进阶:Pandoc入门浅谈](http://www.yangzhiping.com/tech/pandoc.html) 4、[Markdown在线编辑工具](http://mahua.jser.me/):支持Vim模式 ...阅读全文

Go 1.4 Beta 1 发布

Go 1.4 Beta 1 发布,此版本是 Go 1.4 的 beta 版本,现已提供下载,反馈bug请前往这里。 此版本仅包括一个小的编程语言修改;对编译器做了重大修改,向后兼容 for-range loop 形式。此版本关键点在实现功能,改进垃圾收集器和为下个版本完整的收集器打好基础。 此版本还添加了新的工具,支持使用 go 命令生成构建时源代码。此版本支持 Android 和 Native Client(NaCl)的 ARM 处理器和 Plan 9 的 AMD64。 Go 1.4 最终版本计划在 2014 年 12 月 1 日发布,更多更新内容请看发行说明...阅读全文

博文 2014-11-01 01:00:01 mengyidan1988

Go语言实时GC - 三色标记算法

本文转载地址:https://juejin.im/post/5c62d45ee51d457fa44f4404 Go语言能够支持实时的,高并发的消息系统,在高达百万级别的消息系统中能够将延迟降低到100ms以下,很大一部分需要归功于Go高效的垃圾回收系统。 1.0. go的GC回收机制 对于实时系统而言,垃圾回收系统可能是一个极大的隐患,因为在垃圾回收的时候需要将整个应用程序暂停。所以在我们设计消息总线系统的时候,需要小心地选择我们的语言。Go一直在强调它的低延迟,但是它真的做到了吗?如果是的,它是怎么做到的呢? 在这篇文章当中,我们将会看到Go语言的GC是如何实现的(tricolor algorithm,三色算法),以及为什么这种方法能够达到如此之低的GC暂停,以及最重要的是,它是否真的有效...阅读全文

博文 2019-07-22 20:32:43 云霄YunX

Go 1.6将进一步改进垃圾收集器

尽管Go 1.5刚刚发布,仍然相对较新,但是Go团队已经在致力于改进其新的低延迟并发垃圾收集器,希望Go更适合新的应用领域。Google工程师Austin Clements和Rick Hudson如是说。 Go 1.5用新的垃圾收集器代替了原来的STW(stop-the-world) GC,解决了延迟问题。当负载较重时,每50ms,新的GC的活动时间可以控制在10ms以下,从而使Go程序在一般情况下能运行得更快些。在更极端的情况下,停顿可以从300ms降到4ms。 Go 1.6的目标是进一步稳定GC,并在以下几个方面做出改进: 状态协调(State coordination):Go 1.5 GC有个主要瓶颈是从Go 1.4继承来的,源自其集中式的GC协调器(coordinator),这是一个...阅读全文

博文 2015-09-13 14:40:00 臧秀涛

整理了一些免费区块链、以太坊技术开发相关的文件,需要的拿去。

收集整理了一些免费区块链、以太坊技术开发相关的文件,有需要的可以下载,文件链接: 1. web3.js API官方文档中文版:https://pan.baidu.com/s/1hOV9hEzi7hFxJCL4LTvC6g 2. 以太坊官方文档中文版 :https://pan.baidu.com/s/1ktODJKLMBmkOsi8MPrpIJA 3. 以太坊白皮书中文版 :https://pan.baidu.com/s/1bzAFnzJ35hlQxJ2J4Oj-Ow 4. Solidity的官方文档中文版 :https://pan.baidu.com/s/18yp9XjEqAHpiFm2ZSCygHw 5. Truffle的官方文档中文版 :https:/...阅读全文

Go 1.4+垃圾收集器计划与路线图

自从Go语言于2009年11月对外宣布以来,短短几年时间,这门语言发展迅猛,性能也在不断提升,而垃圾收集器的改进正是其中的重要一环。 在[Go 1.1](http://golang.org/doc/go1.1)中,Go语言引入了并行垃圾收集器,可以减少程序在多CPU上运行时的延迟;同时垃圾收集也更为精确了,以牺牲较少的CPU时间为代价,换来了堆内存的显著减少。到了今年6月份发布的[Go 1.3](http://golang.org/doc/go1.3)中,精确性有所改进,又实现了检查栈上的值时的精确性。 那后续版本中,垃圾收集器会有怎样的变化呢?Richard L. Hudson近日撰文介绍了[Go 1.4+垃圾收集器的计划和路线图](http://golang.org/s/go...阅读全文

使用 golang 收集系统指标

common.go // copy code from github.com/shirou/gopsutil package sys import ( "bufio" "os" "strings" ) // ReadLines reads contents from file and splits them by new line. // A convenience wrapper to ReadLinesOffsetN(filename, 0, -1). func readLines(filename string) ([]string, error) { return readLinesOffsetN(filename, 0, -1) } // ReadLines reads conte...阅读全文

博文 2015-05-21 08:00:00 智深

【译】 Golang 中的垃圾回收(一)

介绍 垃圾回收器负责追踪堆内存的分配,释放掉不需要的空间,追踪那些还在使用的分配空间。不同编程语言对这个机制的实现都很复杂,但是开发人员开发软件时候并不需要了解垃圾回收太细节的东西就能进行构建。另外,不同发布版本编程语言的VM和runtime也总是在改变和进化。对于应用开发人员来说,重要的是保持一个良好的work模型,了解编程语言里垃圾回收器的行为并且它们是怎么样支持这种行为的。 对于go 1.12版本来说,go语言使用了非分代,并发的三色标记和清扫的回收器。如果想了解如何进行标记和清扫的工作,请参考这篇文章。golang的垃圾回收器的实现每个版本都在更新和进化。因此一旦下个版本发布,讲任何细节的实现都不再准确。 总而言之,这篇文章不会去讲实际的实现细节。我会为你分享回收器的一些行为并且去解...阅读全文

博文 2019-07-12 14:34:58 lucifer_L

go定时器收集,执行一次后每天24点执行程序

go定时器收集,执行一次后每天24点执行程序 func startTimer(f func()) { go func() { for { f() now := time.Now() // 计算下一个零点 next := now.Add(time.Hour * 24) next = time.Date(next.Year(), next.Month(), next.Day(), 0, 0, 0, 0, next.Location()) t := time.NewTimer(next.Sub(now)) <-t.C } }() ...阅读全文

博文 2016-09-13 05:00:01 u013870094

Golang 文件名命名规则

1、平台区分 文件名_平台。 例: file_windows.go, file_unix.go 可选为:windows, unix, posix, plan9, darwin, bsd, linux, freebsd, nacl, netbsd, openbsd, solaris, dragonfly, bsd, notbsd, android,stubs 2、测试单元 文件名_test.go或者 文件名_平台_test.go。 例: path_test.go, path_windows_test.go 3、CPU类型区分, 汇编用的多 文件名_(平台:可选)_CPU类型. 例:vdso_linux_amd64.go 可选:amd64, none, 386, arm, arm64, mips...阅读全文

博文 2017-11-17 23:03:30 不在乎y

Go 1.5 实现自举、引入并发垃圾收集器

在经历了几个Beta版本和一个rc版本之后,Go 1.5终于正式发布了。这是一个很重要的版本,实现方面有很多变化。因为这个版本仍然遵循Go 1兼容性承诺,开发团队预计,所有的Go程序应该都可以和以前一样编译和运行。二进制和源码包已提供下载。 在实现方面,最大的变化有以下几点: 编译器和运行时是完全用Go语言编写的(还有少量汇编),实现了自举。实现中不再涉及C语言,所以构建时也就不需要C编译器了。 并发的垃圾收集器,可能的情况下,垃圾收集可以和其他goroutine并发进行,可以极大降低响应时间。 默认情况下,Go程序运行时的GOMAXPROCS会被设置为可用的核数,之前默认为1。 对internal packages的支持扩展到所有repositories,不再是仅供核心包...阅读全文

GTK+3 的 Go 绑定 gotk3

gotk3 提供 Go 绑定 GTK+3 和依赖的其他项目。每个组件都给出了用来导入包路径的子目录。以下是部分已经实施的支持库: * GTK+3 (3.6 and later) * GDK 3 (3.6 and later) * GLib 2 (2.36 and later) * Cairo (1.10 and later) 已经采取谨慎的内存管理与Go的垃圾收集器无缝工作,而无需使用或理解图形对象的浮动参考。 简单示例:

package main
import (
    "github.com/conformal/gotk3/gtk"
    ...阅读全文

Awesome Go

Awesome Go 收集了 Go 语言的流行库,框架和软件。 * [Awesome Go](https://github.com/avelino/awesome-go#awesome-go) * [Middlewares](https://github.com/avelino/awesome-go#middlewares) * [Actual middlewares](https://github.com/avelino/awesome-go#actual-middlewares) * [Libraries for creating HTTP middlewares](https://github.com/avelino/awesome-go#libraries-for-creat...阅读全文

开源项目 2015-12-22 16:00:00 avelino

区块链开发、以太坊开发的技术资料资源汇总

一个适合区块链新手的以太坊DApp开发教程: [http://xc.hubwiz.com/course/5a952991adb3847553d205d1](http://xc.hubwiz.com/course/5a952991adb3847553d205d1?affid=20180424golang) 一个用区块链、星际文件系统(IPFS)、Node.js和MongoDB来构建电商平台: [http://xc.hubwiz.com/course/5abbb7acc02e6b6a59171dd6](http://xc.hubwiz.com/course/5abbb7acc02e6b6a59171dd6/?affid=20180424golang) 收集整理了一些免费区...阅读全文

Go GC

大家好,我是 Okada([@ocadaruma](https://twitter.com/ocadaruma)),LINE 广告平台团队的成员。我对 Go 的 GC (垃圾收集器)有点感兴趣,甚至还促使我专门写一篇关于它的博客。Go 是一门由 Google 开发,并且支持垃圾收集的编程语言。Go 通过[管道](https://tour.golang.org/concurrency/2) 支持并发。很多的公司,包括 Google,都在使用 Go,LINE 也用 Go 来开发工具和服务。 ## Go GC 用 Go,你可以很容易地创建出低延时的应用。Go GC 似乎比其他语言的运行时要简单得多。对于 [Go 1.10](https://golang.org/doc/go1.10) 版本,它的垃...阅读全文

博文 2018-11-07 10:28:34 gogeof

Go GC: Prioritizing low latency and simplicity

https://blog.golang.org/go15gc 在开始之前,先来看一个关于Go的垃圾回收在知乎的讨论 http://www.zhihu.com/question/21615032 The Setup Go 正在构建一个面向未来的现代垃圾收集器(garbage collector, GC):一个不仅能够适应当下软件开发规模,还能支持下个十年的软件和硬件能力的长久GC。目前的全停式(stop-the-world)GC已经阻碍了go等安全性语言更加广泛的运用,在将来,或许已经没有全停式GC的立足之地。 Go 1.5作为对未来的惊鸿一瞥,达成了我们一年前设置的10毫秒GC延迟的目标。我们在a talk at Gophercon展示了一些令人振奋的数据。其中的延迟改进尤其收到了广泛关注;...阅读全文

博文 2015-10-13 18:00:00 xiaohu50

go-colly 官方文档翻译

简介(Introduction) 如何安装? 如何安装 Colly 只依赖于Go 语言,你可以通过 安装指南 安装它 安装Colly,在终端输入如下命令然后回车安装Colly go get -u github.com/gocolly/colly/... 入门 入门 开始使用Colly之前确保你已经安装最新版本,更详细内容见安装指南 让我们从一些简单的例子开始 首先你需要导入Colly到你的代码中 import "github.com/gocolly/colly" 收集器 Colly 的主要实例是收集器对象,当Colly 收集器任务运行时,收集器负责网络通讯和执行附加的回调任务。你必须初始化收集器 c := colly.NewCollector() 回调 你可以把不同类型的回调函数附加到收集器...阅读全文

博文 2018-11-19 02:34:39 未来有你

Go 实现的分布式内存缓存vegamcache

vegamcache是一个分布式内存缓存,使用golang的八卦协议构建。 在vegamcache中,网络调用不用于为每个Get获取数据。相反,数据将在背景中使用八卦在整个节点上进行复制。 只能在golang中使用 需要消耗大量的内存 分片缓存,而不是将其存储在单个哈希映射中 增加到期时间 小型垃圾收集器来删除过期的值 与其他缓存服务进行基准比...阅读全文

Go 1.4+垃圾收集器计划与路线图

自从Go语言于2009年11月对外宣布以来,短短几年时间,这门语言发展迅猛,性能也在不断提升,而垃圾收集器的改进正是其中的重要一环。 在Go 1.1中,Go语言引入了并行垃圾收集器,可以减少程序在多CPU上运行时的延迟;同时垃圾收集也更为精确了,以牺牲较少的CPU时间为代价,换来了堆内存的显著减少。到了今年6月份发布的Go 1.3中,精确性有所改进,又实现了检查栈上的值时的精确性。 那后续版本中,垃圾收集器会有怎样的变化呢?Richard L. Hudson近日撰文介绍了Go 1.4+垃圾收集器的计划和路线图。 文中指出,计划于2015年6月发布的Go 1.5的GC的目标是减少延迟,从而使Go语言能够满足对响应时间要求比较高的系统。该版本希望将GC延迟限制在10ms以内,而且每50ms保证G...阅读全文

博文 2014-10-29 00:00:00 codemanship

Golang 文件名命名规则

1、平台区分 文件名_平台。 例: file_windows.go, file_unix.go 可选为:windows, unix, posix, plan9, darwin, bsd, linux, freebsd, nacl, netbsd, openbsd, solaris, dragonfly, bsd, notbsd, android,stubs 2、测试单元 文件名test.go或者 文件名平台_test.go。 例: path_test.go, path_windows_test.go 3、版本区分(猜测) 文件名_版本号等。 例:trap_windows_1.4.go 4、CPU类型区分, 汇编用的多 文件名_(平台:可选)_CPU类型. 例:vdso_linux_amd64...阅读全文

博文 2016-10-07 19:00:02 zyjying520

Go 1.4 Beta 1发布,12月发布正式版本

Go语言是由Google开发的一个开源项目,目的之一是为了提高开发人员的编程效率。 近日,在Go 1.3.3发布一个月之后,Go官方宣布Go 1.4 Beta 1版本发布。 此版本在支持向后兼容的前提下重点多编译器和运行时进行了改进,并实现了不同架构处理器的支持等。值得关注的改进内容如下: 1、运行时 对运行时做了重大的改进,如垃圾收集器、并发处理、接口管理、maps方法、slices方法、字符串等使用Go语言进行了重写(原来大部分使用C语言编写),使得垃圾收集器可以扫描运行时的程序栈,以获得变量的精确信息,从而提高了垃圾收集器的精确性。垃圾收集器的精确性得到了提高,将不会存在非活跃引用对象而不被垃圾回收的情况了,从而减少了堆的大小(相对上一版本减少了10%-30%)。程序栈不再进行分割,剔...阅读全文

博文 2014-11-24 21:00:01 codemanship

公众号学习资源汇总

很高兴你能关注我。我从大学开始接触计算机编程,到现在学习编程有十年多时间,学习过的编程语言包括:C、C++、C#、shell script、Python、Golang,生命不息学习不止,未来还会继续深化自己的技术栈。 我乐于分享,期待我专业技术成长经历能给你一点微小的帮助,我们一起在技术的道路上走更远。 学习过程中收集整理了大量编程学习资料,包括计算机基础、Linux使用和学习、软件设计方法、Unix环境高级编程、网络编程、数据库和存储,C、C++、Python编程学习电子书等等,积累了多达3G的编程学习资源。 资源汇总.jpg 以上所有资源我整理在微信公众号【柠檬的编程学堂】搜索公众号名称或扫描下方二维码关注即可领取。 微信公众号二维码 下面是部分资源截图: jp...阅读全文

博文 2020-02-23 18:32:52 柠檬橙1024

为什么 Go 关心 unsafe.Pointer 和 uintptr 之间的差别

Go 有两样东西或多或少是无类型指针的表示:uintptr 和 unsafe.Pointer (和外表相反,它们是内置类型)。 从表面上看这有点奇怪,因为 unsafe.Pointer 和 uintptr 可以彼此来回转换。为什么不只有一种指针表现形式?两者之间有什么区别? 表面的区别是可以对 uintptr 进行算数运算但不能对 unsafe.Pointer(或任何其他 Go 指针)进行运算。unsafe 包的文档指出了重要的区别: > uintptr 是整数,不是引用。将 Pointer 转换为 uintptr 会创建一个没有指针语义的整数值。即使 uintptr 持有某个对象的地址,如果对象移动,垃圾收集器并不会更新 uintptr 的值,uintptr 也无法阻止该对象被回收。 尽管...阅读全文

博文 2020-01-08 23:12:31 dust347

现代垃圾收集策略 —— Go 的 GC 策略

![ ](https://raw.githubusercontent.com/studygolang/gctt-images2/master/modern-garbage-collection/gc.jpeg) 在 [Hacker News](https://news.ycombinator.com/item?id=13218550) 和 [Reddit](https://www.reddit.com/r/golang/comments/5j7phw/modern_garbage_collection/) 你可以找到相关讨论 我最近看过很多文章,它们以令我困扰的方式推广 Go 语言最新的垃圾收集器。其中一些文章来自 Go 官方项目本身。他们声称这意味着 GC 技术已经有根本性的突破。 [这是...阅读全文

博文 2019-09-09 22:34:49 TomatoAres

一个专家眼中的Go与Java垃圾回收算法大对比

导读:GC 是大部分现代语言内置的特性,本文作者针对 Go 语言声称的 10ms 以下的 GC 停顿进行了深入分析,还同 Java 的垃圾收集器做了对比。Go GC 是否已经足够成熟,请看高可用架构志愿者翻译的文章。我最近看过一堆宣传 Go 语言的最新垃圾收集器的文章。 其中一些文章来自 Go 项目本身。 他们声称 GC 技术发生了根本性的突破。以下是 2015 年 8 月新垃圾收集器的公告:Go 正在构建一个垃圾收集器(GC),不仅是为了了 2015 年,同时也为 2025 以及更远的未来…… stw 停顿不再是使用 Go 语言的障碍。在将来,应用程序随着硬件轻松地扩展,并且跟随硬件一起变得更加强大,GC 不会成为软件可扩展性的绊脚石。Go 团队不仅声称已经解决了 GC 暂停的问题,而且整...阅读全文

博文 2018-08-15 09:38:58 高可用架构

JVM—【02】认识JVM的垃圾回收算法与收集器

1. 对象存活判断 1.1. 引用计数算法 Reference Counting 给对象添加一个引用计数器,每当有一个地方引用它的时候,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为0的对象就是不可能再被使用的。 主流的JVM没有选用引用计数算法来管理内存,主要的原因是它很难解决对象之间的相互循环引用的问题。 1.2. 可达性分析算法 Reachability Analysis 通过一系列称为“GC-Roots”的对象作为起点,从这些结点开始向下搜索,搜索所走过的路径称为引用链(Reference Chain),当一个对象到GC Roots没有任何引用链相连时,则证明此对象是不可用的(图论中的不可达)。 可作为GC Roots的对象: 虚拟机栈(战争中的本地变量表)中引用的对...阅读全文

博文 2020-01-11 21:32:47 苡仁ilss

实战生产环境:1.13.3最新版k8s集群部署Heapster插件

本篇文章,所使用的任何镜像和yaml我都会发一个网盘链接,供大家下载学习!github:https://github.com/heyangguang有任何问题可以直接联系我的Email:heyangev@cn.ibm.com Heapster是一个收集者,将每个Node上的cAdvisor的数据进行汇总,然后导到第三方工具(如InfluxDB)。 Heapster介绍 架构图: Heapster首先从K8S Master获取集群中所有Node的信息,然后通过这些Node上的kubelet获取有用数据,而kubelet本身的数据则是从cAdvisor得到。所有获取到的数据都被推到Heapster配置的后端存储中,并还支持数据的可视化。现在后端存储 + 可视化的方法,如InfluxDB + gr...阅读全文

博文 2019-03-06 13:34:40 何阳光