自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

李昊轩的博客

兼听则明 从善如流

  • 博客(457)
  • 资源 (5)
  • 收藏
  • 关注

原创 每期一个小窍门: Graphviz 配合 pprof 分析 go 性能问题

graphviz (英文:Graph Visualization Software的缩写)是一个由AT&T实验室启动的开源工具包,用于绘制DOT语言脚本描述的图形。graphviz也提供了供其它软件使用的库。graphviz是一个自由软件,其授权为Eclipse Public License。看 fmt.print 被我们找到了。采样过后会自动跳转到浏览器。

2023-09-06 17:03:54 188

原创 D2: 基于go实现的一个DSL 绘图工具 高手效率神器

D2 是一种声明式流程图的领域特定语言 (DSL),声明式只需要描述你想要的流程图即可,它就会自动生成对应的图像。

2023-08-19 15:08:48 283

原创 通过生产环境流量录制/线下回放 配合基于云原生的灰度发布 实现保质保量的持续集成

流量回放/复制, 从测试的角度, 本质是:通过把线上的真实流量复制到线下环境,解决测试环境模拟不够真实,或覆盖不够全面的问题。

2022-08-15 10:04:57 751 1

原创 深入理解k8s operator 机制

Kubernetes 提供了一种扩展机制,允许我们定义自己的资源类型,称为自定义资源。在集群上运行一个 pod 来监控某种类型的自定义资源并基于它管理其他资源,这就是 Operator模式。

2021-12-07 16:33:43 5020

原创 通过PowerMockito来模拟时钟回拨, 验证改进版雪花算法是否起效

改进版雪花算法详见上篇传送门简单说明: 通过PowerMockito来mock雪花算法中获取时间的算法, 从而实现伪造时间覆盖.测试类import org.junit.Assert;import org.junit.Before;import org.junit.Test;import org.junit.runner.RunWith;import org.powermock.api.mockito.PowerMockito;import org.powermock.core.classlo

2021-04-21 17:56:15 2651 3

原创 硬核讲解JDK1.8的ConcurrentHashMap为何放弃分段锁改用CAS + synchronized

jdk1.7分段锁的实现和hashmap一样,在jdk1.7中ConcurrentHashMap的底层数据结构是数组加链表。和hashmap不同的是ConcurrentHashMap中存放的数据是一段段的,即由多个Segment(段)组成的。每个Segment中都有着类似于数组加链表的结构。关于SegmentConcurrentHashMap有3个参数:initialCapacity:初...

2020-04-15 04:21:03 38592 13

原创 模型的训练三阶段 Pretraining SFT RLHF

人工先介入,通过对同一个Prompt生成答案的排序来训练一个Reward Model。再用Reward Model去反馈给SFT Model,通过评价生成结果的好坏,让模型更倾向于生成人们喜好的结果。最终生成的Model叫做RLHF model。给模型海量的文本进行训练,99%的计算量花费在这个阶段,输出的模型叫做base model,能做的事情就是像成语接龙一样不断的完成一段话。人工介入,给出高质量的文本问答例子。经过问答式训练的Model叫做SFT model,就可以正常回答人的问题了。

2024-03-25 01:08:12 288

原创 CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate‘.解决方案 亲测有效

【代码】CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate‘.解决方案 亲测有效。

2024-03-24 16:49:52 209

原创 Centos开机网卡自启动失败

关闭 NetworkManager 服务。重启就会发现网卡已经可以自动启动了。

2024-02-23 15:48:03 437

原创 虚拟机的四种网络模式对比

nat网络地址转换nat网络桥接内网模式仅主机。

2024-02-23 13:32:47 293

原创 每期一个小窍门: go不同项目之间的引用

那么你有一个包moda, 放在/home/aio/moda下面, 然后你想用go mod, 那么会执行go mod init A包名。然后你的modb也需要用go mod, 所以你执行go mod init modb。然后你就得到了go.mod文件。不出意外的话, 应该就引用到了。

2024-01-28 13:02:54 183

原创 Mac os docker login : error getting credentials

2、修改 $home/.docker/config.json 的配置,删除 “credsStore”: “desktop” 或者 将值改为"osxkeychain"第二步的 credsStore 是 docker 的存储身份凭证的设置。osxkeychain 是钥匙串。1、修改钥匙串的 docker 关键字相关设置,解决访问策略问题, 允许所有应用程序访问。但遇到了新的问题,重启 docker 后,还是会恢复这个配置,目前。

2024-01-27 15:17:20 518

原创 golang视角下 protobuf 的安装 从proto文件到go文件

Protocol Buffers(protobuf)是一种由Google开发的轻量级、高效的数据序列化格式。它设计的目的是为了在不同系统之间进行数据交换,同时保持数据的结构化和高效传输。

2024-01-25 18:27:01 588

原创 QA 这个职位在中国有前途么?转自知乎

纯手工的测试工程师逐渐被削弱地位和裁减. 但是他们不会灭绝, 依然有不少的领域或者基础的工作是要靠大量的纯手工测试来保证的. 取而代之的, 是一种广被欢迎的测试开发工程师. 他们不仅可以做手工测试, 也可以做测试技术的应用. 所以他们能发现更深层的问题, 和研发的思路也接近. 同时在质量保证上有自己的独特经验和能力. 他们的主要技能是自动化, 性能分析 业务分析. 用于解决日常的测试需求. 他们也会开发适当的测试工具.使用qtp,selenium,watir,或者是其他的技术框架来自动化测试工作的。

2024-01-05 11:16:30 433

原创 每期一个小窍门: 重置kafka 消费者的偏移量

【代码】每期一个小窍门: 重置kafka 消费者的偏移量。

2024-01-03 17:08:08 435

原创 每期一个小窍门: mysql的四个系统库的作用

“information_schema”是 MySQL 系统自带的数据库,主要保存 MySQL 数据库服务器的系统信息,比如数据库的名称、数据表的名称、字段名称、存取权限、数据文件所在的文件夹和系统使用的文件夹,等等。“performance_schema”是 MySQL 系统自带的数据库,可以用来监控 MySQL 的各类性能指标。“sys”数据库是 MySQL 系统自带的数据库,主要作用是,以一种更容易被理解的方式展示 MySQL 数据库服务器的各类性能指标,帮助系统管理员和开发人员监控 MySQL

2023-10-17 23:28:15 169

原创 每期一个小窍门: 一文助你理解火焰图

让我们从 perf 命令(performance 的缩写)讲起,它是 Linux 系统原生提供的性能分析工具,会返回 CPU 正在执行的函数名以及调用栈(stack)。通常,它的执行频率是99Hz(每秒99次),如果99次都返回同一个函数名,那就说明 CPU 这一秒钟都在执行同一个函数,可能存在性能问题。上面的代码中,perf record表示记录,-F 99表示每秒99次,-p 13204是进程号,即对哪个进程进行分析,-g表示记录调用栈,sleep 30则是持续30秒。

2023-09-06 16:35:07 161

原创 xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at:

Mac 下执行命令时,报错。

2023-08-31 16:18:15 374

原创 每期一个小窍门: mac 重装 homebrew

【代码】每期一个小窍门: mac 重装 homebrew。

2023-08-31 16:13:51 160

原创 go: 高性能json工具 easyjson 简介

【代码】go: 高性能json工具 easyjson 简介。

2023-08-27 13:40:48 679

原创 解决 go mod tidy 加载模块超时

如果go mod tidy 加载模块超时。

2023-08-23 13:48:36 1264

原创 Go:测试框架GoConvey 简介

GoConvey是一个完全兼容官方Go Test的测试框架,一般来说这种第三方库都比官方的功能要强大、更加易于使用、开发效率更高,闲话少说,先看一个example:看着复杂, 一层层的嵌套,如果你使用IDE的话你可以点到源码里面看一下其方法注释,其实已经说的非常清楚了,这里摘取部分看一下:这个用法相对简单了,Convey定义了一个局部的作用域,在这个作用域里面我们可以定义变量,调用方法,然后重复继续这个操作,low-level的Convey会继承top-level的变量。了解之后,我们来扩展一下这个例子

2023-08-21 21:52:45 1063 1

原创 每期一个小窍门: 自己实现 go语言的对象pool 对比自带的 sync.pool 区别分析

对象池在一些特定情况下 可以提高我们程序运行的效率(如果你用的位置合适)首先我们自己手写一个对象池运行结果:前十个可以正常取出正常放回还可以再正常取出但是只有十个 如果连续取第十一个会 timeout。

2023-08-20 10:00:00 63

原创 每期一个小窍门: go 实现单例

go语言实现单例很简单 不需要类似java的double check 双重锁这种。通过 sync.Once 的once.Do() 只运行一次来实现。

2023-08-19 10:30:00 53

原创 每期一个小窍门: go 中 不确定的select语句

由于 goroutine 的执行顺序不确定,所以这里也不确定到底是该输出 42 43 还是 The default case!,可以用下面的脚本执行 5000 次看看(大家把下面的脚本保存成 for.sh,然后 chmod a+x for.sh,接着 ./for.sh)然后到 for.txt中看输出,大部分都是 default,很小部分是 42 和 43。所以他还是会优先的选择 case 去执行,只是我们不要写这种 select,一旦写了,我们大抵要为这种不确定性付出代价。

2023-08-15 23:24:40 67

原创 每期一个小窍门: 通过 两个小例子 玩转go channel

通道类似一个没有持久化功能的, 完全基于内存的, 消息队列

2023-08-15 00:15:32 171

原创 编程小窍门: 一个简单的go mutex的小例子

【代码】编程小窍门: 一个简单的go mutex的小例子。

2023-08-14 22:37:18 471

原创 深入理解 go协程 调度机制

Go 启动的时候,会有一个守护线程 G0,计数,会记录每个 Processor 运行完成的协程的数量,如果发现某一个 Processor 在一段时间内没有发生变化(阻塞),就会往这个协程的任务栈里面插入一个特殊的标记,当协程运行遇到非内联函数,就会读到这个标记,将自己中断下来,插到等待协程队列的队尾,切换到其他队列的队尾。内核线程是由CPU直接调度,如果一个用户线程对应一个内核线程,调度效率来看肯定是快于多个用户线程对应一个内核线程的。当协程被中断的时候,它在寄存器中的运行状态,也会保存在协程对象中;

2023-08-14 14:08:58 545

原创 每期一个小窍门: 玩转go mod 命令

这个工具类的 package name = util666。这个工具类的 物理路径是 = test666/util。可以使用下面两个命令来确保依赖正常加载。挎包调用需要大写 方法/变量 首字母。test666 是自身的mod名称。当然 你也可以使用别名来调用。main中引用了 一个工具类。

2023-08-13 21:58:35 241 2

原创 每期一个小窍门: go处理异常的一些小窍门

判断异常时, 异常逻辑在前, 即使有复杂业务逻辑判断, 也同样是扁平结构。go设计者更偏向于C的error处理方式, 快速失败是更简单高效的。我们可以利用error接口和多返回值来实现异常传递。error可以利用变量来复用 等价判断。没有类似java的exception。

2023-08-13 13:05:04 122 1

原创 每期一个小窍门: go 的小接口多组合思想

go中的接口更加灵活。

2023-08-12 21:51:42 108 1

原创 每期一个小窍门: go语言的两种接受者

在 Go 语言里,方法和函数只差了一个,那就是方法在 func 和标识符之间多了一个参数。我们可以看到,方法是在 func 和 notify 之间多了一个 user 类型的参数 u ,这个 u 就称作接收者。

2023-08-12 16:51:11 166

原创 每期一个小窍门: go中通过函数式编程, 将目标方法计时

【代码】每期一个小窍门: go中通过函数式编程, 将目标方法计时。

2023-08-09 23:30:45 65

原创 每期一个小窍门: 关于 go 的 iota 计数器

准确的说:iota出现在const语句块中的第几行,那么它就是几,当然这里的行数的索引也是以0为开始。因为iota一般出现在const语句块的第一行,不少的初学者会将之认为iota就是0,这是不对的。const中每新增一行常量声明将使iota计数一次,当然前提是iota在const中出现。iota是常量的计数器,可以理解为const定义常量的行数的索引,注意是行数。

2023-08-08 17:48:46 111

原创 每期一个小窍门: 获取全部带有自定义方法注解的类和方法

比如我自定义了MqListener注解。我就需要获取全部被注解方法。启动时自动加载所有消费者。

2023-08-08 17:42:07 162

原创 mysql 指定线程数 并行查询单表

在MySQL中,并行查询是一个非常重要的概念,可以加快查询速度。下面我们将介绍如何在MySQL中使用并行查询。在MySQL中,我们可以根据需要调整并行查询的进程数。总之,在MySQL中使用并行查询可以极大地提高查询速度,但需要合理选择并行查询进程数,并注意系统硬件资源的使用情况。然后,我们可以在查询中使用并行执行选项来启用并行查询。这条查询语句可以同时启动4个进程来查询employee表中的数据,从而大大加快查询速度。当然,如果您的系统硬件配置不足,那么开启太多的并行查询进程可能会拖慢系统的响应速度。

2023-07-18 10:49:34 948

原创 Mysql 不同版本online DDL的处理策略

关于DDL的ONLINE和OFFLINE,通俗的讲:ONLINE:在执行DDL时允许DML操作OFFLINE:在执行DDL时不允许DML操作在生产上的场景就是业务正在运行,DBA需要在表中添加新的字段同时不能影响该表的写操作就是ONLINE DDL。也就是说,所谓的ONLINE和OFFLINE更准确是针对 ALTER TABLE 语句。

2023-07-12 10:11:08 319

原创 每期一个小窍门: 通过JavaPoet 生成泛型类

最近使用javapoet 遇到了个小问题。

2023-04-03 11:15:46 366 1

原创 每期一个小窍门: java线程池的几种任务拒绝策略

当线程都满了,且队列也满了的情况下,会调用该方法来拒绝任务,有多种策略可以选择,或者自定义实现

2022-12-05 17:55:12 6234 1

原创 macbook m1 无法启动mysql服务

macbook m1 无法启动mysql服务,提示ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘解决方法:

2022-11-09 17:38:19 1473 2

apache-doris-1.0.0-incubating-bin.tar.gz

apache-doris-1.0.0-incubating-bin.tar.gz apache-doris-1.0.0-incubating-bin.tar.gz apache-doris-1.0.0-incubating-bin.tar.gz 看不惯别人收费的 开源的东西 收钱好意思?

2022-06-01

dockerpackage.zip

解压后为两个文件 一个为mycat1.6.6 的linux安装包, 一个是mycat的dockerfile

2021-06-01

Sharding-Proxy

Mysql 分库中间件 Sharding-Proxy 下载

2021-02-23

elk 5.6.4 三件套

elk三件套

2020-10-27

HW7_HaoxuanLi.rar

小作业 自己留作备用

2019-12-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除