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

Go位运算:取反和异或

在Go规范,^ 这个运算符在一元运算符和二元运算符中都出现了。那么他们分别是啥? 在规范中说道:^ bitwise XOR integers 这是按位异或。比如: package main import "fmt" func main() { fmt.Println(5^2) } 到这执行:[http://play.golang.org/p/iZioqWSSdA](http://play.golang.org/p/iZioqWSSdA) 一般语言中,按位取反是:~ Go中是不是这样呢?可以写个程序试一下: package main import "fmt" func main() { ...阅读全文

go语言的chan

chan是一个FIFO队列,chan分成两种类型同步和异步同步的chan完成发送者和接受者之间手递手传递元素的过程,必须要求对方的存在才能完成一次发送或接受异步的chan发送和接受都是基于chan的缓存,但当缓存队列填满后,发送者就会进入发送队列, 当缓存队列为空时,接受者就会接入等待队列。 chan的数据结构: struct Hchan { uintgo qcount; // total data in the q uintgo dataqsiz; // size of the circular q uint16 elemsize; uint16 pad; // ensures proper alignment of the buffer that follows Hchan in mem...阅读全文

博文 2015-05-18 03:00:01 richmonkey

ubuntu下最新版golang安装教程

相信打算安装golang的同学们早已看了很多安装教程了,网上的主流方法有两种,一种是 sudo apt-get install golang-go 简单暴力,但是由于现在很多golang的库已经要求 >1.1 ,而 apt-get 安装的是 1.02 ,也建议大家安装最新版的golang,因此推荐手动安装,教程本身没有问题,但是由于某些特殊原因,可能导致安装失败甚至卡在莫名奇妙的地方。在卡了一个中午后,我还是写下这篇文章总结下要注意的地方。 以ubuntu wiki的 安装教程 为例: 安装gcc工具,因为golang有些功能是使用c写的,所以构建golang的编译是必须的 $ sudo apt-get insta...阅读全文

博文 2014-10-06 07:32:32 stonxer

Go语言/golang/位操作/取反/异或/左移/右移

Go语言位操作实例 package main import ( "fmt" ) // 获取0-n之间的所有偶数 func even(a int) (array []int) { for i := 0; i < a; i++ { if i&1 == 0 { // 位操作符&与C语言中使用方式一样 array = append(array, i) } } return array } // 互换两个变量的值 // 不需要使用第三个变量做中间变量 func swap(a, b int) (int, int) { a ^= b // 异或等于运算 b ^= a a ^= b return a, b } // 左移、右移运算 func shifting(a int) int { a = a << 1 ...阅读全文

博文 2014-10-04 19:27:13 viney

golang二进制bit位的常用操作

package main import ( "fmt" "github.com/imroc/biu" ) /** golang二进制bit位的常用操作,biu是一个转换二进制显示的库 mengdj@outlook.com */ func main() { var( /** 1个字节=8个二进制位,每种数据类型占用的字节数都不一样 注意位操作千万不要越界了,如某个类型占8个bit位,偏移时候不要超过这个范围 */ a uint8=30 ) //a输出结果:00011110 fmt.Println(biu.ToBinaryString(a)) /** 将某一位设置为1,例如设置第8位,从右向左数需要偏移7位,注意不要越界 1<<7=1000 0000 然后与a逻辑或|,偏移后的第8位为1,逻辑|...阅读全文

博文 2018-08-17 12:30:00 mengdejun

golang的位运算操作符的使用

& 位运算 AND | 位运算 OR ^ 位运算 XOR &^ 位清空 (AND NOT) << 左移 >> 右移 感觉位运算操作符虽然在平时用得并不多,但是在涉及到底层性能优化或者使用某些trick的时候还是比较有意思。 &(AND) |(OR) 就不提了最常用的东西 会编程就会。 &操作的话是当 两个数需要同时为1的时候才会保留。 例如 0000 0100 & 0000 1111 => 0000 0100 => 4 | 操作的话是当 两个数同时为1或者1个为1一个不为1的时候会保留。 例如 0000 0100 | 0000 1111 => 0000 1111 => 15 ^(XOR) 在go语言中XOR是作为二元运算符存在的: 但是如果是作为一元运算符出现,他的意思是按位取反,例如 pa...阅读全文

博文 2017-01-07 08:00:02 henrylee2cn

线上Golang程序 GC调优一例

13 Nov 2013 线上Golang程序 GC调优一例 Golang 是一个很有意思的语言,第一次看它介绍时,就很喜欢。半年前加入美团,有机会用它写了几个线上程序。其中一个程序Router,每天需要转发几千万的请求。由于需要根据请求内容决定route路径,它需要加载几十万deal(美团单)的信息到内存供查询。问题来了,用map装的几十万数据让gc很辛苦。 Deal数据 // Deal的定义 type DealTiny struct { Dealid int32 Classid int32 Mttypeid int32 Bizacctid int32 Isonline bool Geocnt int32 } gc停顿 用go写一个简单的Web程序,设置GOGCTRACE环境变量为1后启动程...阅读全文

博文 2014-11-03 14:42:37 沈锋

golang取两个数字之间的随机数

golang取两个数字之间的随机数 package main import ( "crypto/rand" "math/big" "fmt" ) func main(){ fmt.Println(RandInt64(100,3000)) } func RandInt64(min,max int64) int64{ maxBigInt:=big.NewInt(max) i,_:=rand.Int(rand.Reader,maxBigInt) if i.Int64()阅读全文

博文 2015-11-09 21:00:01 别人说我名字很长

golang 位运算

http://blog.opskumu.com/golang-bitwise.html 位操作是程序设计中对位模式按位或二进制数的一元和二元操作. 在许多古老的微处理器上, 位运算比加减运算略快, 通常位运算比乘除法运算要快很多. 在现代架构中, 情况并非如此:位运算的运算速度通常与加法运算相同(仍然快于乘法运算). 位操作符 一、简介 关于位运算的操作,维基百科关于 位操作符 的理论介绍已经非常清楚了。关于 Golang 的位运算其实和 C 语言比较类似,除了取反的操作和 C 语言有点区别,Golang 使用的是^x,而 C 使用的则是 ~x取反。 二、概念 << [ 左移 ] 1 << 2 == 4输出 0100 ,相比右移更常见,移位后空缺的部分全部填0 >> [ 右移 ] 10 >>...阅读全文

博文 2016-03-10 15:00:03 leonpengweicn

golang 位操作

package main import ( "fmt" ) // 获取0-n之间的所有偶数 func even(a int) (array []int) { for i := 0; i < a; i++ { if i&1 == 0 { // 位操作符&与C语言中使用方式一样 array = append(array, i) } } return array } // 互换两个变量的值 // 不需要使用第三个变量做中间变量 func swap(a, b int) (int, int) { a ^= b // 异或等于运算 b ^= a a ^= b return a, b } // 左移、右移运算 func shifting(a int) int { a = a << 1 a = a >> 1...阅读全文

博文 2014-12-20 19:00:01 moodlxs

Golang回调函数实例二则

1.定义 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。 2.机制 定义一个回调函数 提供函数实现的一方在初始化的时候,将回调函数的函数指针注册给调用者 当特定的事件或条件发生时,调用者使用函数指针调用回调函数对事件进行处理 例1.这是一个简单的回调例子,调用函数test时,调用真正的实现函数add package main import "fmt" type Callback func(x, y int) int // 提供一个接口,让外部去实现 func test(x, ...阅读全文

博文 2017-07-27 02:06:18 iCaptain

为Go语言GC正名-2秒到1毫秒的演变史

英文原文链接:https://blog.twitch.tv/gos-march-to-low-latency-gc-a6fa96f06eb7#.lrmfby2xs 下面我们会介绍https://www.twitch.tv视频直播网站在使用Go过程中的GC耗时演变史。 我们是视频直播系统且拥有数百万的在线用户,消息和聊天系统全部是用Go写的,该服务单台机器同时连接了50万左右的用户。在Go1.4到1.5的版本迭代中,GC得到了20倍的提升,在1.6版本得到了10倍的提升,然后跟Go的Runtime开发组进行交流后,在1.7版本又得到了10倍的提升(在1.7之前,我们进行了大量的GC参数调优,在1.7中这些调优都不需要了,原生的runtime就可以支持),总共是2000倍!!!具体的GC停止时间...阅读全文

博文 2016-07-11 17:40:43 erlib

Go 调优技术

## 内存管理 在开始探索 Go 调优技术和工具之前,我们需要先了解一下 Go 内存模型,它可以帮助我们理解内存是如何使用的。 Go 实现的是 _并行的_ [标记-清除垃圾回收器](http://wiki.c2.com/?MarkAndSweep)。在 _传统的_ 标记-清除模型中,垃圾回收器会先让程序停下来(也就是,“stop the world”),然后查找已经失效的对象,并把这些对象清理掉(也就是,释放内存)。因为程序在运行中会移动引用(references),导致垃圾的识别和清理出现困难。同时,垃圾回收也会导致延迟和其他的问题。在 Go 语言中 [GC 是并发执行的](https://blog.golang.org/go15gc),所以 GC 执行时,用户可能不会注意到暂停或者延迟。...阅读全文

博文 2017-12-20 15:38:13 polaris

golang cpuprofile分析

http://www.philo.top/2015/05/29/golangProfilingAndGC/ Philo 关注Golang与Docker技术 HomeArchivesAboutDonateGeekP weibo github 5月 29 2015 技术 golang调优之clock ticks 本blog的来源 昨天在找工作面试的时候我与面试官聊到了golang的问题。当然讨论的热点就是调优与GC。 结果面试变成了技术讨论与研究,聊了接近一个小时,真的很开心。 下面的研究内容来自goblog https://blog.golang.org/profiling-go-programs 我也只是想浓缩一遍上面的内容方便大家研习。当然文章可能比较老了。 因此我在这里重新走一遍大神之路...阅读全文

博文 2015-11-17 16:00:01 caoshulin1989

go 最大的无符号数

这里其实主要是翻译http://blog.golang.org/constants,其中An exercise: The largest unsigned int 部分。 如何构造最大的无符号数。对于确定位数的无符号数,只要移位即可,例如:对于uint32,只要const MaxUint32 = 1<<32 - 1 。 但是,对于不确定位数的uint,就不能这样了,其实,我们知道,最大的无符号数和-1在位数上是一样的。但是,无论是 const MaxUint uint = -1 // Error: negative value , 还是const MaxUint uint = uint(-1) // Error: negative value ,都不能通过编译,原因自然是类型与范围的冲突了。...阅读全文

博文 2015-12-22 04:00:00 lmxmimihuhu

golang文件传输服务

续上篇,本篇介绍一个完整的golang文件传输服务器。 完整的代码可以看服务器,客户端 网络使用的框架如上篇介绍,这里就不再复述. 首先定义3个命令码: const ( request_file = 1 file_size = 2 transfering = 3 ) request_file用于请求文件传输,附带的命令参数是文件key. file_size用于通告客户端文件的大小. transfering用于传输文件内容,附带参数是文件内容的二进制数据. 服务器的文件配置示例 ../learnyouhaskell.pdf=haskell ../golang.1.1.2.chm=golang ../NodeJS.pdf=NodeJS 上面的文件配置了3个文件可供传输=左边是文件路径,右边是请求...阅读全文

博文 2014-10-04 19:25:59 sniperHW

golang os

const ( O_RDONLY int = syscall.O_RDONLY // open the file read-only. O_WRONLY int = syscall.O_WRONLY // open the file write-only. O_RDWR int = syscall.O_RDWR // open the file read-write. O_APPEND int = syscall.O_APPEND // append data to the file when writing. O_CREATE int = syscall.O_CREAT // create a new file if none exists. O_EXCL int = syscall.O_...阅读全文

博文 2014-10-04 19:26:01 ggaaooppeennngg

Go 位运算

// xuhh_go_位运算符 project main.go /* 位移操作 << : 向左移位 可以看做是 乘以2的几次方 位移操作 >> : 向右移位 可以看做是 除以2的几次方 and操作 & : 都为1 才是1 or 操作 | : 只要有一个是1 那么就是1 取反 ^ :有一个为1 则 就是1 两个1 或者两个0 全是 0 标志位操作 &^ : a &^ b = (a^b) & b 其实就是清除标记位 (将a中为1的位 如果b中相同位置也为1,则将a中该位置修改为0,a中其他位不变) */ package main import ( . "fmt" ) func main() { var p = Person{"xuhh", "12"} Println(p) const a = 2...阅读全文

博文 2016-03-17 12:00:01 xuheazx

C中调用go中的回调函数

在用go包装某些c库时(如glut),需要将go函数当作回调函数传递给c库(如glutDisplayFunc(&draw)中的draw函数,我想将go写的函数传过去),应该怎么做?我写了一个示例,但一直不成功,不知道为什么?麻烦知道的帮我解答一下。 代码如下: /* test.h */ extern void SetFunc(); /* test.c */ #include "test.h" #include "_cgo_export.h" void SetFunc() { InternalFunc(); } /* test.go */ package main // #include "test.h" import "C" ...阅读全文

主题 2013-04-19 09:03:40 shikuijie

正则表达式

匹配纯文本 Ben Hello, my name is Ben. Please visit my website at http://www.forta.com. 匹配任意字符(默认模式不匹配\n,单行模式可以匹配\n) a.c abc acc a2c.a.\.xls na1.xls na2.xls前面两个点任意字符 ,最后一个转义点, . 和 \ 等都叫做元字符(metacharacter),表示这个字符有特殊含义,而不是字符本身的含义,如果我们要匹配元字符的话,我们需要对元字符进行转义 [] 字符集,对应位置可以是字符集中的任意字符,字符集中的字符可以逐个列出,也可以给出范围,如[abc]或[a-c] ,第一个字符如果是^则表示取反,如[^abc];所有特殊字符在字符集中都失去原有的特殊...阅读全文

博文 2018-12-01 00:34:42 越塔打哭你

Golang工程师

职位描述: 1. 使用 Go 语言开发稳健可扩展的后端服务 2. 为实现服务的高可用,进行必要的调优 3. 通过单元测试、自动化以及代码审查等提升优化代码质量 职位要求: 1. 两年以上 Go 服务端经验 2. 熟悉C/C++ 或 Rust至少一年开发经验 3. 熟悉 Linux、Redis、关系型数据库(MySQL,PostgreSQL)、消息队列、Docker 4. 熟悉IP/TCP VLAN SDN 等网络协议(加分) 5. 能够熟练阅读和理解纯英文开发文档(加分) 6. 熟悉华为 思科等网络设备的配置和命令(加分) 7. 有Github开源作品/个人Blog(加分) 工作地址 北京市丰台区航丰一号时代财富天地2112-2113...阅读全文

Golang FlameGraph(火焰图)

简介 安装 go get github.com/uber/go-torch # 再安装 brendangregg/FlameGraph export PATH=$PATH:/absolute/path/FlameGraph-master # 还需要安装一个graphviz用来画内存图 yum install graphviz 代码修改 import "net/http" import _ "net/http/pprof" func main() { // 主函数中添加 go func() { http.HandleFunc("/program/html", htmlHandler) // 用来查看自定义的内容 log.Println(http.ListenAndServe("0.0.0.0:...阅读全文

博文 2017-11-01 13:03:07 城寒

golang heap profile分析

http://www.philo.top/2015/05/29/golangProfilingAndGC2/ Philo 关注Golang与Docker技术 HomeArchivesAboutDonateGeekP weibo github 5月 29 2015 技术 golang调优之GC Continue 在上篇中,主要针对个函数使用时间来对程序分析进行调优。 在本片中由于发现GC使用时间过长来对程序进行分析。 针对内存进行调优。 内存调优,查找什么位置引发GC时间过多 第二个版本的pprof结果 1 2 3 4 5 6 7 (pprof) top5 Total: 1652 samples 197 11.9% 11.9% 382 23.1% scanblock 189 11.4% 23....阅读全文

博文 2015-11-17 12:00:01 caoshulin1989

Google资深工程师深度讲解Go语言

课程地址:http://icourse8.com/go_pachong.html
课程地址:http://icourse8.com/go_pachong.html
课程目录第1章 课程介绍第2章 基础语法第3章 内建容器第4章 面向“对象”第5章 面向接口第6章 函数式编程第7章 错误处理和资源管理第8章 测试与性能调优第9章 Goroutine第10章 Channel第11章 http及其他标准库第12章 迷宫的广度优先搜索第13章 开始实战项目第14章 单任务版爬虫第15章 并发版爬虫第16章 数据存储和展示第17章 分布式爬虫第18章 课程总结 class Solution: def isMonotonic(self, A: List[int])...阅读全文

博文 2019-05-24 20:35:12 zhongjunr

程序员如何看待京东泄密的?

针对近日传闻的“京东泄露的5千万用户数据”一事,今日,京东官方微博@京东发言人 回应称,确认这些数据不实京东账号数据,请勿造谣传谣。京东称,经过示例数据查验,确认这些数据不是京东账号数据,另外还提醒:买卖公民个人隐私数据涉嫌触犯刑法。以下为京东发言人声明全文:针对外界谣传“京东泄露的5千万用户数据”一事,京东经过示例数据查验,确认这些数据不是京东账号数据,请勿造谣传谣!另外提醒:买卖公民个人隐私数据涉嫌触犯刑法!​2016年,京东曾出现过一起12G数据包泄露事件,其中包括用户名、密码、邮箱、QQ号、电话号码、身份证等多个维度,数据多达数千万条。当时,京东发生声明称,该数据源于2013年Struts 2的安全漏洞问题,京东迅速完成了系统修复,同时针对可能存在信息安全风险的用户进行了安全升级提示...阅读全文

博文 2019-04-26 19:53:50 13113161761

studygolang filter模块阅读小结

##Filter模块与Hanlder## Hanlder是一种已知类型的回调方法,由使用者提供,可以抽象出一个type func类型来接受这种方法 type HandlerFunc func(http.ResponseWriter, *http.Request) 然后给该方法添加一个方法用来在触发该方法的调用 func (f HandlerFunc) ServeHTTP(rw http.ResponseWriter, req *http.Request) { // 执行当前Route的FilterChain filterChain := CurrentRoute(req).FilterChain if filterChain != nil { ...阅读全文

golang begin

1. install go 2. configure sublimehttp://blog.csdn.net/cyxcw1/article/details/10329481 3.io package 1) io.Reader 1 // io.Reader 接口示例 2 package main 3 4 import ( 5 "fmt" 6 "io" 7 "os" 8 "strings" 9 ) 10 11 func main() { 12 FOREND: 13 for { 14 readerMenu() 15 16 var ch string 17 fmt.Scanln(&ch) 18 var ( 19 data []byte 20 err error 21 ) 22 switch stri...阅读全文

博文 2014-10-04 19:26:01 harrysun

[LogInsight] (已更新)招聘 GoLang/C/C++ , 数据库研发,全文检索 ,前端工程师

#公司介绍 北京百泉众合数据科技有限公司,即LogInsight,成立于2015年,是中国 ITOA(IT运维分析)市场的一支生力军,并立志成为中国 ITOA 领域的领头羊。 机器数据,即由计算机,应用或者其他机器在无人工干预下产生的数据。机器数据是增长最快、最复杂也最富含价值的大数据中的一种, 大数据中,90%的数据是机器数据 。LogInsight,致力于开发机器数据\日志的分析平台,期望帮助广大的企业及开发者,实现机器数据价值的洞察,并转变为业务创新及竞争优势。 LogInsight 核心技术团队主要来自国内外顶尖的互联网公司,在的大数据,搜索引擎,日志分析领域有着非常丰富的技术积累,拥有世界级的搜索引擎实现技术。 #核心技术团队简介 **李沫南:** C...阅读全文

MGO 设计调优。

MGO 设计调优。 真的是那句话,不是你不行,知识你不了解。而已。 肯定是不能加两个索引了。 索引的代价实在是太大了,不但占用内存还还大量损失查询性能,真心不能忍耐啊。 设计的时候DBRef肯定是需要的,直接用有意义的ID查询肯定是性能最好的。 控制key的数量肯定是必须的。比如说用户数量就是key的数量这就够了。别整那么多。collection不然损失性能。 如果真的想控制数量的话,那么数据关联肯定是十分必须的。 流量控制肯定也是必须的。 流量的来源在于Find直接返回所有查询结果。卧槽。直接吃掉所有流量。 直接用FindOne 避免查询多个结果回来肯定是必须的 FindOne就够了吗?我确实遇到这个坑了。在博文中已经提到关于这种情况适用filter的方法了。直接参考就OK了。 1Find...阅读全文

博文 2015-03-07 21:33:30 jianyingLi

PuGo 一次内存泄露的调优

我刚刚写好新的博客程序 Pugo,欢迎试用和体验。这两天我把个站 fuxiaohei.me 迁移到新的博客程序。但是,经过一天的运行,发现内存从启动的 14MB 上升到了 228 MB。显然程序发生内存泄露,所以也开始以下调优过程。 PPROF pprof 是 Golang 自带的调试工具,有很多可用的工具。pprof 的调试方式有代码的方式和 HTTP 方式。其中 HTTP 调试比较方便,加入很简单的代码: import _ "net/http/pprof" // pprof 的 http 路由注册在自带路由上 go func() { http.ListenAndServe("0.0.0.0:6060", nil) // 启动默认的 http 服务,可以使用自带的路由 }() 访问 htt...阅读全文

博文 2016-04-17 14:46:46 傅小黑

linux-golang编译器安装与配置

golang编译器安装与配置 golang目前有两种编译,一个是golang官方提供的,另一个是gnu提供的gccgo; golang官方编译器安装与配置 安装gcc工具,因为golang有些功能是使用c写的,所以构建golang的编译是必须的 $ sudo apt-get install bison gawk gcc libc6-dev make 安装mercurial工具,目的使用hg命令来提取golang的源代码 $ sudo apt-get install mercurial 代取提取,如果您的网速比较慢的话,此步要多花点时间 $ hg clone -u release https://go.googlecode.com/hg/ go 编译golang $ cd go/src $ ....阅读全文

博文 2016-04-02 14:00:01 shuanger_

P2P GO Client角色的协商

1 P2P GO Client协商流程  协商流程 P2P GO/Client的协商流程只需要简单的几步,如下图: P2P连接发起端:指在P2P连接过程中主动发起P2P连接的机子,用A表示; P2P连接接受端:指在P2P连接过程中接受P2P连接的机子,用B表示; 图1 P2P GO/Client协商流程 如上图所示: 1、 首先A在P2P连接初始化准备完成后,发送一个“GO Negotiation Request”给B; 2、 而这时候,B并没有准备好,这时B先保存下A的协商信息,然后发送一个“GO Negotiation Response”给A,该response包含有B的协商信息,但在该response中,B把状态state设置为P2P_SC_FAIL_INFO_CURRENTLY_U...阅读全文

博文 2016-09-17 05:00:02 zjli321

载:罗辑思维在全链路压测方面的实践和工作笔记

载:罗辑思维在全链路压测方面的实践和工作笔记 业务的知名度越高,其背后技术团队承受的压力就越大。一旦出现技术问题,就有可能被放大,尤其是当服务的是对知识获取体验要求颇高的用户群体。提供知识服务的罗辑思维主张“省时间的获取知识”,那么其技术团队在技术实践方面是如何践行省时间的理念的呢?本文将还原罗辑思维技术团队在全链路压测上的构建过程,为您一探究竟。全链路压测知多少保障服务的可用性和稳定性是技术团队面临的首要任务,也是技术难题之一。例如,罗辑思维提供的是知识服务,服务的是在高铁、地铁和公交车等场所利用碎片时间进行学习,在凌晨、深夜都有可能打开App,以及分布在海外的全球用户。这就需要得到App提供7*24的稳定高性能的服务和体验。在实际生产环境中,用户的访问行为一旦发生,从CDN到接入层、前端...阅读全文

博文 2019-02-24 13:34:42 meng_philip123

互联网大厂职位内推啦!!!

阿里巴巴大文娱事业群 Android技术专家 职位描述: 1.独立完成 android客户端程序的开发; 2.根据产品需求开发相关的移动产品; 3.验证和修正测试中发现的问题; 4.配合市场等其他部门,提供产品相关技术支持; 职位要求: 1.三年以上客户端开发经验,精通Android手机平台; 2.熟悉掌握至少一种主流手机平台编程语言(C,C++或Java等),有Java相关开发经验不少于2年; 3.精通android平台下的高性能编程及性能调优; 4.开发基础良好,理解设计模式,在项目或产品中有很好的设计实践; 5.有强烈的责任心和团队精神,善于沟通和合作;能独立完成设计和编码; 6.对Android的UI控件有实际使用和优化经验者优先;有前端开发经验者优先。 今日头条 前端开发工程师 薪...阅读全文

招聘 | 钱多、活少、前景好的“程序员”

致:不想被客户指点江山只想开心工作的程序员 有这么一类人:工作高端大气上档次,工资是低调奢华接地气,叫做“程序猿”,也叫“攻城狮”,但是往往城还没攻下来,头发就先掉下来。没有过年过节这一说,就连结婚这个神圣时刻,遇到系统bug也得立刻解决,最喜欢听的一句话就是:同志快醒醒,客户说不改需求了。实际上熬夜加班找bug修bug是常态,没周末没夜生活,还常常遇到周五快下班被客户提各种要求指点江山的神马鬼情况……亲爱的程序员快点投奔甲方吧,我们需要你MeshX 我们是一家全球性区块链公司——缦星链盟,致力于MeshX Chain数字网络运管生态的建设。在北京中关村,西安创新港,深圳生态园,美国圣何塞等地均设有分布式办公地点;我们倡导去中心化的自组网运管网络系统,追求畅快的数据链接,极致的产品体验,丰富...阅读全文

博文 2018-09-10 10:34:41 MashX缦星链盟

MongoDB 存储过程的使用以及性能调优方案

MongoDB 存储过程的使用以及性能调优方案。 AUTH:PHILO 在2012年的一个blog里面看到了一个关于性能问题 虽然MongoDB给了我们很多驱动可以用,但是都没有mongodb的shell来的方便。就比如说最近需要做的DBRef嵌套类型的数据要做CRUD如果使用mog驱动的话会非常麻烦。因此我们这里来做个试验,首先给test数据库添加初始化数据添加Server-side script以及测试 mongo 添加数据 1234567891011121314151617181920db.people.insert({"_id":"test","phone","233333"}) //输入原始数据// 数据库修改函数// update之后返回修改后的数据。peopleUpdate=f...阅读全文

博文 2015-03-07 21:34:23 jianyingLi

golang之runtime.SetFinaliz

在实际的编程中,我们都希望每个对象释放时执行一个方法,在该方法内执行一些计数、释放或特定的要求,以往都是在对象指针置nil前调用一个特定的方法,golang提供了runtime.SetFinalizer函数,当GC准备释放对象时,会回调该函数指定的方法,非常方便和有效。 参考: Go 语言中手动内存管理 go语言之初始化的构造函数 Go和C如何共享内存资...阅读全文

golang实现的一个小游戏–猜数字

文同步至:http://www.waylau.com/golang-game-guess-numbe/ 随机生成一个数字,输入一个数字看是否匹对,匹配则结速,反之提示是大了还是小了, 代码如下: package main import ( "bufio" "fmt" "math/rand" "os" "strconv" "time" ) var ( endNum int //设置生成数的范围 ) func main() { i := createRandomNumber(endNum) //fmt.Println("生成规定范围内的整数:", i) //本句调试用 fmt.Println("请输入整数,范围为:0-", endNum) flag := true reader := bufio...阅读全文

博文 2014-11-19 01:00:02 kkkloveyou

介绍一些有助于写出更好Go程序的工具

前面讲了测试和性能调优之类,这篇主要讲如何利用Go提供的一些工具和参数,帮助写出更好的代码. 一. golint 检查代码规范 二. go vet 检查代码存在的隐患 三. -race 检查是否有race condition 一. golint 检查代码规范 /* golint 例子 Author: xcl Date: 2015-11-22 */ package main import ( "fmt" ) const fooId = "blah" var var_name int type hidden struct{} func Exported() hidden { return hidden{} } type T struct{} func main() { Exported() } ...阅读全文

博文 2015-12-22 20:00:02 xcltapestry

TiDB与gRPC的那点事

作者|黄东旭 编辑|雨多田光 通过对 gRPC 的诞生背景与设计原则的介绍,作者分享了 TiDB 选择 gRPC 的原因,并介绍了在这个过程中为了适应 TiDB 而对 gRPC 做出的调整与完善。最后,关于性能方面,介绍了调优的思路。 如果有关注 TiDB 的朋友可能注意到,我们在上个月的 RC3 版本中已经完成了将 TiDB 中的 RPC 框架替换成了 gRPC,这个工作其实已经铺垫了快一年了,如果装逼一点说的话,其实 gRPC 开源的第一天看了一眼设计和哲学,就决定在 TiDB 中使用它。今天抽空写一下背后的一些思考和在这个过程中的一些经验,本次分享不太会介绍大家怎么去用 gRPC,可能更加偏向一些为什么的问题。 gRPC 背景介绍 其实做分布式系统那么久,几乎也是天天和 RPC 打交道...阅读全文

博文 2017-08-09 11:30:59 黄东旭

Go语言HTTP测试及程序性能调优

这篇要讲的东西,主要是HTTP,WebSocket的测试及如何调优Go程序的一些方法. 分下面几个内容: 一.httptest测试包 二.性能测试 三.怎么利用参数分析和调优程序 四.在运行中实时监控调优 一.httptest测试包 对于HTTP和WebSocket测试,Go标准库有一个HTTP测试框架.在"http/httptest"包下. go1.5.1\go\src\net\http\httptest 怎么用可以在源码目录看例子,也可以上官网看看这个例子: https://golang.org/src/net/http/request_test.go 里面各种用法还是很全的. 如果想亲自动手试试. https://golang.org/doc/articles/wiki/ 有个很完整的...阅读全文

博文 2015-12-15 12:00:00 xcltapestry

cgo 随笔(golang)

结构体应用 //结构体定义如下 // test.h struct test { int a; int b; int c; } 在golang中的调用如下: 1 package name 2 3 4 import "C" //这个是必须要包含的,如果要调用cgo 5 6 // #cgo linux CFLAGS: -l. //这个是声明查找头文件的位置 是在本目录 7 // #include "test.h" 8 9 10 func testt() { 11 var vt C.struct_test //这个是结构体的调用方法 12 .... 13 ..... 14 } 15 16 17 1...阅读全文

博文 2014-10-04 19:25:56 sn-dnv-aps

Java程序员进阶成为架构师,该掌握哪一些架构思维?

​很多人做java开发2,3年后,都会感觉自己遇到瓶颈。什么都会又什么都不会,如何改变困境,为什么很多人写了7,8年还是一个码农,工作中太多被动是因为不懂底层原理。公司的工作节奏又比较快,难有机会学习架构原理,也没人教,所以这个时候,学习架构原理,扩展思维,对自己以后职业生涯尤为重要。同样公司的两个新人,一个新人一点就通,学东西很快,有的人,学东西很慢,也很痛苦,处处都是新技术。为什么?因为那个人懂原理,万物都有规律,掌握了规律学其他东西原理相通,一触就会,不懂原理就会处处碰壁,学习很慢还很折磨。很多程序员会有一个苦恼,工作了很久,在公司一味的增删改查,得不到技术的提高,无缘底层代码,只会用不知其原理!总而言之,你缺少的不是努力,而是选择。选择比努力更重要。如果你不知道如何选择,那么我给你一...阅读全文

博文 2018-12-06 16:58:54 Javaspring12

为Go语言GC正名-2秒到1毫秒的演变史

载自:http://blog.csdn.net/erlib/article/details/51850912 英文原文链接:https://blog.twitch.tv/gos-march-to-low-latency-gc-a6fa96f06eb7#.lrmfby2xs 下面我们会介绍https://www.twitch.tv视频直播网站在使用Go过程中的GC耗时演变史。 我们是视频直播系统且拥有数百万的在线用户,消息和聊天系统全部是用Go写的,该服务单台机器同时连接了50万左右的用户。在Go1.4到1.5的版本迭代中,GC得到了20倍的提升,在1.6版本得到了10倍的提升,然后跟Go的Runtime开发组进行交流后,在1.7版本又得到了10倍的提升(在1.7之前,我们进行了大量的GC参数...阅读全文

博文 2016-08-16 01:00:05 andylau00j

Go语言开发学习教程

Go语言开发学习教程 Go语言开发学习教程目录如下: Go语言开发(一)、Go语言简介http://blog.51cto.com/9291927/2126775Go语言开发(二)、Go语言基础http://blog.51cto.com/9291927/2127825Go语言开发(三)、Go语言内置容器http://blog.51cto.com/9291927/2129969Go语言开发(四)、Go语言面向对象http://blog.51cto.com/9291927/2130132Go语言开发(五)、Go语言面向接口http://blog.51cto.com/9291927/2130244Go语言开发(六)、Go语言闭包http://blog.51cto.com/9291927/213030...阅读全文

博文 2018-07-08 11:35:14 天山老妖S