Go 程序的性能调试问题 - 内存篇

标签(空格分隔): Go Memory Profiler 性能调试 性能分析 注:该文作者是 Dmitry Vyukov,原文地址 Debugging performance issues in Go programs 这个是原文中的 Memory Profiler 段落 内存分析器显示了函数分配堆内存的情况。你可以以 CPU profile 相似的方式收集:使用 go test --memprofile,通过 http://myserver:6060:/debug/pprof/heap 使用 ...阅读全文

Segmentfault 2014年09月15日 yexiaobai

golang实现快速排序

快速排序的原理就不介绍了。在网上看到一个有趣的视频,大家可以看看,非常详细且有趣。 快速排序视频 代码:https://play.golang.org/p/Fw5gtzrPj0 package main import ( "fmt" ) func main() { var sortArray = []int{3, 41, 24, 76, 11, 45, 3, 3, 64, 21, 69, 19, 36} fmt.Println(sortArray) qsort(sortArray, 0, len...阅读全文

Segmentfault 2014年09月12日 MrRightLeft_秦磊

介绍 GDB 调试 Go

注:本文作者是 YANN,原文是 Introduction to Go Debugging with GDB 在过去的 4 年中,我花了我绝大部分的时间用来写,读以及调试 Python 或 JavaScript 代码。在学习 Go 的过程中,像穿着一双有小石子的鞋子在美丽的山中远行。很多事情给我留下了深刻的印象,但是使用 println 调试我的代码在过去走的太远了。在 Python 中,当代码在运行的时候,我们使用 pdb/ipdb 调试它,JavaScript 提供了类似的工具。在这些年中,...阅读全文

Segmentfault 2014年09月11日 yexiaobai

Go:git gofmt pre-commit hook

我们使用 git 做 Go 源码的版本控制,在提交前,我们需要对代码自动格式,并且当未格式的时候,输出一些信息,下面是一个这样的脚本: 注:该脚本来源于:http://golang.org/misc/git/pre-commit 关于介绍清理 Go 代码的小文章:An Introduction to Go Tools and Clean Code #!/bin/sh # Copyright 2012 The Go Authors. All rights reserved. # Use of th...阅读全文

Segmentfault 2014年09月11日 yexiaobai

Go语言并发与并行学习笔记(一)

如果不是我对真正并行的线程的追求,就不会认识到Go有多么的迷人。 Go语言从语言层面上就支持了并发,这与其他语言大不一样,不像以前我们要用Thread库 来新建线程,还要用线程安全的队列库来共享数据。 以下是我入门的学习笔记。 首先,并行!=并发, 两者是不同的,可以参考:http://concur.rspace.googlecode.com/hg/talk/concur.html Go语言的goroutines、信道和死锁 goroutine Go语言中有个概念叫做goroutine, 这类似...阅读全文

CSDN博客 2014-01-14 16:09 kjfcpua

为什么 Go 语言把类型放在后面?

本文整理自知乎,原文作者 @林建入。 不是为了与众不同。而是为了更加清晰易懂。 Rob Pike 曾经在 Go 官方博客解释过这个问题(原文地址:http://blog.golang.org/gos-declaration-syntax),简略翻译如下(水平有限翻译的不对的地方见谅): 引言 Go语言新人常常会很疑惑为什么这门语言的声明语法(declaration syntax)会和传统的C家族语言不同。在这篇博文里,我们会进行一个比较,并做出解答。 C 的语法 首先,先看看 C 的语法。C 采...阅读全文

Segmentfault 2014年09月08日 justjavac

iota: Golang 中优雅的常量

注:该文作者是 Katrina Owen,原文地址是 iota: Elegant Constants in Golang 有些概念有名字,并且有时候我们关注这些名字,甚至(特别)是在我们代码中。 const ( CCVisa = "Visa" CCMasterCard = "MasterCard" CCAmericanExpress = "American Express" ) 在其他时候,我们仅仅关注能把一个东西与其他的做区分。有些时候,有些时候一件事没有本质上的意义。比如,我们在一个数据库表...阅读全文

Segmentfault 2014年09月02日 yexiaobai

Go for gophers

注:该文是作者 Andrew Gerrand 在 GopherCon closing keynote 25 April 2014 上的演讲,原文地址为 Go for gophers 注:这个是视频集合 Watch the talk on YouTube,赞伟大的长城,需要翻墙INGINGING. Interfaces Interfaces: 第一印象 我曾经对 classes 和 types 感兴趣。 Go 反对这些: 没有继承 没有子类型多态 没有泛型 它反而强调 interfaces。 In...阅读全文

Segmentfault 2014年09月01日 yexiaobai

Go 代码审查建议

注:该文的原文来自于 go-wiki 为 Go Code Review Comments Go 代码审查建议 该页收集了 Go 代码审查时候的常见意见,以至于一个详细说明能被快速参考。这是一个常见的错误清单,而不是一个风格指南。 你可以看 effective go 作为补充。 请在编辑这个页面前先讨论这个变更,就算是一个很小的变更,许多人都有自己的想法,这里不是战场。 gofmt 运行 gofmt 来自动化的解决你代码的主要的机械的风格问题,几乎所有的不正规的 go 代码都使用 gofmt。该文...阅读全文

Segmentfault 2014年08月31日 yexiaobai

GO 开发者对 GO 初学者的建议

注:原文地址为 Advise from Go developers to Go programming newbies 以促进 India 的 go 编程作为 GopherConIndia 承诺的一部分。我们采访了 40 位 Gophers(一个 Gopher 代表一个 GO 项目或是任何地方的 GO 程序员),得到了他们关于 GO 的意见。从 2014 年的八月到十一月,我们将每个星期发表两篇采访稿。 如果你正好刚刚开始 go 编程,他们对于我们一些问题的答案可能会对你有非常有用。看看这些。 ...阅读全文

Segmentfault 2014年08月31日 yexiaobai

Golang中JSON的使用

GO Json author: qcliudate: 2015/07/21 Abstrct 介绍go语言中json的使用 json json是一种传输格式,类似与XML,与XML相比可读性略差,但是传输效率高。 GO Json go语言中提供了json的encoder,可以将数据结构转换为json格式。在使用之前,需要导入包 import "encoding/json" Encode 使用 func NewEncoder(w io.Writer) *Encoder 创建一个json的encode...阅读全文

Segmentfault 2015年07月30日发布 qc1iu

go 如何使用 SIMD 指令

Java SIMD Lucene Elasticsearch 我们首先来看一下 JAVA 如何使用 CPU 的 SIMD 指令。这是一个ru的哥们尝试在lucene里使用SIMD指令加速lucene的postings list(也就是指定term对应的文档id列表)的解码: http://blog.griddynamics.com/2015/02/proposing-simd-codec-for-lucene.h...https://www.youtube.com/watch?v=2HQdbpg...阅读全文

Segmentfault 2015年07月12日发布 taowen

一个go的迷你网络库

go语言完善的基础设施为编写网络程序提供了极大的便利.只需要少量代码就可以编写一个高性能,稳定的异步网络程序. 本文介绍一个迷你的,基于事件回调的异步网络库. 首先简单介绍一下并发模型. go提供了基于goroutine的同步网络接口,所以对每个网络连接可以创建一个单独的goroutine用于接收网络数据.这个goroutine是执行一个死循环,不断的recv数据,解包然后将完整的逻辑包发送到一个每连接唯一的chan中,供逻辑消费. 除了网络接收goroutine之外,每个连接还有一个专门的处理...阅读全文

Segmentfault 2015年07月12日发布 sniperHW

go语言的一些吐槽

struct的方法,如果receiver非指针,则调用这个方法无法改变对象状态,因为传递给方法的对象是原对象的一个拷贝,所有的改变都被作用在这个拷贝上而非原对象上. type st struct{ val uint32 } func (this st) Show(){ fmt.Printf("Show:%d\n",this.val) } func (this st) Increase(){ this.val += 1 fmt.Printf("Increase:%d\n",this.val) } ...阅读全文

Segmentfault 2015年07月12日发布 sniperHW

beego自动化文档

beego是什么? beego是一个快速开发go应用的http框架,go 语言技术大牛ASTA谢的开源项目。beego可以用来快速开发API、Web以及后端服务等各种应用,是一个RESTFul的框架,主要设计灵感来源于tornado、sinatra、flask这三个框架,结合了Go本身的一些特性(interface、struct继承等)而设计的。beego结合swagger就能实现自动化的文档。 Swagger是什么? Swagger 是一个规范和一套完整的框架,用于生成、描述、调用以及可视化 ...阅读全文

Segmentfault 2015年07月02日 姜家志

响应式网页设计(RWD)__Go:2015 及未来的技术

本文中,我们将一同看看当今 Web 开发的发展趋势,给大家分享我对 2015 年及未来的一些看法、观察和预测。我从 2000 年就开始做 Web 技术方面的工作,而近几年主要是做云架构解决方案。作为一名 Web 开发者,我曾在 .Net、Node.js 和 Go 技术栈上开发 Web 应用和 Web 服务。最近,我将 Web 技术和开发趋势作为整体研究了一遍,在这里分享一下我的想法和观察结果。 首先,让我分享一些我所观察到的可用性和体系结构目前的趋势。 可用性的趋势 如今,用户体验变得比以往更重...阅读全文

ITEYE博客 10 小时前 oywl2008

golang反射与反射三法则

反射是在golang程序运行时检查变量所具有类型的一种机制。由于反射可以得出关于变量结构的数据(即“关于数据的数据”),所以这也被认为是golang元编程的基础。初学反射,会感觉有些“玄乎”。我这里由浅入深,尝试阐述反射内涵,并解读反射三法则(http://blog.golang.org/laws-of-reflection)。0 从类型和方法理解反射内涵 在基本的层面上,反射只是一个检查存储在接口变量中的类型和值的算法。使用反射机制,首先需要导入reflect包,reflect包中有两个重要类...阅读全文

51CTO博客 2015-10-29 12:52:14 说话的白菜

GO语言的简介及Ubuntu下的安装和编译

简介 GO语言是Google基于BSD发布的开源系统级编程语言,目标是融合Python的开发效率和C的运行时效率于一体。该项目的网址是http://golang.org。目前只支持Linux,freebsd和Mac OS X平台的amd64和386架构。 安装 有一个快速的编译器安装说明,见http://golang.org/doc/install.html。我在虚拟机中的Ubuntu9.10下安装过程如下: 1.设置环境变量 一共需要设置4个变量 export GOROOT=$HOME/go ...阅读全文

CSDN博客 2010-01-12 13:40 LunnyXiao

Go语言知识积累——特点简介与windows开发环境搭建

缘起看到一篇文章,讲述如何将服务器从30台降到2,性能甚至更加优秀。文章中介绍了完成这一出色任务的语言为Go,于是对Go语言产生了兴趣,逐步了解到这还是一门比较新的语言,且潜力很足。所以展开了研究之旅~ 特点简介: 1.引入轻量级线程——协程(coroutine),Go语言中叫goroutine。 2.采用Erlang风格的并发模型,即消息是进程间唯一的通信方式(而非共享内存)。两个goroutine之间通信通过channel(通道)进行。 3.对代码风格进行了强制统一,比如public变量必须...阅读全文

CSDN博客 2013-08-28 21:28 liangzhao_jay