-
golang gc机制学习
所属栏目:[大数据] 日期:2020-12-16 热度:174
以下针对go1.5 gc方法 参考官方文章:https://blog.golang.org/go15gc,go的gc看起来类似于宽度优先搜索算法。 1. 将heap看作是一个图,其内部存储的变量之间有指针相互联系。所有变量最初都被着色为白色 2. 遍历heap,选择root节点,将它们标记为灰色 3. 针[详细]
-
设计模式-建造者模式(Go语言描述)
所属栏目:[大数据] 日期:2020-12-16 热度:151
在上一篇博客设计模式-装饰者模式中我们介绍了如何在golang中实现装饰者模式,今天我们接着上篇博客继续设计模式系列文章,今天还是来看一个简单的设计模式- 建造者模式 。 介绍 相信做过android的同学对建造者模式还是比较熟悉的, 一定用过开源的图片加载[详细]
-
golang协程资源占有率
所属栏目:[大数据] 日期:2020-12-16 热度:116
GO版本:go version go1.4.2 linux/amd64 执行协程只需要极少的栈内存(大概是4~5KB),默认情况下,线程栈的大小为1MB。 Apache。 持续几秒的短期连接,比如快速事务,如果每秒处理1000个事务,只有约1000个并发连接到服务器。 事务延长到10秒,要维持每秒[详细]
-
Golang通过http.NewRequest实现模拟请求
所属栏目:[大数据] 日期:2020-12-16 热度:68
Golang通过http.NewRequest实现模拟请求,添加请求头和请求参数: func DownloadString(remoteUrl string,queryValues url.Values) (body []byte,err error){client := http.Client{};body = nil;uri,err := url.Parse(remoteUrl);if(err != nil){return ;}i[详细]
-
A Tour of Golang (二)
所属栏目:[大数据] 日期:2020-12-16 热度:158
是时候继续总结一波golang使用心得了!码的代码越多了解的go就越多,go处理问题的思路确实不一样 9. defer panic recover defer 接上次的问题继续讨论,先来看下golang blog上怎么说defer A defer statement pushes a function call onto a list . The list of[详细]
-
用Golang写一个搜索引擎(0x08)--- 索引的段
所属栏目:[大数据] 日期:2020-12-16 热度:144
我觉得这个标题应该改改了,我写下来其实是告诉大家怎么写一个搜索引擎,并没有涉及太多的Golang的东西,我觉得这样也挺好,熟悉了原理,用什么实现其实并不重要了,而且说说原理比说代码更实在。 之前已经说了底层的数据结构了,包括倒排和正排索引。今天我[详细]
-
Go高性能编程技巧
所属栏目:[大数据] 日期:2020-12-16 热度:135
1.在高并发队列任务分发的场景中RingBuffer比Channel的性能更好 2.defer功能不是静态编译时提供的,而是运行时提供的,所以使用defer会产生一些额外的性能开销(了解就好,该用还是得用) 3.encoding/json序列化是通过反射机制实现的,性能很差,可以使用ffj[详细]
-
在 Golang 中使用 Go 关键字和 Channel 实现并行
所属栏目:[大数据] 日期:2020-12-16 热度:63
Go 关键字和 channel 的用法 go 关键字用来创建 goroutine (协程),是实现并发的关键。go 关键字的用法如下: //go 关键字放在方法调用前新建一个 goroutine 并让他执行方法体go GetThingDone(param1,param2);//上例的变种,新建一个匿名方法并执行go func(p[详细]
-
beego下根据部署环境加载相应配置文件
所属栏目:[大数据] 日期:2020-12-16 热度:194
最近用beego开发的项目频繁的要部署到测试环境提测,然后部署到线上发布,由于两种环境下配置文件中某些配置参数不同,每次手动修改很是麻烦,故而想有没有办法能根据部署环境的不同加载相应环境的配置变量。 幸而得同事告知,两种环境下都会注入ENV_CLUSTER[详细]
-
Golang变量&常量&数据类型
所属栏目:[大数据] 日期:2020-12-16 热度:187
Golang变量和基本数据类型 Go定义变量 Go语言里面定义变量有多种方式。 使用var关键字是Go最基本的定义变量方式,与C语言不同的是Go把变量类型放在变量名后面: //定义一个名称为“variableName”,类型为"type"的变量varvariableNametype 定义多个变量 //定[详细]
-
Golang strings 包 用法详解
所属栏目:[大数据] 日期:2020-12-16 热度:142
package mainimport ( "fmt" "strings" // "unicode/utf8" )func main() { fmt .Println ( "查找子串是否在指定的字符串中" ) fmt .Println ( " Contains 函数的用法" ) fmt .Println (strings .Contains ( "seafood" , "foo" )) //true fmt .Println (strin[详细]
-
golang反射动态添加切片(数组)
所属栏目:[大数据] 日期:2020-12-16 热度:198
package mainfunc main(){var arr1 = []int{}a0 := reflect.ValueOf(arr1).Elem()e0 := make([]reflect.Value,0)e0 = append(e0,reflect.ValueOf(100))e0 = append(e0,reflect.ValueOf(200))e0 = append(e0,reflect.ValueOf(300))e0 = append(e0,reflect.Val[详细]
-
带交互的telnet小工具,golang版
所属栏目:[大数据] 日期:2020-12-16 热度:125
package netTools //main //import ("fmt""net""strconv""strings""time")func smain() {lis,err := net.Listen("tcp",":1789")if err != nil {fmt.Println(err)}defer lis.Close()for {con,_ := lis.Accept()go handler(con)}}func handler(con net.Conn) {[详细]
-
用Golang写一个搜索引擎(0x09)— 数据增,删,改
所属栏目:[大数据] 日期:2020-12-16 热度:200
根据某位和我同姓的朋友的建议,后面的文章都会加上副标题,方便查阅。 今天的文章会比较短,很快就能看完。 按照步骤,说完 段层 以后,应该就开始涉及到 索引层 了,但我想说的是一个分布式的搜索引擎,所以除了索引层以外,还有个分片层,这两个概念是紧[详细]
-
Go: Readonly Variable
所属栏目:[大数据] 日期:2020-12-16 热度:142
只读变量的缺失,应该算 Go 语言 “设计缺陷”。举例来说,默认以 error 实例来判断错误类别,但这些可导出全局变量实际可被外部修改,那么就存在隐性风险。 在实际开发中,有很多需设置访问权限的内存敏感数据,包括只读、只写,或不可操作等,好在可借助 s[详细]
-
golang在ubunt上安装
所属栏目:[大数据] 日期:2020-12-16 热度:108
sudoapt-getinstallpython-software-propertiessudoadd-apt-repositoryppa:gophers/gosudoapt-getupdatesudoapt-getinstallgolang-stablegit-coremercurial 引用自 :https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/01.1.md[详细]
-
golang模板语法简明教程
所属栏目:[大数据] 日期:2020-12-16 热度:109
转载地址:http://www.admpub.com/blog/post-221.html 12 9月 2014 【模板标签】 模板标签用"{{"和"}}"括起来 【注释】 {{/* a comment */}} 使用“{{/*”和“*/}}”来包含注释内容 【变量】 {{.}} 此标签输出当前对象的值 {{.Admpub}} 表示输出Struct对象中[详细]
-
Golang:从fmt.Scanf函数想到的
所属栏目:[大数据] 日期:2020-12-16 热度:86
工作中使用go有一段时间了,随着写的代码数量的增长,越来越被go的魅力所折服,同时也对相关的社区有了更多的关注。早上在go语言技术交流群里,有网友问了一个很有意思的问题,一段很简单的代码,但是却总得不到期望的结果。 还有什么样的东西更能引起程序猿[详细]
-
golang学习第一篇 golang简介
所属栏目:[大数据] 日期:2020-12-16 热度:175
golang简介 很久没写博客了,最近在学golang。为了总结学习经验,博客又派上用场了。 golang 是由谷歌的三位大牛发明并开源出来的,具体哪三位请大家自行搜索。 博主使用过这些计算机语言:C/C++、VB、C#、PHP、javascript、python、erlang。目前使用erlang[详细]
-
Golang 模块扩展
所属栏目:[大数据] 日期:2020-12-16 热度:69
errors Extension module of golang error processing log Extension module of golang logging rpc Golang rpc client based on http bytes Extension module of golang bytes processing iconv Golang bindings to libiconv - Convert string to requested[详细]
-
golang学习第二篇 开发环境的搭建
所属栏目:[大数据] 日期:2020-12-16 热度:114
开发环境的搭建 由于重点在学习,关于开发环境的搭建,简单介绍下,不做太详细的介绍。 一、linux下golang环境搭建 ubuntu、debian等系统通过 sudo apt-get install golang; fedora、dentos、redhat 等系统通过 sudo yum install golang 安装。至于编辑器的[详细]
-
Go学习笔记:关于golang.org/x包问题
所属栏目:[大数据] 日期:2020-12-16 热度:177
关于golang.org/x包问题 由于谷歌被墙,跟谷歌相关的模块无法通过go get来下载,解决方法: git clone https://github .com /golang/net .git $GOPATH/src/github .com /golang/netgit clone https://github .com /golang/sys .git $GOPATH/src/github .com[详细]
-
GoLang之再谈Gvim/Vim配置——使用Vundle安装vim-go
所属栏目:[大数据] 日期:2020-12-16 热度:167
摘要 :之前总结过在subl中使用GoLang,《GoLang及Sublime Text 2之Mac OS X 10.8.4开发环境安装》。其实GoLang的安装包中已经包含了支持Vim的编写插件,配置方法很简单,可参考《GoLang之Gvim/Vim配置》。本文再讨论下使用Vundle如何在Vim中配置GoLang开发[详细]
-
golang的select典型用法
所属栏目:[大数据] 日期:2020-12-16 热度:114
转载自:http://yanyiwu.com/work/2014/11/08/golang-select-typical-usage.html golang 的 select 的功能和 select,poll,epoll 相似, 就是监听 IO 操作,当 IO 操作发生时,触发相应的动作。 示例: ch1 := make (chan int,1) ch2 := make (chan int,1) …[详细]
-
用Golang写一个搜索引擎(0x0A)--- 数据检索,败者树,K路求交
所属栏目:[大数据] 日期:2020-12-16 热度:104
终于把序号写到了第十篇(其实已经是第13篇了),前面写了几个外篇,我看上篇机器学习的那篇看的人很多,后面会再找一两个点再写写,后面可能会算法部分和架构部分穿插着写了,想到哪里就写哪里了,今天我们继续我们的搜索引擎架构部分,主要来说说数据的检[详细]
