Golang pprof 性能调优实战,性能提升3倍!

1.需求背景 服务升级,需要对kafka消息持久化服务进行压测,预计每分钟要产生消息400w条。 目前使用Golang实现了批量发送kafka消息的接口,但100w条消息就要还是50s多,无法满足需求,因此需要对发送kafka接口进行性能调优 2.问题分析 2.1发送的消息量是否已经达到了网络io的瓶颈 经过测试,本地调试时,确实存在这个问题。 在服务器上调试,则可以避免这个问题 2.2发送kafka接口的实现存在性能问题 组装kafka消息的逻辑(BenchMark测试也没啥问题) // 使用...阅读全文

简书 2020-12-16 02:32:52 梨花菜

golang 使用exec.command 使用命令行工具或者执行命令行命令,以及调试方法(exit status 1)

​ golang标准库里面,"os/exec"可以用于执行命令行命令,就类似于python的subprocess包。可以把命令作为子进程执行,也支持pipe,可以读取stdin ,stdout,stderr等,基本满足执行命令行命令的要求。 ​ 这次我的场景使用golang调用ffmpeg执行合并视频和音频,因为现在的视频网站比如youtube,bilibili,会把视频轨和音频轨分开来,等到播放的时候再合到一起,算是节约存储空间的一种方法。因为不同分辨率的视频可以复用音轨,比起每个视频都带音轨...阅读全文

Golang 使用selenium webdriver绕开爬虫无头浏览器检测

第一步 对于chrome版本<79版本的浏览器而言,可以设置 ExcludeSwitches:[]string{"enable-automation",} ,修改window.navigator.webdriver为undefined (79版本以上无效,可以被网站检测出)第二步修改chromedriver.exe二进制文件,ctrl+f 搜索$cdc,将该变量名更改,注意修改前后变量长度必须一样阅读全文

简书 2020-12-16 02:32:40 Chan文希

Go 学习笔记 11 | Golang 接口详解

一、Golang 接口 Golang 中接口定义了对象的行为规范,只定义规范不实现。接口中定义的规范由具体的对象来实现。 package main import ( "fmt" ) //接口是一个规范 type Usber interface { // 最好以 er 结尾表示接口 start() stop() } // 如果接口里有方法的话,必须要通过结构体或者通过自定义类型实现这个接口。 type Phone struct { Name string } // 手机要实现 usb 接口的话必须...阅读全文

简书 2020-12-16 02:32:40 Wonz

golang任务拆分errgroup

ErrGroup是 Go 官方提供的一个同步扩展库。可以将一个大任务拆分成几个小任务并发执行,提高程序效率。 主要有三个方法,WithContext、Go、Wait。 func WithContext(ctx context.Context) (*Group, context.Context) WithContext,返回一个Group实例以及一个Context。如果有一个子任务返回错误,或者Wait调用返回,这个Context就会cancel。 func (g *Group) Go(f fun...阅读全文

简书 2020-12-16 02:32:40 陈陈陈_6150

golang安装及简介

go简介 发展 2006 1.5实现自举,不再依赖c 优点 学习容易 效率高,快速编译,开发和运行 标准库全,扩展包少 部署方便 简单并发 稳定 缺点 缺少主流框架,beego echo gin lris等,但没有一个主流, 错误处理,编译错误难定位 缺少包仓库 文档地址 go安装 linux export PATH=$PATH:/path/to/bin/go export GOPATH=xxx //项目路径 win 增加GOPATH Path增加项目目录\bin 利用 go env 测试 项目...阅读全文

简书 2020-12-16 02:32:39 mafa1993

「对比Python学习Go」- 开篇

20201216 update文章首发公众号「CoderMrWu」,欢迎关注订阅!前言当前Go语言已然成为很多后端项目的主力语言,在互联官网企业开发中甚至有和Java一较高下的趋势。Go 语言也属于静态语言,与Java类似,需要先编译后执行,但它性能更好,天生支持并发。与Python这种动态语言相比,灵活性不足,但它优秀的性能并发性,也成为很多基础设施保障类系统青睐的语言。工作中一直使用Python作为主力语言,主要是web相关的开发,也涉猎后端大型分布式集群管理系统开发。最近几年,公司部分系统...阅读全文

Segmentfault 2020-12-19 10:32:34 DeanWu

BlackWater基于RUST的端口扫描器 撼动NMAP地位

https://github.com/dollarkill...Blackwater是rust编写基于SCP并发模型的 端口扫描器官方测试1秒内扫描6W个端口吊打传统测试软件NMAPubuntu@ubuntu:~/$ time blackwater -i 110.242.68.3 -p1-65535 _ _ | | | | | |_ | | __ | | | | | | | | _ | |_| | | Black Water Asynchronous Port Scanner written i...阅读全文

Segmentfault 2020-12-18 11:32:32 dollarkillerx

GO Memory Model

引用:https://golang.org/ref/mem#tmp_0 本文只作为翻译 和一些补充,供笔者日后翻阅 在不同的goroutine中涉及到对同一个变量操作,我们简单成为并发,使用data race 检测的话也可以检测出来,那么这种应该称为bug的代码,我们还是应该细究一下 介绍/introduction 原文:The Go memory model specifies the conditions under which reads of a variable in one goro...阅读全文

简书 2020-12-15 16:37:40 Stevennnmmm

golang生成JSON及解析JSON

一、JSON解析到结构体在介绍这部分之前先简要介绍一下Json语法JSON 语法是 JavaScript 语法的子集。JSON 语法是 JavaScript 对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组1.JSON名称/值对"name" : "value"2.JSON值可以是: 数字(整数或浮点数) 字符串(在双引号中) 逻辑值(true 或 false) 数组(在中括号中) 对象(在大括号中) null JSON数据JSON 数字可以是整型或者浮点型{ "...阅读全文

简书 2020-12-15 16:37:40 也许会了

还敢乱写代码??腾讯 Code Review 规范出炉!

前言 作为公司代码委员会 golang 分会的理事,我 review 了很多代码,看了很多别人的 review 评论。发现不少同学 code review 与写出好代码的水平有待提高。在这里,想分享一下我的一些理念和思路。 为什么技术人员包括 leader 都要做 code review 谚语曰: 'Talk Is Cheap, Show Me The Code'。知易行难,知行合一难。嘴里要讲出来总是轻松,把别人讲过的话记住,组织一下语言,再讲出来,很容易。绝知此事要躬行。设计理念你可能道听途...阅读全文

简书 2020-12-15 16:37:40 码农突围

一个Golang版丝滑的可视化库

今天逛github超市时,发现一个非常不错的数据可视化库go-echarts,特分享给大家。 介绍 在 Golang 这门语言中,目前数据可视化的第三方库还是特别少,go-echarts的开发就是为了填补这部分的空隙。Echarts是百度开源的非常优秀的可视化图表库,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。也有其他语言为其实现了相应语言版本的接口,如 Python 的pyecharts,go-echarts 也是借鉴了pyecharts的一些设计思想。 特性 简洁的 API ...阅读全文

简书 2020-12-15 16:37:34 机器铃砍菜刀s

101个帮助你成为更好Web开发程序员的技巧

对于像你我这样的开发人员来说,进入IT行业会带来很多挑战和机遇。有很多东西要学习和掌握。我们有React,Vue,Angular和Svelte之类的JavaScript框架。我们有静态站点生成器,即JAMstack,无服务器,Git,并且还在继续增加更新中。尽管广泛的Web开发生态系统适合每个人,但要跟踪不断变化的技术确实非常困难。不仅如此,还有很多问题需要你来回答:我想在哪里工作,和谁一起工作?我想成为一名全职开发人员吗?是签约永久性工作还是做自由职业者?我该如何发展自己并学习掌握新技能? 我...阅读全文

简书 2020-12-15 16:32:57 开跑车的程序员

2020年快过完了,要学习的编程语言和框架还没有学完!那还要学吗?

话不多说,直接上正片,小编推荐的7种编程语言和框架: 推荐给充满学习激情的程序员和准程序员们 image.png 为你的应用程序选择合适的编程语言或框架不仅会影响开发速度和开发周期,而且还会影响你未来职业发展的广度。 在这里,我将分享 2021 年你还能继续学习了解的 —— 8 种编程语言,并且在未来几年与你息息相关。如果你还在为前端或后端选择哪一门编程语言而苦苦挣扎或热情于此,那么这篇文章非常适合你。 1. Java/Kotlin —— Spring 框架 image.png 很多人可能会问为...阅读全文

简书 2020-12-15 16:32:54 键盘灬鼠标