- 博客(372)
- 资源 (24)
- 收藏
- 关注

原创 管道流量采集实验指导书
管道流量采集实验指导书管道流量采集实验指导书一、 实验目的二、 实验环境及设备三、 设备简介3.1 RS-485现场总线3.2 MODBUS协议3.3 水仓系统3.4 KJ402-F1矿用本安型水文检测分站3.5 GLC30/50矿用磁漩涡流量传感器3.6 FD15直流稳压电源四、 实验原理4.1 发送帧4.2 接收帧include ...
2018-07-01 14:15:27
927
原创 MySQL General Log
MySQL主从复制:https://blog.youkuaiyun.com/a18792721831/article/details/146117935Binlog 的特点是只记录数据修改语句,有时可能需要记录客户端执行的每条SQL语句,General Log 会记录所有的SQL。
2025-03-28 18:01:14
448
原创 MySQL Binlog
Binlog 包含描述数据库修改的语句,如 create , update 等数据变更语句,不会记录类似 select , show 等不修改数据的语句。如果想记录所有的 SQL 语句,可以使用 General Log。
2025-03-28 17:59:45
996
原创 Go-知识-fmt
fmt 实现了格式化输出,并提供了相应的占位符。数值类型:整数类型,浮点类型字符类型指针类型布尔类型其他在java等一些语言中,输出调用自动从Object继承的ToString方法,将对象信息转为字符串。在go里面也有类似的接口Stringer接口定义的String接口就是默认的结构体转字符串的调用方法除此之外,还有一个 接口GoStringer定义的GoString用于适配%#v才会调用。
2025-03-08 16:14:44
830
1
原创 MySQL主从复制
MySQL主从复制是将来自一个MySQL数据库实例(Master)的数据复制到一个或者多个MySQL数据库实例(Slave)。主从复制是MySQL的核心功能,使用主从复制可以完成MySQL的数据同步,备份,高可用,迁移等工作。整个MySQL主从复制操作主要由3个线程完成。一个线程(dump线程)在Master节点上,SQL线程和 I/O线程在 Salve 节点上。Slave节点执行 change master to 连接上 Master 节点,连接上Master 节点后,发送Binlog 的位点信息。
2025-03-08 16:13:29
1119
原创 本地化部署 deepseek-r1
最近 deepseek 太火爆了,问个问题经常就服务端不可用了。但是回答的确实很棒。如果能自己给自己部署一个就好了。目标是部署 deepseek-r1-70B完整的是 671b ,太大了,本地资源吃不消的。参数越多,回复的质量越高,但是也越慢,并且消耗的资源也越多。参数越少,回复的质量就越低。
2025-02-13 16:41:51
915
原创 deepseek-r1 训练流程
具体来说,对于推理数据,沿用阶段2的规则。deepseek-r1模型并不是直接由deepseek-v3通过强化学习得到的,而是在deepseek-v3的基础上,经过两轮的监督微调(SFT,Supervised Fine-Tuning)后,再通过强化学习得到的。deepseek-r1:对标openAI的GPT-o1模型,是在deepseek-v3的基础上,通过强化学习,将思维链(CoT)内置到模型中。该模型不是最终的deepseek-r1模型,是实验中的一个半成品,验证了强化学习对模型推理能力提升的有效性。
2025-02-13 16:40:52
954
原创 Go-知识-flag
定义flag有两种方式:flag.StringVar(&Conf,"conf","./conf/captain.conf","配置文件")自定义flag,需要实现flag.Value接口比如bool需要注意必须是指针,因为值类型没法修改外部变量的值。直接调用CommandLine的Var方法,不管是flag.Xxx还是flag.XxxVar还是自定义的flag.Var都是调用了CommandLine的Var方法//参数的名字不能以-开始或者包含=
2025-01-18 18:35:07
919
原创 Go-知识 版本演进
梳理一下go语言发展历史,可以看到一个编程语言,从发布第一版,到快速迭代,到标准规范,到逐渐趋于稳定,到对更多的os的支持,到性能的不断提升和优化。梳理一遍go语言发展历史,可以对go语言的过去,当下和未来有了更清晰的认知。算算日子,go1.24.0差不多在2025-02到来,不知道又会有哪些优化呢go1.24.0包含的变更小修订crypto/aes。
2025-01-18 18:33:51
1078
原创 接入 deepseek v3 教程--免费500百万token至25-2-1日
接入 deepseek v3 教程–免费500百万token至25-2-1日。
2025-01-02 21:58:52
22804
2
原创 讯飞机器翻译接入
demo给的是用HttpConnection实现的,我用 hutool 进行了改写,这样更加符合整个工程的实现。实际上还是挺快的,只要你的信息正确,基本上秒过。增加配置页网址点击使用默认浏览器打开的能力。这里面有aksk信息,一定保存好。并且很贴心的给了api文档地址。如果是新用户,会有1年的免费。接着处理配置页保存和读取配置。通过后,可以领取免费大礼包。等注册并实名后,打开链接。接着ui增加对外暴露接口。需要等待时间进行审核。
2025-01-02 21:41:17
445
原创 Go-知识 模板
fmt.Printf可以做到格式化输出,这对于简单的例子已经足够,但是有时候还需要更加复杂的输出格式,甚至需要将格式与代码分离开来。这个时候就可以使用模板(Template)。如果 x 为真,返回 y,否则返回 x如果 x 为真,返回x ,否则返回 y调用函数,函数返回值限定为 1个或者2个(第二个必须是 error)如果传递的参数与函数定义的不匹配,或者返回的 error 不为 nil ,停止执行{{html}}转义文本中的 html 标签。
2024-12-30 20:10:54
400
原创 Go-知识依赖管理
在 go.mod 文件中通过指令声明 module 信息,用于控制 Go 命令行工具进行版本选择。module: 声明 module 的名称require: 声明依赖及其版本号replace: 替换 require 中声明的依赖,使用另外的依赖及其版本号exclude: 禁用指定的依赖retract: 标记有问题的版本go 标记当前模块开发所用的 Go 语言版本。module 用于指定 module 的名字,比如, module 的名字直接决定了引用者的 import 路径。
2024-12-03 12:01:17
744
原创 Go-知识依赖管理2
在 GOMODULE 模式下,如果本地没有缓存,那么 go 命令将从版本控制系统中拉取模块,比如 github.com,bitbucket.org或golang.org 等。面对这么多的版本控制系统,考虑到不同国家和地区的网络状况,很可能出现模块下载缓慢或无法下载的情况。为了提高模块下载速度,Go 团队提供了模块镜像服务,即 proxy.golang.org。该服务通过缓存公开可获得的模块来为 Go 开发者服务,该服务实际上充当了众多版本控制系统的代理。
2024-12-03 12:00:12
1084
原创 Go-知识依赖Module
在 Go 1.11 中,Module 特性被首次引入,Go 的依赖管理经历了 GOPATH, vendor ,进入了 Module 阶段。Go Module 比 GOPATH 和 vendor 强大很多,基本上解决了 GOPATH 和 vendor 存在的问题。GOPATH 最大的困扰是无法让多个项目共享同一个 package 的不同版本,在 vendor 中,通过把每个项目依赖的。
2024-10-24 11:02:49
779
原创 Go-知识依赖Vendor
自 Go 1.6 起,vendor 机制正式启用,它允许把项目的依赖放到一个位于本项目的 vendor 目录中,这个 vendor 目录可以简单理解成私有的 GOPATH 目录。项目编译时,编译器会优先从 vendor 中寻找依赖包,如果 vendor 中找不到,则再到 GOPATH 中寻找。
2024-10-17 20:29:41
1237
原创 Go-知识反射
在Java或者c/c++中,实现接口需要使用特定的关键字,声明实现的接口。 在Go里面有一个鸭子类型的思想: "鸭子类型"(Duck Typing)是一种编程概念,它的名字来源于英语中的一句谚语: "如果它走起路来像鸭子,叫起来也像鸭子,那么它就是鸭子"。
2024-10-17 20:25:58
763
原创 Go-知识依赖GOPATH
早期Go语言单纯地使用GOPATH管理依赖,但是GOPATH不方便管理依赖的多个版本,后来增加了vendor,允许把项目依赖连同项目源码一同管理。Go 1.11 引入了全新的依赖管理工具 Go Module ,知道 Go 1.14 , Go Module 才走向成熟。
2024-10-11 20:03:03
688
原创 Go-知识泛型
除了内置的comparable和any两种类型可作为类型约束使用,用户还可以使用interface来定义类型集合。任意类型元素(如 int)近似类型元素(使用表示法,如int)联合类型元素(使用|表示法,如int|int64)需要注意的是,如果interface类型中使用了这三种元素的任意一种,那么这个interface只能用于泛型的类型参数反形式衡量编程语言技术完备度的一个重要参考指标,但是也是一个比较争议的技术。
2024-10-11 20:01:49
1515
原创 Go-知识-定时器
Timer是一种单一事件的定时器,即经过指定的时间后触发一个事件,这个事件通过其本身提供的channel进行通知。Timer只执行一次就结束。通过timer.NewTimer(d Duration)可以创建一个Timer,参数即等待时间,时间到来后立即触发一个事件。在中定义了Timer的数据结构Timer对外仅暴露一个channel,指定的时间到来时就往该channel种写入系统时间,即一个事件。
2024-09-21 13:19:32
1584
原创 Go-知识recover
内置函数recover用于消除panic并使程序恢复正常。recover的返回值是什么?执行recover之后程序将从哪里继续运行?recover为什么一定要在defer中使用?与panic函数一样,recover函数也是一个内置函数recover函数的返回值就是panic函数的参数,当程序产生panic时,recover函数就可用于消除panic,同时返回panic函数的参数,如果程序没有发生panic,则recover函数返回nil.
2024-09-21 13:06:03
1200
原创 Go-知识panic
Go 语言开发中程序出现错误,比较常见的是返回error给调用者,但是对于危险的操作,比如内存越界访问等,程序会触发panic,提前结束程序运行。同样是退出程序,与os.Exit相比,panic的退出方式比较优雅,panic会做一定的善后操作(处理defer函数),并且支持使用recover消除panic。defer,panic和recover经常会相互作用。panic触发异常,如果函数没有处理异常,则异常将沿函数调用链逐层向上传递,最终导致程序退出。
2024-07-27 15:20:03
1241
原创 Go-知识defer
defer 语句用于延迟函数的调用,常用于关闭文件描述符、释放锁等资源释放场景。defer 语句采用后进先出的设计,类似于栈的方式,函数执行时,每遇到一个defer都会把一个函数压入栈中,函数返回前在将函数从栈中取出执行,最早被压入栈中的函数最晚被执行。不仅函数正常返回会执行被defer延迟的函数,函数中任意一个return语句、panic语句均会触发延迟函数。defer 定义的延迟函数参数在defer语句出现时就已经确定了defer 定义的顺序与实际的执行顺序相反。
2024-07-27 15:15:53
713
原创 Go-知识error
error 只是一个内建接口,只要实现了接口,就是 error类型的变量。创建通过 errors.New 和 fmt.Errorf 创建,区别在于是否格式化字符串。Go sdk 实现了errorString 和 wrapError 内部类型。Go 1.13 针对 error 的优化主要是解决了 error 传递时丢失原 error 信息的问题,通过扩展 fmt.Errorf来支持创建链式的 error ,并通过 errors.Unwrap 拆解获得原始 error。
2024-07-15 10:03:05
1209
原创 Go-知识测试-性能测试分析工具-benchstat
p=0.000表示结果的可信程度,p值越大可信程度越低,统计学中通常把p=0.05作为临界值,超过此值说明结果不可信,可能是样本过少等原因。benchstat 是 Go 官方推荐的一款命令行工具,可以针对一组或多组样本进行分析,如果同时分析两组样本,还可以给出性能变化结果。至此,go的测试结束,通过学习go测试,首先是会写各种测试case,其次是理解了各种测试的目的,最后则是学习了很多优秀的实现。自动计算出了平均值,在cpu=10的时候,每次操作2.534微妙,样本离散值(2%)如果没有设置,默认是。
2024-07-15 09:56:00
1299
原创 Go-知识测试-测试参数
# 1. -args# 2. -json# 3. -o # 4. -bench # 5. -benchtime# 6. -cpu# 7. -count # 8. -failfast# 9. -list# 10. -parallel # 11. -run# 12. -timeout# 13. -v# 14 -benchmem
2024-07-13 13:02:16
853
原创 Go-知识测试-子测试
子测试提供了一种在一个测试函数中执行多个测试的能力,可以自己编排执行顺序,或者做一些初始化等操作。Run 函数启动一个单独的协程来运行名字为name的子测试f,并且会阻塞等待其执行结束,除非子测试f显式调用Parallel将自己编程一个可并行的测试,最后返回bool类型的测试结果。所有的测试,都是由TestMain使用Run方法直接或者间接启动。每启动一个子测试,都会创建一个testing.T或者testing.B变量,该变量集成当前测试的部分属性,然后以新的。
2024-07-13 12:58:57
1102
原创 Go-知识测试-模糊测试
模糊测试(Fuzzing)是一种通过构造随机数据对代码进行测试的测试方法,相比于单元测试,它能提供更为全面的测试覆盖,从而找出代码中的潜在漏洞。从1.18开始,Go开始正式支持模糊测试。模糊测试要保证测试文件以_test.go结尾。测试方法必须以FuzzXxx开头。模糊测试方法必须以*testing.F作为参数。Go 1.18 的 Fuzz 测试使用了一种称为 “coverage-guided fuzzing” 的技术来生成随机输入。
2024-07-11 20:25:41
1157
原创 Go-知识测试-示例测试
示例测试要保证测试文件以_test.go结尾。测试方法必须以ExampleXxx开头。测试文件可以与源码处于同一目录,也可以处于单独的目录。检测单行输出格式为 // Output: 检测多行输出格式为 // Output: \n \n \n,每个期望字符串占一行检测无序输出格式为 // Unordered output: \n \n \n ,每个期望字符串占一行。
2024-07-11 20:15:35
829
原创 Go-知识测试-性能测试
性能测试会执行多次,然后计算平均耗时。性能测试要保证测试文件以_test.go结尾。测试方法必须以开头。测试文件可以与源码处于同一目录,也可以处于单独的目录。
2024-07-01 10:48:24
1166
1
原创 Go-知识测试-Main测试
声明一个,名字比较特殊的测试,参数类型为test.M指针。如果声明了一个这样的测试,那么当前测试程序不是直接执行各项测试,而是将测试交给TestMain调度。
2024-07-01 10:44:44
949
原创 Go-知识测试-单元测试
单元测试是指对软件中的最小可测试单元进行检查和验证,比如对一个函数的测试。单元测试要保证测试文件以_test.go结尾。测试方法必须以TestXxx开头。测试文件可以与源码处于同一目录,也可以处于单独的目录。
2024-06-29 13:25:01
1272
1
原创 Go-知识测试-工作机制
在 Go 语言的源码中,go test 命令的实现主要在 src/cmd/go/internal/test 包中。当你运行 go test 命令时,Go 的命令行工具会调用这个包中的代码来执行测试。在 src/cmd/go/internal/test 包中,runTest 函数是 go test 命令的主要入口点。这个函数负责解析命令行参数,构建测试的二进制文件,启动这个二进制文件,以及读取和解析测试结果。
2024-06-29 13:22:09
1406
原创 Go-知识并发控制RWMutex
互斥锁 Mutex 是串行加锁,拿到锁之后,不管是读操作还是写操作,对于 Mutex 来说,是等价的。但是在并发里面,如果仅仅是读操作,不改变数据的前提下,是可以共享的,多个协程读取到的数据都是可信的。写锁需要阻塞写锁: 一个协程拥有写锁时,其他协程写操作需要阻塞写锁需要阻塞读锁: 一个协程拥有写锁时,其他协程读操作需要阻塞读锁需要阻塞写锁: 一个协程拥有读锁时,其他协程写操作需要阻塞读锁不能阻塞读锁: 一个协程拥有读锁时,其他协程读操作不需要阻塞。
2024-06-15 14:22:04
971
原创 Go-知识并发控制mutex
互斥锁是并发程序中对共享资源进行访问控制的主要手段,Go 语言提供了非常简单易用的 Mutex。Mutex 是结构体类型,对外暴露了 Lock 和 Unlock 两个方法,用于加锁和解锁。自旋对应于CPU的PAUSE指令,CPU对该指令什么都不做,相当于CPU空转,对程序而言相当于sleep了一小段时间,时间非常短,当前实现是 30个时钟周期。自旋过程中会持续探测 Locked 是否变为0 ,连续两次探测奸恶就是在执行这些 PAUSE 指令,不同于sleep,不需要将协程转为睡眠状态。
2024-06-15 14:19:31
1170
原创 Go-知识并发控制WaitGroup
WaitGroup 通常用于等待一组“工作协程”结束的场景,其内部维护两个计数器,可以称为“工作协程”计数器和“等待协程”计数器。Add(delta int) 方法用于增加“工作协程”计数,通常在启动新的“工作协程”之前调用。Done 方法用于减少“工作协程”计数,每次调用递减1,通常在“工作协程”内部且在临近返回之前调用。Wait 方法用于增加“等待协程”计数,通常在所有“工作协程”全部启动之后调用。
2024-06-01 15:55:13
1327
1
原创 Go-知识并发控制Context
Go 语言的 context 是应用开发常用的并发控制技术,它与 WaitGroup 最大的不同点是 context对于派生 goroutine 有更强的控制力,可以控制多级的 goroutine。context 翻译成中文是 上下文 ,即可以控制一组呈树状结构的 goroutine ,每个 goroutine 拥有相同的上下文。上图中由于 goroutine 派生出子 goroutine ,而子 goroutine 又继续派生出新的 goroutine ,
2024-06-01 15:53:15
1322
Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)-源代码
2019-03-24
管道流量采集资源文件
2018-07-01
easesize和crc_modbus
2018-07-01
管道流量采集源代码
2018-07-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人