golang 1.8 gc的演进

在java的gc中,主要有三种算法,即:标记-删除,标记-整理,复制,网上有很多资料介绍相关内容,其中标记主要是为了找到内存中不可达的对象,并将其回收。而gc过程中最关键的指标就是STW时间,如果STW过长,会影响整体程序的响应。 Serial Serial 采用单一线程进行GC。 特点:STW时间长,但是无线程切换开销,简单高效 ParNew ParNew 与Serial一样,只是在新生代采用并发gc CMS CMS CMS收集器主要用于老年代内存的回收,致力于降低STW时间,但是却拉长了gc...阅读全文

简书 2019-12-08 01:33:00 淡泊宁静_3652

编码在线工具

1 背景 作为一名程序员,每天需要处理大量编码问题,经常会用到在线json处理、编码解码、SQL处理等等,但是目前没有一个没有bug而且一站式解决所有问题的网站。导致我每天需要不同网站来回切换,而且遇到解析bug就非常头疼。 2 目标 打造一个一站式辅助编程的在线处理网站 3 网站风格 网址https://www.codeutils.top,打开后如下所示: 网站风格 左侧为目前网站支持的处理能力,目前包括Json处理、SQL处理、字符串编码解码、Go语言工具。 4 网站特点 4.1处理流程支持...阅读全文

简书 2019-12-08 01:32:59 zhongxuqi

你应该知道的HTTP基础知识

姓名:宫松涛学号:19021210927嵌牛导读:为大家详细讲解HTTP基础知识,让大家快速掌握。嵌牛鼻子:HTTP基础知识嵌牛提问:有哪些HTTP基础知识?转载源:你应该知道的HTTP基础知识嵌牛正文:本文主要内容:HTTP请求报文格式HTTP响应报文格式Header请求体的3种形式推荐调试工具HTTP的组成图示1. HTTP请求报文格式HTTP 的请求报文分为三个部分请求行、请求头和请求体,格式如图: HTTP请求报文格式注:部分文章也将HTTP请求报文分为两部分请求头和请求体,请求头的第一...阅读全文

简书 2019-12-08 01:32:55 走不完的叉路口

上海七猫部分笔试题

第六题 score ID StudentID SubjectID score 1 1 2 75 2 3 2 60 3 1 3 80 4 2 3 90 5 3 1 65 6 2 1 71 student ID name 1 小王 2 小明 3 小红 subject ID name 1 数学 2 语文 3 英语 4 化学 在分数表里插入一条小王,化学,70分的记录 获取各科平均分在60分以上的学生的名字 建立索引 select * from score where studentID = 3; se...阅读全文

Segmentfault 2019-12-08 05:32:38 todo

深入学习 GRPC - 2. 加密非流式的字节结构

本篇主要进行加密非流式 GRPC 的通信在字节层面的讨论,使用带 TLSv1.2 的 nginx 节点代理非加密的 golang 服务端节点,密钥交换使用椭圆曲线,在服务端使用自签名证书,不使用客户端证书,假设读者对 TLS 等已有基本的了解。 使用以下命令生成椭圆曲线密钥和服务端自签名证书: openssl ecparam -genkey -name secp256r1 | openssl ec -out hot.key -aes128 openssl req -new -x509 -days...阅读全文

简书 2019-12-07 20:32:40 Platanuses

Golang为什么没有整型的max/min方法

作为有一些经验的Golang开发者,你可能意识到了Golang并没有max/min方法来返回给定的两个或多个整型数值中的最大值或最小值。其他语言通常会在核心库中提供这类方法。 你有没有想过为什么Golang没有这么做? Golang确实在math包中提供了max/min方法,但是仅用于对比float64类型。方法的签名如下: math.Min(float64, float64) float64 math.Max(float64, float64) float64 Golang为float64提供...阅读全文

简书 2019-12-07 20:32:40 李小西033

golang并发----sync.Pool

sync.Pool 对象缓存 对象获取 尝试从私有对象获取(私有对象是协程安全的) 私有对象不存在 尝试从当前Processor的共享池获取(共享池是协程不安全 需要锁) 如果当前Processor共享池是空的 那么尝试去其他Processor的共享池获取 如果所有子池都是空的 最后使用用户指定的New()函数产生一个新的对象返回 对象放回 如果私有对象不存在则保存为私有对象 如果私有对象存在 放入当前Processor子池的共享池中 对象的声明周期 GC会清除sync.Pool缓存的对象 对象...阅读全文

golang并发----利用close(channel)实现任务取消

所有channel接收者都会在channel关闭时 立刻从阻塞等待中返回 ok值为false 这个广播机制经常被利用进行向多个订阅者同时发送信号 例如退出信号 func dowork() { fmt.Println("do work.") time.Sleep(time.Second) } func iscanceled(cancelchan chan struct{}) bool { select { case <-cancelchan: return true default: return...阅读全文

小程序模板订阅消息群发推送神器源码开发外包解析

互联网IT外包15年,讲述外包那些事;让您外包项目少花钱,办好事!IT外包最大隐形成本-沟通成本:客户叙述大概需求,IT公司说一做一,最后开发项目细节大堆BUG,毫无用户体验感,最后项目一拖再拖,无限延期!究其原因,客户非IT行内人,对系统功能及流程了解不能面面俱到;大公司成熟团队有具体的项目产品经理,小团队或个人不会讲解用户体验,毕竟收的你钱,数额再哪里摆着;所以想省钱,还想把系统做到尽你满意,只能自己充当产品经理角色,辅助开发者完成项目!我们从事IT外包15个年头,数以千计的项目,我们会一一...阅读全文

golang不定长传参

golang不定长传参,三个点... 可以很灵活的传入多个参数,给两个例子,一看就明白了 1、int类型不定长传参 package main import "fmt" func main() { fmt.Println(Sum(1, 4, 6, 7, 8, 9, 100, 200)) } func Sum(numbers ...int) int { result := 0 for _, n := range numbers { result += n } return result } go r...阅读全文

51CTO博客 2019-12-06 18:36:54 1350368559

Golang+Gin实现https

首先你需要.crt 和 .key两个证书文件。我是通过opensssl自生成的证书,你也可以通过域名购买正规证书。 代码: func InitRouter() { router := gin.Default() authorized := router.Group("test") registerAuthorized(authorized)dirPath := filepath.Dir(os.Args[0]) crtPath, err := filepath.Abs(dirPath + "/.....阅读全文

go词法解析之scanner

golang版本: 1.13.1 词法分析词法分析阶段是编译过程的第一个阶段。这个阶段的任务是从左到右一个字符一个字符地读入源程序,即对构成源程序的字符流进行扫描然后根据构词规则识别单词(也称单词符号或符号)。词法分析程序实现这个任务。词法分析程序可以使用lex等工具自动生成。scannergo于1.5开始实现了自举,而第一阶段的词法分析由cmd/compile/internal/syntax/scanner 实现的.scanner 的实现比较简单,主要逻辑在next里,是先解析是否是字符串,然...阅读全文

go 性能监控神器

原文地址:Golang 大杀器之性能剖析 PProf 前言 写了几吨代码,实现了几百个接口。功能测试也通过了,终于成功的部署上线了 结果,性能不佳,什么鬼?😭 想做性能分析 PProf 想要进行性能优化,首先瞩目在 Go 自身提供的工具链来作为分析依据,本文将带你学习、使用 Go 后花园,涉及如下: runtime/pprof:采集程序(非 Server)的运行数据进行分析 net/http/pprof:采集 HTTP Server 的运行时数据进行分析 是什么 pprof 是用于可视化和分析性...阅读全文

Golang的通道简介以及通道的作用

chanel通道,在golang的变量为chan,为什么要单独开一章出来讲解呢,主要是chan是一个挺重要的东西,并且在golang并发当中是一个完美的调和剂。 通道的特性 Go语言中的通道(channel)是一种特殊的类型。在任何时候,同时只能有一个 goroutine 访问通道进行发送和获取数据。goroutine 间通过通道就可以通信。 通道像一个传送带或者队列,总是遵循先入先出(First In First Out)的规则,保证收发数据的顺序。 package main import (...阅读全文