首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
李哥聊架构
获赞
14
粉丝
20
关注
0
看过 TA
227
男
未填写教育信息
2011
Java
IP属地:四川
关注我!持续分享10年Java和Go大厂经验!
私信
关注
拉黑
举报
举报
确定要拉黑李哥聊架构吗?
发布(9)
评论
刷题
李哥聊架构
关注TA,不错过内容更新
关注
2023-07-30 21:49
未填写教育信息 Java
万字长文带你吃透golang channel
Go语言是一门支持并发编程的语言,它提供了一种特殊的数据类型:channel,用于在不同的goroutine之间传递数据和同步。channel可以让我们编写出简洁、高效、安全的并发程序。本文将介绍channel的基本概念和语法、特性和原理、最佳实践和高级用法,希望能够帮助你更好地理解和使用channel。 一、channel的基本概念和语法 channel是一种引用类型,它可以用来在两个或多个goroutine之间传递数据。 1. 声明一个channel 要使用channel,首先需要声明,channel的声明方式如下: var ch chan int // 声明一个int类型的channel...
0
点赞
评论
收藏
分享
2023-07-19 14:14
未填写教育信息 Java
golang 中 []byte 和string如何转换最快?
在 golang 中,我们经常需要对 []byte 和 string 进行转换,比如读写文件、处理网络数据、编码解码等场景。通常情况下,这不会成为系统的性能瓶颈,但是在某些极致情况下,也可能成为拖慢性能的关键因素。那么,如何选择合适的转换方式,以达到最快的速度呢? 一、标准转换 标准转换是最简单也最常用的转换方式,就是使用 []byte(s) 和 string(b) 这样的语法来进行转换,其中 s 是一个字符串,b 是一个字节切片。这种方式的优点是语法简洁,易于理解,而且可以保证类型安全和数据不变性。但是,这种方式的缺点是可能会涉及内存分配和复制操作,因为字符串在 golang 中是不可变的,...
0
点赞
评论
收藏
分享
2023-07-10 23:05
已编辑
未填写教育信息 Java
只会用+拼接字符串吗?你该重学一下Go了!
在go语言中,字符串是一种不可变的字节序列。字符串拼接是指将两个或多个字符串合并成一个新的字符串的过程。go语言提供了多种字符串拼接的方式,本文将介绍其中的几种,并进行基准测试比较。 一、直接使用+进行拼接 这是最简单和直观的方法,只需要使用+运算符将两个或多个字符串相加即可。例如: s1 := "Hello" s2 := "World" s3 := s1 + " " + s2 // s3 = "Hello World" 这种方法的优点是易于理解和使用,不需要引入额外的包或函数。但是,这种方法的缺点是效率低下,因...
0
点赞
评论
收藏
分享
2023-07-09 10:24
未填写教育信息 Java
5000 字带你精通golang sync包
golang是一门支持并发编程的语言,它提供了goroutine和channel等机制来实现多个任务的并行执行。但是,并发编程也会带来一些挑战,比如数据竞争、死锁、内存泄漏等。为了解决这些问题,golang提供了一个标准库sync,它包含了一些高性能的同步原语,可以帮助我们更好地管理并发状态和资源。 一、sync.Mutex 相信大多数同学都有线上抢购东西的经历,在开始抢购的一瞬间,有大量的用户都发起了请求,形成了不同的线程,对同一个商品进行抢购。现在我们来模拟一下这个场景,假设待抢购的商品是一款网红电视机,库存为1000台,在开始抢购的一瞬间,有刚好1000人点击了购买按钮,按照预期,抢购完...
0
点赞
评论
收藏
分享
2023-07-07 22:41
已编辑
未填写教育信息 Java
golang中的defer使用方式及实战技巧
golang是一门简洁、高效、并发友好的编程语言,它提供了许多独特的特性,让程序员可以更容易地编写优雅和健壮的代码。其中一个特性就是defer语句,它可以让我们在函数返回之前执行一些清理或收尾的操作,比如关闭文件、释放资源、解锁互斥量等。defer语句的语法很简单,就是在要延迟执行的函数或方法前加上关键字defer,如下所示: func main() { f, err := os.Open("test.txt") if err != nil { log.Fatal(err) } defer f.Close() // 延迟关闭文...
0
点赞
评论
收藏
分享
2023-07-10 23:03
已编辑
未填写教育信息 Java
Go基准测试的常见函数
上面讲了基准测试的方法及常用参数的详细说明,但是为了获取更准确的测试信息,了解代码的运行性能,我们常常会配合一些函数来获得更精准的数据。在本文中,我们将介绍testing包中的几个常用的基准测试函数,以及它们的作用和用法。 一、ResetTimer ResetTimer函数用于重置基准测试的计时器。它会将已经消耗的时间和内存分配次数清零,重新开始计时和统计。这个函数通常用于在基准测试函数中排除一些初始化或准备工作的时间和内存开销,使得基准测试的结果更加准确和公平。 例如,我们想要测试一个排序函数的性能,我们可以先生成一个随机的切片作为输入,然后调用ResetTimer函数,再调用排序函数: f...
0
点赞
评论
收藏
分享
2023-07-10 23:02
已编辑
未填写教育信息 Java
benchmark参数详解
在上面的示例代码中,我们编写了一个简单的基准测试代码,并解读了测试结果。但实际工作中,仅仅按照前面的当时进行基准测试是不够的,我们需要结合cpu等信息,获取更加详细的基准测试结果,准确评估代码性能。go benchmark提供了丰富的可选参数来辅助我们获取更加准确的基准测试信息。 一、bench -bench 参数支持传入一个正则表达式,匹配到的用例才会得到执行,格式如下: go test -bench=<pattern1>|<pattern2> path/to/file_test.go pattern可以同时指定多个,bench第二个参数为测试文件地址。例如只运行以...
高性能Golang编程
0
点赞
评论
收藏
分享
2023-07-10 23:01
已编辑
未填写教育信息 Java
go 基准测试初体验
基准测试(Benchmark)是Go语言中用于衡量代码性能的重要工具。通过编写基准测试函数,并使用testing.B提供的方法来记录执行时间和其他指标,我们可以准确地评估代码的性能表现。在开发过程中,合理使用基准测试可以帮助我们优化代码,提升程序的性能。本文将详细介绍Go的基准测试的基础用法,并通过案例说明如何编写和运行基准测试。 一、基准测试的概念 基准测试是一种用于衡量代码性能的测试方法。它通过多次运行同一个函数或代码块,并统计执行时间和内存消耗等指标,来评估代码的性能表现。 二、编写一个基准测试代码 package main import ( "testing" ...
高性能Golang编程
0
点赞
评论
收藏
分享
2023-06-25 15:13
未填写教育信息 Java
做了很多年的Java,阴差阳错地后面转了Golang,现在对Java已经有三分陌生。Java和Go各有各的好,但是我想知道大家现在这两门语言怎么看?#java##golang#
ggboy会出手:
java主打一个卷,然后很难脱颖而出,我也是java转了go感觉约面更多了,而且从招聘看go感觉在慢慢兴起,也可能我比较想做云
0
点赞
评论
收藏
分享
1
关注他的用户也关注了:
牛客网
牛客企业服务