golang技术降本增效的手段

2023-07-28 11:19:34 来源: 博客园

最近一年各大中小厂都在搞"优化",说到优化,目的还是"降本增效",降低成本,增加效益(效率)。

技术层面,也有一些降本增效的常规操作。

比如池化、io缓冲区技术


(资料图片仅供参考)

golangC#eg.
池化技术snnc.PoolObjectPool前端切图仔,归入前端资源池 , 随用随取
字节数组缓冲区bytes.BufferList...
io缓冲区bufioBufferStream适度超前,赛道埋伏
池化技术 sync.Pool

sync.Pool位于标准库,该文件提供了对临时对象的重复使用能力, 避免了频繁的gc, 对并发协程是安全的。

该文件只有三个控制点:

New: 默认的临时对象Get: 从池中哪一个临时对象Put: 放回池中,以重用

下面使用基准测试进行b.N*1000次运算时的内存消耗。

package mainimport ("sync""testing")type Person struct {Age int}var (personPool = sync.Pool{New: func() interface{} {  // 设置默认值return &Person{}},})func ExampleObjPool() {var p *Personfor i := 0; i < 1000; i++ {for j := 0; j < 1000; j++ {p = personPool.Get().(*Person)p.Age = i + 1personPool.Put(p)}}p = personPool.Get().(*Person)fmt.Println(p.Age)// output:1000}func BenchmarkWithoutPool(b *testing.B) {var p *Personb.ReportAllocs()b.ResetTimer()for i := 0; i < b.N; i++ {for j := 0; j < 1000; j++ {p = new(Person)    // 每次均产生临时对象p.Age = 23}}}func BenchmarkWithPool(b *testing.B) {var p *Personb.ReportAllocs()b.ResetTimer()for i := 0; i < b.N; i++ {for j := 0; j < 1000; j++ {p = personPool.Get().(*Person)  // 从池中复用对象p.Age = 23personPool.Put(p)     // 放回以重用}}}

测试结果如下,sync.Pool[重用临时对象]的性能可见一斑。

bytes.Buffer

golang很多方法内充斥了[]byte, 就连最常规的序列化/反序列化,返回值/参数都是[]byte, 但是slice是一个冷冰冰的数据结构,没有得心趁手的操作行为,还有很多陷阱。

func Marshal(v any) ([]byte, error)  func Unmarshal(data []byte, v any) 

A bytes.Buffer is a variable-sized buffer of bytes with Read and Write methods.

坦白讲bytes.Buffer并非底层优化机制, 实际提供了一个友好操作slice的方式。

下面的"abcd"字符串,先读取首字符、后面追加字符"e":

var b bytes.Bufferb.Write([]byte("abcd")) // 写入之后,自动扩容rdbuf := make([]byte, 1)_, err := b.Read(rdbuf) // 读取一个字节的数据,移动读off指针if err != nil {panic(err)}fmt.Println(b.String()) // 上面读取了一个字符,读off已经移动,现从读off位置转换为stringb.WriteByte("e")        // 在尾部写字符fmt.Println(b.String())fmt.Printf("%d, %d \n", b.Len(), b.Cap()) // Len方法返回还能读取的字符数量,Cap返回底层buf的容量  //output:bcd bcde4, 64
bufio

Package bufio implements buffered I/O. It wraps an io.Reader or io.Writer object, creating another object (Reader or Writer) that also implements the interface but provides buffering and some help for textual I/O.

首先我们需要知道当应用程序执行IO操作(从文件、网络和数据库读取或写入数据),它将触发底层的系统调用,从性能角度来看,这很繁重。

缓冲IO是一种技术,用于在传递之前暂时积累IO操作的结果。这种技术可以通过减少系统调用的数量来提高程序的速度。例如,如果您想要逐字节地从磁盘读取数据,与每次直接从磁盘读取每个字节不同,使用缓冲区IO技术,我们可以一次将一个数据块读入缓冲区,然后消费者可以以任何您想要的方式从缓冲区读取数据。通过减少繁重的系统调用,性能将得到提高。

磁盘:1.寻址:ms(毫秒) 2.磁盘带宽:MB/s内存:1.寻址:ns(纳秒) 2. 内存带宽:GB/s磁盘比内存在寻址上慢了10W倍,传输带宽上慢了20倍。

开源的带缓冲区的logrus日志写入hook,就利用了bufio技术。

// 利用bufio针对原始io.Writer封装成带缓冲区的io.Writer   `s.writer = bufio.NewWriterSize(s.Writer, size)   ......  if len(bs) > s.writer.Available() && s.writer.Buffered() > 0 {if err := s.writer.Flush(); err != nil {return err}}_, err = s.writer.Write(bs)` 
优化总结sync.Pool复用临时对象,减少gc次数bufio利用缓冲区,减少频繁的系统调用

研发人员历来都是公司的成本大头,技术优化虽然不能增效,但是能降本,减少核数和内存条,希望大家都能通过技术优化让自己不被优化。

标签:

golang技术降本增效的手段

最近一年各大中小厂都在搞"优化",说到优化,目的还是"降本增效",降低

07-28 11:19:34

在《僵尸百分百》里,丧尸竟然干不过社畜

题图 僵尸百分百行行行,末日里这么玩是吧此前因高质量PV被动漫爱好者

07-28 11:04:33

拓展数字娱乐体验边界,骁龙游戏技术赏展示硬核科技和强大生态

7月27日,高通在上海举办骁龙游戏技术赏,携手一加、网易游戏、完美世

07-28 10:23:40

观察丨中国女足今夜迎战海地,神秘对手实力究竟如何

观察丨中国女足今夜迎战海地,神秘对手实力究竟如何,世界杯,奥运会,海

07-28 10:06:08

小电子 大就业

7月23日,怀远县河溜镇,安徽和联电子公司员工按照订单生产电脑、彩电

07-28 10:04:46

新华全媒+丨多地积极采取举措应对台风“杜苏芮”影响

新华全媒+丨多地积极采取举措应对台风“杜苏芮”影响-“杜苏芮”已给福

07-28 09:33:16

出纳挪用2500多万理财7年获利6400 自愿认罪认罚

7年间挪用学杂费、择校费、捐资助学费等2500多万元进行理财,居然仅获

07-28 09:02:15

梦幻西游:全服顶尖175三攻凌波城,3482伤1261速度,暴力速推!

Hello大家好,我是浩仔!关注浩仔,每天给你带来最新梦幻西游游戏资讯

07-28 08:11:45

中金环境(300145):7月27日北向资金增持72.63万股

7月27日北向资金增持72 63万股中金环境。近5个交易日中,获北向资金增

07-28 07:41:53

守卫剑阁攻略(不同打法下守卫剑阁技巧)

各位网友们好,我是编辑小夏,为大家解答守卫剑阁攻略,不同打法下守卫

07-28 06:30:07

华脉科技因信息披露违规等违规行为被上海证券交易所采取监管措施

7月27日华脉科技公开信息显示,南京华脉科技股份有限公司,深兰科技控

07-28 05:13:41

岳阳交警支队:本月,这7人被终生禁驾!

五大曝光为全力营造安全、畅通、有序的道路交通环境,不断提升全民交通

07-28 02:59:35

突发!俄宣布挫败针对黑海舰队“恐怖袭击”

参考消息网7月27日报道据路透社报道,俄罗斯联邦安全局7月27日称,它挫

07-28 00:45:45

又一个!恭喜沙特!巴黎球星告别欧洲,即将登陆沙特联赛

对于巴黎圣日耳曼来说,他们不仅刚刚经历了一个糟糕的赛季,还要面对这

07-27 22:22:27

格策:凯恩加盟拜仁是顶级的转会,这笔交易对德甲有好处

直播吧7月27日讯法兰克福中场格策在接受SID的采访时表示,凯恩加盟拜仁

07-27 21:30:09

《遗迹2》BOSS装备掉落大全

《遗迹2》BOSS装备掉落大全这个问题是遗迹2中大家都会遇到的一个问题,

07-27 20:03:39

苏工会月月礼活动报名参与时间

苏工会月月礼活动报名参与时间报名时间:2023年7月26日9:00-23:59活动对

07-27 19:58:25

《德普 v. 希尔德》纪录片预告 8月16日播出

今日(7月27日),网飞公布《德普v 希尔德》纪录片预告,该纪录片将会

07-27 19:18:48

河南洛阳:龙门石窟景区迎暑期旅游热潮

2023年7月22日,河南洛阳龙门石窟景区迎来暑期旅游热潮。王章华摄(人

07-27 18:59:11

根据记者Canal Amarillo的说法,加的...

根据记者CanalAmarillo的说法,加的斯门将莱德斯马离队的可能性正在不

07-27 18:38:11

《一拍即合的我们》擦边恋综,口碑严重两极化,极端网友直呼恶心

一拍即合的我们 以前有不少拼演技的综艺,比如《我就是演员》、《演员

07-27 18:39:24

安图:全民健身燃动夏日 体育运动点亮生活

炎炎夏日,难挡市民健身热潮。无论是清晨与阳光的邂逅,还是运动场上的

07-27 18:31:06

让居民安然度夏,宝山这个镇的灭蚊一线“突击兵”在行动!

随着夏季的来临,蚊、蝇等病媒生物进入了活动高峰期,而压制蚊蝇高峰是

07-27 18:14:37

广东普通高考本科投档303542人

人工智能朗读:深圳新闻网2023年7月20日讯(深圳特区报广州记者严俊伟

07-27 17:49:37

日本人口降幅创下新纪录:开始疯抢外国人口

日本总务省周三公布的人口动态调查结果显示,截至今年1月1日,包括外国

07-27 17:52:44

石家庄:残疾人高校毕业生就业洽谈会举办

石家庄:残疾人高校毕业生就业洽谈会举办-招聘会现场共有32家企业参加

07-27 17:50:35

客流20万+,绍兴首家城市奥莱绍兴旭辉Cmall开业

7月21日,绍兴旭辉Cmall启幕,顺应绍兴城市规划升级,在旭辉商业稳健的

07-27 17:38:46

教育部实施“国优计划” 组织高水平高校培养高素质中小学教师人才

人民网北京7月27日电(记者郝孟佳)据教育部网站消息,教育部近日印发

07-27 17:47:32

界首东城街道:社区暑假“帮带娃”

中新网安徽新闻7月19日电(通讯员尚振才)正值暑假,界首市东城街道东顺

07-27 17:32:39

安徽建筑大学经管学院开展2023年暑期“三下乡”社会实践活动

工人日报-中工网记者陈华通讯员余大纬张晓璇吴义雪 近日,安徽建筑大

07-27 17:26:04

青岛市社会福利院开展“工匠日”主题活动

7月26日是首个“青岛工匠日”,青岛市社会福利院组织开展了“工匠日”

07-27 17:23:04

凤翔农商银行:小粉车“点亮”城区夜市

为进一步拓宽获客渠道,提升电子银行业务多场景应用,在前期调研摸底的

07-27 16:51:19

哒哒岛出游记丨这个夏天 来哒哒岛打卡

建筑也是一种艺术的表达,就像哒哒岛。古老、神秘、庄严沉静。随意站定

07-27 17:02:25

历时13年 万建民院士团队破解水稻生殖隔离之谜

大大缩短育种时间,提高育种效率。

07-27 16:35:40

透视险企上半年理赔报告: 日均赔付超亿元 1小时赔付不鲜见

多家保险公司在上半年理赔报告中分析称,重大疾病仍为危害客户健康的首

07-27 16:16:11

机械金属怎么画图片简单_机械类的简笔画

今天为大家介绍一个备受关注的机械金属怎么画图片简单问题,从多个角度

07-27 16:10:38

美国人给亚洲鲤鱼改名为Copi 做成“美食”控制泛滥

入侵物种在全球都是个让人头疼的问题,美国人数十年来发愁的就是亚洲鲤

07-12 12:02:15

博创科技(300548):该股换手率大于8%(07-12)

摘要:2023年07月12日博创科技(300548)换手率大于8%,主力资金净流出

07-12 11:32:23

信用卡诈骗罪客观要件是什么?

客观要件为,客观方面表现为行为人采用虚构事实或者隐瞒真相的方法,利

07-12 11:13:47

7月11日共有39只债券中债隐含评级下调

上证报中国证券网讯据Choice数据统计,昨日(7月11日)共有39只债券中

07-12 10:48:08

中州期货:双焦短期区间操作

①网传蒙古国国庆假期口岸闭关,给予市场炒作空间。但根据《中蒙政府关

07-12 10:11:38

65岁以上老人买意外险要多少钱?看看这三款产品

65岁以上老人买意外险要多少钱,平安大守护老年人意外保险,如果选择投

07-12 09:58:08

暖心服务解决军人后顾之忧 “军营儿童之家四点钟学校”受欢迎

嘿哈日前,驻晋某部运动场上,一群孩子正一板一眼地练着武术,教练逐个

07-12 09:15:51

广西深化商事登记确认制改革 推动自贸试验区商事登记向“客观确认”转变

广西新闻网-广西日报南宁讯(记者吴家跃通讯员刘泽霖)近日,自治区市

07-12 09:03:37

上汽大众ID.3放大招 低至12.59万元起 7月限时发售

2023年7月7日,上汽大众ID 3(参数|询价)推出限时惊爆价,即日起至2023

07-12 08:02:07

上海夏夜街头上演“月光曲”?艺术氛围太美好,给这条小马路带来小确幸!

最近,一段上海街头的“迷你音乐会”视频受到网友关注,并火热出圈。据

07-12 07:07:40

难以启齿的柔弱歌词是什么意思(难以启齿的柔弱原唱是谁)

金志文。金志文,1982年7月12日出生于吉林省吉林市,毕业于吉林艺术学

07-12 05:59:22

纸老虎是什么意思比喻什么人(纸老虎是什么意思)

1、纸老虎是比喻一个人或一个团体,看起来很强很凶,但实际上是空虚无

07-12 04:43:58

苏州女子杀害丈夫藏尸冰柜 德国房地产大亨被肢解藏冰箱 基本情况讲解

1、苏州女子杀害丈夫藏尸冰柜2、德国房地产大亨被肢解藏冰箱3、以上就

07-12 01:02:42

燕塘乳业上半年净利润预增超50%

新京报讯(首席记者郭铁)燕塘乳业日前发布2023年半年报业绩预告,预计

07-11 22:27:20

在《僵尸百分百》里,丧尸竟然干不过社畜
拓展数字娱乐体验边界,骁龙游戏技术赏展示硬核科技和强大生态
观察丨中国女足今夜迎战海地,神秘对手实力究竟如何
小电子 大就业
新华全媒+丨多地积极采取举措应对台风“杜苏芮”影响
出纳挪用2500多万理财7年获利6400 自愿认罪认罚
梦幻西游:全服顶尖175三攻凌波城,3482伤1261速度,暴力速推!
中金环境(300145):7月27日北向资金增持72.63万股
守卫剑阁攻略(不同打法下守卫剑阁技巧)
华脉科技因信息披露违规等违规行为被上海证券交易所采取监管措施
岳阳交警支队:本月,这7人被终生禁驾!
突发!俄宣布挫败针对黑海舰队“恐怖袭击”
又一个!恭喜沙特!巴黎球星告别欧洲,即将登陆沙特联赛
格策:凯恩加盟拜仁是顶级的转会,这笔交易对德甲有好处
《遗迹2》BOSS装备掉落大全
苏工会月月礼活动报名参与时间
《德普 v. 希尔德》纪录片预告 8月16日播出
河南洛阳:龙门石窟景区迎暑期旅游热潮
根据记者Canal Amarillo的说法,加的...
《一拍即合的我们》擦边恋综,口碑严重两极化,极端网友直呼恶心
安图:全民健身燃动夏日 体育运动点亮生活
让居民安然度夏,宝山这个镇的灭蚊一线“突击兵”在行动!
广东普通高考本科投档303542人
日本人口降幅创下新纪录:开始疯抢外国人口
石家庄:残疾人高校毕业生就业洽谈会举办
客流20万+,绍兴首家城市奥莱绍兴旭辉Cmall开业
教育部实施“国优计划” 组织高水平高校培养高素质中小学教师人才
界首东城街道:社区暑假“帮带娃”
安徽建筑大学经管学院开展2023年暑期“三下乡”社会实践活动
青岛市社会福利院开展“工匠日”主题活动
凤翔农商银行:小粉车“点亮”城区夜市
哒哒岛出游记丨这个夏天 来哒哒岛打卡
历时13年 万建民院士团队破解水稻生殖隔离之谜
透视险企上半年理赔报告: 日均赔付超亿元 1小时赔付不鲜见
机械金属怎么画图片简单_机械类的简笔画
美国人给亚洲鲤鱼改名为Copi 做成“美食”控制泛滥
博创科技(300548):该股换手率大于8%(07-12)
信用卡诈骗罪客观要件是什么?
7月11日共有39只债券中债隐含评级下调
中州期货:双焦短期区间操作
65岁以上老人买意外险要多少钱?看看这三款产品
暖心服务解决军人后顾之忧 “军营儿童之家四点钟学校”受欢迎
广西深化商事登记确认制改革 推动自贸试验区商事登记向“客观确认”转变
上汽大众ID.3放大招 低至12.59万元起 7月限时发售
上海夏夜街头上演“月光曲”?艺术氛围太美好,给这条小马路带来小确幸!
难以启齿的柔弱歌词是什么意思(难以启齿的柔弱原唱是谁)
纸老虎是什么意思比喻什么人(纸老虎是什么意思)
苏州女子杀害丈夫藏尸冰柜 德国房地产大亨被肢解藏冰箱 基本情况讲解
燕塘乳业上半年净利润预增超50%
纽盘今日货币走势分析:美元脱离低点正在走强
X 广告
资讯
X 广告

Copyright ©  2015-2022 每日畜牧网版权所有  备案号:浙ICP备2022016517号-15   联系邮箱:5 146 761 13 @qq.com