自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(348)
  • 资源 (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 871

原创 Go-知识panic

Go 语言开发中程序出现错误,比较常见的是返回error给调用者,但是对于危险的操作,比如内存越界访问等,程序会触发panic,提前结束程序运行。同样是退出程序,与os.Exit相比,panic的退出方式比较优雅,panic会做一定的善后操作(处理defer函数),并且支持使用recover消除panic。defer,panic和recover经常会相互作用。panic触发异常,如果函数没有处理异常,则异常将沿函数调用链逐层向上传递,最终导致程序退出。

2024-07-27 15:20:03 982

原创 Go-知识defer

defer 语句用于延迟函数的调用,常用于关闭文件描述符、释放锁等资源释放场景。defer 语句采用后进先出的设计,类似于栈的方式,函数执行时,每遇到一个defer都会把一个函数压入栈中,函数返回前在将函数从栈中取出执行,最早被压入栈中的函数最晚被执行。不仅函数正常返回会执行被defer延迟的函数,函数中任意一个return语句、panic语句均会触发延迟函数。defer 定义的延迟函数参数在defer语句出现时就已经确定了defer 定义的顺序与实际的执行顺序相反。

2024-07-27 15:15:53 584

原创 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 1065

原创 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 1109

原创 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 705

原创 Go-知识测试-子测试

子测试提供了一种在一个测试函数中执行多个测试的能力,可以自己编排执行顺序,或者做一些初始化等操作。Run 函数启动一个单独的协程来运行名字为name的子测试f,并且会阻塞等待其执行结束,除非子测试f显式调用Parallel将自己编程一个可并行的测试,最后返回bool类型的测试结果。所有的测试,都是由TestMain使用Run方法直接或者间接启动。每启动一个子测试,都会创建一个testing.T或者testing.B变量,该变量集成当前测试的部分属性,然后以新的。

2024-07-13 12:58:57 1010

原创 Go-知识测试-模糊测试

模糊测试(Fuzzing)是一种通过构造随机数据对代码进行测试的测试方法,相比于单元测试,它能提供更为全面的测试覆盖,从而找出代码中的潜在漏洞。从1.18开始,Go开始正式支持模糊测试。模糊测试要保证测试文件以_test.go结尾。测试方法必须以FuzzXxx开头。模糊测试方法必须以*testing.F作为参数。Go 1.18 的 Fuzz 测试使用了一种称为 “coverage-guided fuzzing” 的技术来生成随机输入。

2024-07-11 20:25:41 1038

原创 Go-知识测试-示例测试

示例测试要保证测试文件以_test.go结尾。测试方法必须以ExampleXxx开头。测试文件可以与源码处于同一目录,也可以处于单独的目录。检测单行输出格式为 // Output: 检测多行输出格式为 // Output: \n \n \n,每个期望字符串占一行检测无序输出格式为 // Unordered output: \n \n \n ,每个期望字符串占一行。

2024-07-11 20:15:35 752

原创 Go-知识测试-性能测试

性能测试会执行多次,然后计算平均耗时。性能测试要保证测试文件以_test.go结尾。测试方法必须以开头。测试文件可以与源码处于同一目录,也可以处于单独的目录。

2024-07-01 10:48:24 1030 1

原创 Go-知识测试-Main测试

声明一个,名字比较特殊的测试,参数类型为test.M指针。如果声明了一个这样的测试,那么当前测试程序不是直接执行各项测试,而是将测试交给TestMain调度。

2024-07-01 10:44:44 738

原创 Go-知识测试-单元测试

单元测试是指对软件中的最小可测试单元进行检查和验证,比如对一个函数的测试。单元测试要保证测试文件以_test.go结尾。测试方法必须以TestXxx开头。测试文件可以与源码处于同一目录,也可以处于单独的目录。

2024-06-29 13:25:01 1047 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 1285

原创 Go-知识并发控制RWMutex

互斥锁 Mutex 是串行加锁,拿到锁之后,不管是读操作还是写操作,对于 Mutex 来说,是等价的。但是在并发里面,如果仅仅是读操作,不改变数据的前提下,是可以共享的,多个协程读取到的数据都是可信的。写锁需要阻塞写锁: 一个协程拥有写锁时,其他协程写操作需要阻塞写锁需要阻塞读锁: 一个协程拥有写锁时,其他协程读操作需要阻塞读锁需要阻塞写锁: 一个协程拥有读锁时,其他协程写操作需要阻塞读锁不能阻塞读锁: 一个协程拥有读锁时,其他协程读操作不需要阻塞。

2024-06-15 14:22:04 904

原创 Go-知识并发控制mutex

互斥锁是并发程序中对共享资源进行访问控制的主要手段,Go 语言提供了非常简单易用的 Mutex。Mutex 是结构体类型,对外暴露了 Lock 和 Unlock 两个方法,用于加锁和解锁。自旋对应于CPU的PAUSE指令,CPU对该指令什么都不做,相当于CPU空转,对程序而言相当于sleep了一小段时间,时间非常短,当前实现是 30个时钟周期。自旋过程中会持续探测 Locked 是否变为0 ,连续两次探测奸恶就是在执行这些 PAUSE 指令,不同于sleep,不需要将协程转为睡眠状态。

2024-06-15 14:19:31 1089

原创 Go-知识并发控制WaitGroup

WaitGroup 通常用于等待一组“工作协程”结束的场景,其内部维护两个计数器,可以称为“工作协程”计数器和“等待协程”计数器。Add(delta int) 方法用于增加“工作协程”计数,通常在启动新的“工作协程”之前调用。Done 方法用于减少“工作协程”计数,每次调用递减1,通常在“工作协程”内部且在临近返回之前调用。Wait 方法用于增加“等待协程”计数,通常在所有“工作协程”全部启动之后调用。

2024-06-01 15:55:13 1126

原创 Go-知识并发控制Context

Go 语言的 context 是应用开发常用的并发控制技术,它与 WaitGroup 最大的不同点是 context对于派生 goroutine 有更强的控制力,可以控制多级的 goroutine。context 翻译成中文是 上下文 ,即可以控制一组呈树状结构的 goroutine ,每个 goroutine 拥有相同的上下文。上图中由于 goroutine 派生出子 goroutine ,而子 goroutine 又继续派生出新的 goroutine ,

2024-06-01 15:53:15 1265

原创 Go-知识并发控制Channel

channel 作为协程间通信的类型,用来在协程间传递信息是基本能力,而通过灵活的使用 channel ,可以实现各种各样复杂的并发控制。

2024-05-17 18:34:39 465

原创 Go-知识逃逸分析

栈上分配内存比在堆中分配内存有更高的效率。栈上分配的内存不需要GC处理。对上分配的内存使用完毕会交给GC处理。逃逸分析的目的是决定分配地址是栈还是堆。逃逸分析在编译阶段完成。在编程的时候,应该尽可能避免产生内存逃逸。传递指针可以减少底层值的赋值,可以提高效率,但是如果赋值的数据量小,由于指针传递会产生逃逸,则可能会使用堆,也可能增加GC的负担,所以指针传递不一定是高效的。

2024-05-10 16:51:38 624

原创 Go-知识垃圾回收

GC性能与对象数量负相关,对象越多,GC性能越差,对程序影响越大。GC性能优化的思路之一就是减少对象分配的个数,比如对象复用或者使用大对象组合多个小对象等等。内存逃逸会产生一些隐式的内存分配,也有可能成为GC的负担。

2024-05-10 16:50:44 1103

原创 Go-知识协程

协程是Go语言最大的特色之一,也是将协程支持的非常优雅的实现,Go在语言层面直接提供对协程的支持。

2024-04-01 20:02:01 1121 2

原创 Go-知识内存分配

Go 程序启动时申请一大块内存,并划分成 spans, bitmap, arena 区域arena 区域按页划分成一个个小块span 管理一个或多个页mcentral 管理多个 span 供线程申请使用mcache 作为线程私有资源,资源来源于 mcentral。

2024-04-01 20:00:32 974

原创 Go-知识select

- select仅能操作chan.- 每个case语句仅能处理一个chan,要么是读chan,要么是写chan.- 多个case语句的执行顺序是随机的。- 存在default语句,select将不会阻塞。- 使用select读取chan时,应该尽可能检查读取是否成功,确定数据是否可信。

2024-03-15 15:47:13 1270 1

原创 Go-知识sync map

sync map 将互斥锁内置实现并发读写,将互斥锁的范围仅仅限定在dirty表,减少锁等待和锁调用,提升性能。因为dirty表和read表总是在争取保持一致,所以大部分读场景下,read表就能查询到数据,适合读多写少。sync map 中read表和dirty表都会持有key,所以内存占用上会比较大,而且在写多读少的场景下,因为既要遍历read表,又要遍历dirty表,性能上会比较慢。

2024-03-15 15:39:34 1357

原创 Go-知识string

在Go语言的设计中, string 通常指的是字符串的字面量,而且字符串一般情况下存储的位置也是只读,而不是堆或者栈(这里可能一定程度上借鉴了汇编之类的语言)。所以设计为string不可修改。当string不可修改后,带来的好处是string变得非常轻量,而且可以放心的在go-routine中进行传递,不用考虑并发冲突和内存拷贝。

2024-03-09 11:51:55 1095

原创 Go-知识map

Go 语言中map的底层使用Hash表实现,并发不安全。

2024-03-09 11:51:10 1385

原创 Go-知识struct

Go 语言的struct与Java中的class类似,可以定义字段和方法,但是不能继承。a int需要注意的是,在Go里面,访问权限是通过name的大小写指定的,小写表示包内可见,如果是大写则表示包外可见。同样的,如果创建的struct想让包外可见,那么必须是大写开头。id int在Go里面一般不会区分函数和方法,或者更好理解的话,可以认为方法是受限的函数,限制了函数调用者,那么就是方法。同样的,上述方法包内可见。上述方法虽然包外可见,但是没有意义,因为tes。

2024-03-03 13:13:55 1124

原创 Go-知识简短变量声明

简短变量声明操作符:=虽然很好用,但是需要注意:=的特性,在使用的时候,需要避免因为使用:=而导致的同名变量声明,以及作用域内无效变量的声明。

2024-03-03 11:22:07 1362

原创 AnimateDiffusion文字生成图片--入门

这次只是使用了一个文本到图片的功能,实际上还是非常强大的,继续探索。最后祝愿各位玩的开心!

2024-02-06 18:55:41 968 1

原创 使用AnimeGAN2将照片动漫化--入门

效果是有,可能是我选择的目标图片比较特殊,所以效果不是特别明显吧。遇到的问题:安装依赖的时候,特别是tensorflow的依赖,github上面推荐是1.15.0版本,但是我在实际安装中,存在各种冲突,最后使用1.14.0解决了。其次就是查找依赖的时候,有哪些版本,需要到网站上面搜索,可以安装pip_search工具进行查找。祝大家玩得开心~

2024-01-30 17:08:24 581

原创 Go 知识for-range

总的来说,for-range和java里面的for-each是类似的,原理都可以理解为语法糖,在编译的时候再进行替换。

2024-01-27 18:08:14 2109

原创 Go 知识chan

变量声明:var ch chan int // 声明一个int型的chan这种方式声明的chan,值为nil。并且每一种chan只能有一种类型。make声明:ch1 := make(chan int)// 无缓存的chanch2 := make(chan int, 4)// 有缓冲的chan。

2024-01-27 17:13:00 1362 1

原创 Go 知识iota

iota 是一个预定义的标识符,用于声明枚举常量。它在 const 声明中使用,表示连续的未类型化整数。其值从0开始,const声明块每增加一行,iota的值就会自增1,即使没有使用也会增加。

2024-01-20 17:07:31 564

原创 Go 知识slice

slice 是动态数组,依托数组实现,可以方便的进行扩容和传递,实际中比数组使用更加频繁。变量声明字面量内置函数make指定长度 len指定长度 len 和空间 cap切片array := [5]int{1, 2, 3, 4, 5}s1 := array[0:2] // 从数组切片 [0,2) 长度2,下标 0, 1s2 := s1[0:1] // 从slice切片 [0,1) 长度 1 ,下标 0。

2024-01-20 15:39:47 1213 1

原创 Go-安装与基础语法

注意,尽管可以省略常量的类型,但是Go语言并不会自动推断常量的类型。如果省略了常量的类型,那么这个常量可以被认为是任何类型,只要它是合法的。工作区是存放Go语言代码的地方,它应该包含三个子目录:src(源代码)、pkg(包文件)和bin(可执行文件)。环境变量是操作系统用来指定运行环境的一种参数,例如,系统会通过PATH环境变量来查找可执行文件。对于Windows用户,下载.msi文件,然后双击该文件,按照提示进行安装即可。例如,可以将上面的PI常量用在任何需要float64或int类型的地方。

2024-01-13 16:40:30 1129 1

原创 Go语言认识

关注直接了解第一手资料。了解go的全貌。

2024-01-13 15:29:39 1016

原创 教唆chat ai 吵架--chatGPT和chatBing体验

互动性方面,ChatGPT和Bing都能以聊天机器人的方式与用户进行对话,但是有一些区别。我感觉是和chatGPT的中文语料库的大小有关,相对来说,在中文方面,chatBing实时搜索中文数据,而chatGPT可能只是部分中文数据,所以导致在规则学习上,chatGPT的表现不如chatBing的表现。其实chatBing也不知道双关语是个啥意思,但是当给出解释:"苹果"即可以指水果,也可以指手机,的解释后,chatBing举一反三,得到了"橙"这个类似的例子,即可以指橙色,也可以指橙子。

2023-02-17 00:19:15 5357 1

原创 sql 优化

SQL优化是提高数据库性能的关键步骤,它可以帮助您缩短响应时间并减少对服务器的资源消耗。明确目标 在优化 SQL 之前,你需要明确你的目标:是提升某个操作的速度,还是减小数据库的资源消耗?分析 SQL 语句 分析 SQL 语句是第一步,可以帮助你确定哪些操作对性能产生了影响。你可以使用工具,例如 EXPLAIN 命令,来分析 SQL 语句。简化 SQL 语句 在分析 SQL 语句后,你可以简化 SQL 语句,例如删除多余的表连接和减少子查询的数量。

2023-02-13 22:40:37 830 3

原创 让chatGPT回答一些有趣?无聊的问题

总的来说,猿如意的 chatGPT 应该是共享的,所以在提问的时候,能感觉到上下文没有关联性,这与网上的视频,上下文关联的流畅性有很大出入。其实第一次 chatGPT准确的回答出了 自述 这个答案,可惜尝试没截图,后面又找不到了。这一次主要是看看chatGPT能否理解我的目的,很可惜,这一次并没有。不过好在 csdn 的猿如意 里面有体验功能,我就顺便体验一下。本来我是没有国外的手机号的,也就没法注册chatGPT并使用。当然 chatGPT 的技术专业还是挺强的。== ChatGPT 不会对对联吗?

2022-12-21 12:11:29 4488 5

原创 tsf定时任务迁移到xxl-job

XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。xxl-job 是一个国人开发的框架,于15年开源启动,到现在也有7年历史,从最开始的基础功能实现,到现在支持分布式,集群,任务重试,分片等等。基本上已经很全面了,很能打了。xxl-job毕竟是国人开发的框架,其文档非常适合国人习惯,而且非常通俗易懂。遇到的问题在文档中都能找到。

2022-10-24 16:36:47 955

sedentaryreminder.zip

sedentaryreminder.zip

2022-01-10

translate.zip

idea插件--翻译

2022-01-04

07-2-JSTL(2).ppt

07-2-JSTL(2).ppt

2020-07-17

07-1-JSTL(1).ppt

07-1-JSTL(1).ppt

2020-07-17

06-JSP中使用数据库.ppt

06-JSP中使用数据库.ppt

2020-07-17

05-JSP 表达式语言.ppt

05-JSP 表达式语言.ppt

2020-07-17

04-JSP标准动作.ppt

04-JSP标准动作.ppt

2020-07-17

03-JSP隐式对象.ppt

03-JSP隐式对象.ppt

2020-07-17

02-JSP脚本元素指令及动作.ppt

02-JSP脚本元素指令及动作.ppt

2020-07-17

01-JSP简介.ppt

01-JSP简介.ppt

2020-07-17

波波-程序员不得不知道的SpringBoot的那些事儿.mp4

波波-程序员不得不知道的SpringBoot的那些事儿.mp4

2020-07-17

青山_20200626_理解代理模式MyBatis就掌握了一半.mp4

青山_20200626_理解代理模式MyBatis就掌握了一半.mp4

2020-07-17

青山_20200705_分布式任务调度系统的实现.mp4

青山_20200705_分布式任务调度系统的实现.mp4

2020-07-17

java8函数式编程源码

java8函数式编程源码。前面讲解Lambda表达式的基本规则,后面介绍如何使用Lambda表达式优化现有代码,提交并发等等。

2019-04-22

综合小项目源码

综合小项目(HTML+JQuery+js+Ajax+mysql+H5)源码上传。请重新设置数据库相关的信息:连接字符串、用户、密码、数据库。

2019-04-20

37304-Python数据分析与应用-PPT课件.rar

37304-Python数据分析与应用-PPT课件源代码在另一个资源。

2019-03-24

Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)-源代码

Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)-源代码

2019-03-24

设计模式----命令模式

这是一个非常有趣的关于23种设计模式中命令模式和享元模式的例子。例子在命令模式的基础上进行重构以及使用享元模式优化。。

2018-12-21

ocxTee Chart和串口的ocx文件

└─系统插件ocx文件 mscomm32.ocx TeeChart5.ocx 这些资源网上可以找到,不想下载的请勿举报。

2018-07-01

管道流量采集资源文件

├─开发资源文件(bitmap和对话框布局文件) │ 1.bmp │ 2.bmp │ 3.bmp │ 4.bmp │ 5.bmp │ 6.bmp │ icon1.ico │ My.rc2 │ Pipe line.ico

2018-07-01

打包32位文件

├─打包32位文件 │ msiexec.exe 这个文件是32位weindows系统中卸载程序的文件,可以在32位系统的windows文件夹下面寻找。

2018-07-01

easesize和crc_modbus

├─easesize和crc │ crc.cpp │ crc.h │ easysize.h 这些文件网上可以免费找到,我只是收集一下,不想下载请勿举报。

2018-07-01

管道流量采集源代码

管道流量采集试验方案的示例程序的源代码。 │ └─管道流量采集 │ │ Configdata.cpp │ │ Configdata.h │ │ crc.cpp │ │ crc.h │ │ CSeries.h │ │ CTChart.h │ │ DataConfig.cpp │ │ DataConfig.h │ │ DlgExcel.cpp │ │ DlgExcel.h │ │ DlgForecast.cpp │ │ DlgForecast.h │ │ DlgHistory.cpp │ │ DlgHistory.h │ │ DlgInterpret.cpp │ │ DlgInterpret.h │ │ DlgLookdata.cpp │ │ DlgLookdata.h │ │ DlgSetdata.cpp │ │ DlgSetdata.h │ │ DlgText.cpp │ │ DlgText.h │ │ easysize.h │ │ mscomm1.cpp │ │ mscomm1.h │ │ MysqlConnection.cpp │ │ MysqlConnection.h │ │ ReadMe.txt │ │ resource.h │ │ Single.cpp │ │ Single.h │ │ stdafx.cpp │ │ stdafx.h │ │ targetver.h │ │ tchart1.cpp │ │ tchart1.h │ │ TeeData.cpp │ │ TeeData.h │ │ 管道流量采集.APS │ │ 管道流量采集.cpp │ │ 管道流量采集.h │ │ 管道流量采集.rc │ │ 管道流量采集.vcxproj │ │ 管道流量采集.vcxproj.filters │ │ 管道流量采集.vcxproj.user │ │ 管道流量采集Dlg.cpp │ │ 管道流量采集Dlg.h

2018-07-01

MySQL笔记,比较全,知识点都有,而且有例子

MySQL几乎所有的知识的总结,每个知识点都有对应的例子

2017-07-31

空空如也

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

TA关注的人

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