1 2 3 4 5 ··· 33 下一页

2024年7月24日

golang channel 和 mutex 及原子操作 用于并发控制的性能对比

摘要: 场景: 对同个数加 10w 次,看耗费时间,这里没有用 benchmark 测试,在意的请略过。 以下是测试代码: package main import ( "fmt" "sync" "sync/atomic" "testing" "time" ) func TestCount(t *testin 阅读全文

posted @ 2024-07-24 10:09 进击的davis 阅读(1) 评论(0) 推荐(0) 编辑

2024年7月23日

golang 中的并发控制与优雅结束

摘要: 目录并发控制通过 channel 实现信号通知自定义简单的协程池通过现有的 tunny/ants 协程池并发协程的优雅结束for-rangefor-select 提到 golang 并发,就可以联想到下列关键词: goroutine channel sync.WaitGroup sync.Mutex 阅读全文

posted @ 2024-07-23 15:39 进击的davis 阅读(7) 评论(0) 推荐(0) 编辑

2024年7月22日

golang 值接收者和指针接收者

摘要: 代码示例 先看个代码: package main import ( "fmt" "testing" ) func TestValRecv(t *testing.T) { var a animal = dog{"五红犬"} a.eat() a.sleep() var b animal = &dog{" 阅读全文

posted @ 2024-07-22 16:17 进击的davis 阅读(1) 评论(0) 推荐(0) 编辑

2024年7月13日

golang channel 的众多应用场景123

摘要: 目录1.应用场景2.应用场景示例2.1 并发控制2.2 管道 | 范围迭代 | 数据传输2.3 数据传递 -> 生产者-消费者模型2.4 互斥同步2.5 信号通知2.6 定时器 我们知道 go 中有个很重要的数据结构叫做 channel-通道,通过其特性,我们可以完成很多功能,自然就对应到很多应用场 阅读全文

posted @ 2024-07-13 14:48 进击的davis 阅读(4) 评论(0) 推荐(0) 编辑

go 结构体不同的字段顺序对内存的影响

摘要: 这里主要涉及到结构体内存分配的问题,如下测试: package main import ( "fmt" "unsafe" ) func main() { fmt.Printf("A size: %d\n", unsafe.Sizeof(A{})) // 32 fmt.Printf("B size: 阅读全文

posted @ 2024-07-13 10:44 进击的davis 阅读(1) 评论(0) 推荐(0) 编辑

2024年7月11日

golang sync.Pool 的基本原理

摘要: 目录1.源码解读注意开放的 APIPut()Get()pin() && pinSlow()Pool.getSlow(pid int) anyPool结构相关结构体poolCleanup()2.更多 sync.Pool 包寥寥不过300行代码,却可以为我们提供类似对象池的功能,减少了对象的重复创建于销 阅读全文

posted @ 2024-07-11 11:34 进击的davis 阅读(4) 评论(0) 推荐(0) 编辑

2024年7月4日

golang 内存逃逸 你应该知道的知识

摘要: 逃逸分析 目录1.为什么要了解内存逃逸2.什么是逃逸分析3.内存逃逸的影响 - 性能和稳定性4.内存逃逸的原因5.内存逃逸的检测6.如何避免内存逃逸7.内存逃逸代码示例 原文链接: 一文弄懂 Golang 中的内存逃逸 1.为什么要了解内存逃逸 - 内存逃逸是 Go 语言编程中一个特别需要注意的问题 阅读全文

posted @ 2024-07-04 16:15 进击的davis 阅读(12) 评论(0) 推荐(0) 编辑

2024年6月28日

golang 中四种结束子协程的方法

摘要: 在 golang 中,怎样更好的控制子协程的退出呢,这里说说可用的几种方法: channel context sync.WaitGroup runtime.GoExit() 具体见测试代码: package main import ( "context" "log" "math" "math/ran 阅读全文

posted @ 2024-06-28 10:55 进击的davis 阅读(3) 评论(0) 推荐(0) 编辑

2024年4月2日

保姆级教程告诉你 grpc-go 的服务端客户端实现

摘要: 目录1.proto环境准备2.编写 IDL3.生成pb.go, grpc_pb.go4.实现服务端5.实现客户端6.测试 以下示例来自于个人整理,大佬轻喷。 示例的项目目录: 1.proto环境准备 这里的环境准备主要就是以下三点: protoc protoc-gen-go protoc-gen-g 阅读全文

posted @ 2024-04-02 17:40 进击的davis 阅读(179) 评论(0) 推荐(0) 编辑

2024年3月27日

elasticsearch esrally 性能测试实操

摘要: 目录准备数据docker 测试环境准备正式测试 最新在用 esrally 测试 es 的性能,今天把相关操作记录下。本人非专业测试,各位大佬请轻喷。 关于 esrally 的文档,请移步:esrally测试 esrally 是个 elastic 官方的测试工具,可以对 es 进行压力测试。其运行对环 阅读全文

posted @ 2024-03-27 15:08 进击的davis 阅读(135) 评论(0) 推荐(0) 编辑

2024年3月26日

elasticsearch 组件基于单机的多实例集群

摘要: 声明: 本示例主要作为测试用,生产请慎重。 最近公司突发奇想,想让我们搞个单机多实例的 es 的集群,看看其性能咋样。通常来说,es 作为搜索引擎,应用场景不乏日志分析、网络安全、搜索引擎等,有时也会用作日志数据库使用,毕竟其出色的搜索查询性能,不是同等量级 关系型数据库可以比拟的,主要还是因为其 阅读全文

posted @ 2024-03-26 10:15 进击的davis 阅读(44) 评论(0) 推荐(0) 编辑

2024年3月23日

归并排序、快排、堆排序的比较

摘要: 目录算法比较复杂度稳定性应用场景算法实现归并排序快速排序堆排序冒泡排序测试数据量100数据量10w 个人理解,不同见解可以一起讨论。 在日常排序算法中,小数据量下,用啥区别都不大,但是数据量起来后,性能差异就会很大了。 而且在常用的大数据量的排序算法中,主要就是归并、快排和堆排,下面从几个方面一起看 阅读全文

posted @ 2024-03-23 18:04 进击的davis 阅读(36) 评论(0) 推荐(0) 编辑

2024年3月22日

Redis 通过 info 命令查看不同分区的信息

摘要: 目录分区info serverinfo clientsinfo cpuinfo memoryinfo persistenceinfo replicationinfo statsinfo keyspaceinfo cluster 连上 redis 后,通过 info 命令,可以得到以下信息,基本就表示 阅读全文

posted @ 2024-03-22 16:42 进击的davis 阅读(45) 评论(0) 推荐(0) 编辑

elasticsearch 6.8 常用数据字段类型

摘要: 在 es 中,字段类型主要有以下几种: Arrays Binary datatype Range datatypes Boolean datatype Date datatype Geo-point datatype Geo-Shape datatype IP datatype Keyword da 阅读全文

posted @ 2024-03-22 14:57 进击的davis 阅读(35) 评论(0) 推荐(0) 编辑

2024年3月21日

elasticsearch ilm 再学习与实战

摘要: 目录了解应用其他脚本 了解 如果你对 es 有一定的使用经验,相信应该听过 ilm 机制,没错,就是 es 的索引生命周期管理机制。 在实际项目应用中,合理应用 ilm 机制可以解放我们的双手,不用手动去管理索引的新建、切分,只需要内部机制处理索引,如: 1.最新的数据可读可写 2.次新的数据仅可读 阅读全文

posted @ 2024-03-21 16:01 进击的davis 阅读(116) 评论(0) 推荐(0) 编辑

2024年3月20日

golang 中 channel cap设为1原理 | 有无缓冲的channel

摘要: 目录1.无缓冲的channel2.有缓冲的channel总结 在golang中,如果涉及消息传递或者是并发控制等,我们常常用到 channel,channel的具体原理这里不讨论,今天主要看看有无缓冲以及缓冲值的设计。 1.无缓冲的channel 联系 channel 的数据结构 mchan 可知, 阅读全文

posted @ 2024-03-20 23:40 进击的davis 阅读(23) 评论(0) 推荐(0) 编辑

golang 多返回值的实现原理-转载

摘要: 之前一次面试时,面试官问到 你知道golang的多返回值的实现吗,一脸懵逼,平时主要注重项目应用开发,对这块确实没关注,答得不好,各位大佬,以后建议也加强下基础哦。 今天看看 golang 中多返回值的实现。 可以简单认为 c 中多返回值的实现,其实就是通过寄存器将返回参数以指针形式传入传入参数中, 阅读全文

posted @ 2024-03-20 23:20 进击的davis 阅读(108) 评论(0) 推荐(0) 编辑

golang vs python 应用项目语言选择

摘要: 目录1.语言选择2.python语言特点及应用场景2.1 语言特点1.简单2.易于学习3.自由且开放4.丰富的库5.互动模式6.跨平台性7.可扩展8.数据库9.可嵌入10.高级语言2.2 应用场景Python在系统编程中的应用Python在网络爬虫方面的应用Python在人工智能、科学计算中的应用P 阅读全文

posted @ 2024-03-20 23:02 进击的davis 阅读(128) 评论(0) 推荐(0) 编辑

2024年3月18日

golang fasthttp服务端的简单实现

摘要: 使用示例: package main import ( "github.com/buaazp/fasthttprouter" "github.com/valyala/fasthttp" "log" ) func main() { // 创建路由 r := fasthttprouter.New() r 阅读全文

posted @ 2024-03-18 10:59 进击的davis 阅读(78) 评论(0) 推荐(0) 编辑

2024年3月15日

golang 随机数组的性能对比测试

摘要: 最近需要用到随机数,但在随机数的生成方面遇到些问题,如加了 seed 后反而生成的数组是固定的,没有加是随机的,后面查资料了解到,如果 seed 值是一样的,序列中的值就固定的,而不加 seed 时,每次的都是随机的,后面想到如果用来做负载均衡呢,性能又如何。 下面是源码: package benc 阅读全文

posted @ 2024-03-15 11:29 进击的davis 阅读(18) 评论(0) 推荐(0) 编辑

1 2 3 4 5 ··· 33 下一页

导航