自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 Backend Tuning--auto tuning

相似的算子:normalization 、layer normalization 这些算子的计算模式相似可以抽象出来一种固定优化的pattern或者方式。

2025-04-08 12:48:06 233

原创 C++ Upcast向上造型

如果B继承A,则A能用的地方,B同样适用。这称为 B Upcast A。B对象的内存空间,起始的那块内容仍然装的是父类A。

2025-02-16 16:54:46 116

原创 C++ references

C++复杂在于提供了太多的内存模型或者说: 提供了两种东西:2、提供了很多访问对象的方式3 * 3 = 9 种访问对象的方式。

2025-02-15 16:46:15 333

原创 git 沙盒 下(二)

高级git。

2025-02-14 16:53:31 225

原创 git 沙盒体验(下)

沙盒url : Learn Git Branching使用相对引用最多的就是移动分支。可以直接使用 选项让分支指向另一个提交。例如:上面的命令会将 main 分支强制指向 HEAD 的第 3 级 parent 提交。在 Git 里撤销变更的方法很多。和提交一样,撤销变更由底层部分(暂存区的独立文件或者片段)和上层部分(变更到底是通过哪种方式被撤销的)组成。我们这个应用主要关注的是后者。主要有两种方法用来撤销变更 —— 一是 ,还有就是 。接下来咱们逐个进行讲解。 通过把分支记录回退几个提交记录来实现撤销改

2025-02-12 16:20:02 917

原创 Git 沙盒体验

你的同事这周写了一堆代码,还改了许多你的功能中使用的 API,这些变动会导致你新开发的功能变得不可用。不会移动你的工作(它会创建新的合并提交),但是它会告诉 Git 你已经合并了远程仓库的所有变更。这是因为远程分支现在是你本地分支的祖先,也就是说你的提交已经包含了远程分支的所有变化。Git 这么做是出于不能直接在这些分支上进行操作的原因, 你必须在别的地方完成你的工作, (更新了远程分支之后)再用远程分享你的工作成果。还是直接在新代码的基础上添加你的代码,亦或由于你的提交已经过时而直接忽略你的提交?

2025-02-10 18:08:39 868

原创 Vmware创建centos后使用yum报错(网络连接正常)

【代码】Vmware创建centos后使用yum报错。

2024-07-30 14:36:11 485

原创 解决clickhouse 启动报错

docker启动clickhouse-server。kill掉844进程。

2024-04-30 21:23:26 845

原创 Linux学习(一)

本书将上述内容一网打尽,一个不漏。红帽认证考试的形式为上机实操,且在一天内考完。上午的 RHCSA 认证的考试时长是 2.5 小时,对应的是 RH124 和 RH134 的课程内容,下午的 RHCE 认证的考试时长是 3.5 小时,对应 的是 RH294 课程内容。两门考试的成绩通常会在考试结束后的 72 小时内公布。RHCSA 和 RHCE 认证考试的满分均为 300 分,达到 210 分为合格,会连同成绩和电子证书发送到考试邮箱中。

2024-04-28 19:54:44 1049

原创 go语言基础学习-通道(续)

当互斥锁释放后,等待的goroutine才可以获取锁进入临界区,多个goroutine同时等待一个锁时,唤醒的策略是随机的。互斥锁是完全互斥的,但是有很多实际的场景下是读多写少的,当我们并发的去读取一个资源不涉及资源修改的时候是没有必要加锁的,这种场景下使用读写锁是更好的一种选择。互斥锁是一种常用的控制共享资源访问的方法,它能够保证同时只有一个goroutine可以访问共享资源。当一个goroutine获取读锁之后,其他的goroutine如果是获取读锁会继续获得锁,如果是获取写锁就会等待。

2024-03-31 20:48:16 528

原创 gin基础学习笔记--参数验证

可以不用解析数据,减少if else,会简洁许多。结果是:感觉没有经过验证。gin框架的数据验证。

2024-03-31 19:05:25 675

原创 gin基础学习笔记--Log

彩色日志输出自定义构建或二进制命令支持忽略子目录启动后支持监听新目录更好的构建过程。

2024-03-27 18:46:15 432 1

原创 gin语言基础学习--会话控制(下)

模拟实现权限验证中间件访问home,会显示错误,因为权限校验未通过。

2024-03-25 21:44:35 492

原创 go语言基础学习(九)--并发篇

Go运行时的调度器使用GOMAXPROCS参数来确定需要使用多少个OS线程来同时执行Go代码。默认值是机器上的CPU核心数。例如在一个8核心的机器上,调度器会把Go代码同时调度到8个OS线程上(GOMAXPROCS是m:n调度中的n)。Go语言中可以通过runtime.GOMAXPROCS()函数设置当前程序并发时占用的CPU逻辑核心数。Go1.5版本之前,默认使用的是单核心执行。Go1.5版本之后,默认使用全部的CPU逻辑核心数。

2024-03-25 21:03:35 840

原创 gin基础学习-会话控制

Cookie由服务器创建。

2024-03-20 19:43:57 232 1

原创 go语言基础学习(八)- I/O操作

客户不应假定它们对于并行执行是安全的。io.Reader 表示一个读取器,它将数据从某个资源读取到传输缓冲区。在缓冲区中,数据可以被流式传输和使用。

2024-03-20 17:01:10 802 1

原创 go语言基础学习笔记(七)-接口

type 接口类型名 interface{方法名1( 参数列表1 ) 返回值列表1方法名2( 参数列表2 ) 返回值列表2接口类型名:使用 type 将接口定义为自定义的类型名。Go语言的接口在命名时,一般会在单词后面添加 er,如有写操作的接口叫 Writer,有字符串功能的接口叫 Stringer,有关闭功能的接口叫 Closer 等。方法名:当方法名首字母是大写时,且这个接口类型名首字母也是大写时,这个方法可以被接口所在的包(package)之外的代码访问。

2024-03-19 17:38:04 385 1

原创 go语言基础学习笔记(六)-并发篇

接上篇问题:主协程 退出了,子协程还会执行吗?GPM是Go语言运行时(runtime)层面的实现,是go语言自己实现的一套调度系统。区别于操作系统调度OS线程。调度P与M一般也是一一对应的。他们关系是: P管理着一组G挂载在M上运行。当一个G长久阻塞在一个M上时,runtime会新建一个M,阻塞G所在的P会把其他的G 挂载在新建的M上。当旧的G阻塞完成或者认为其已经死掉时 回收旧的M。P的个数是通过runtime.GOMAXPROCS设定(最大256),Go1.5版本之后默认为物理线程数。

2024-03-15 21:35:03 702 1

原创 gin基础学习笔记(六)-gin中间件

所有的请求先经过此中间件在Gin框架中,中间件(Middleware)是一种机制,用于在请求到达路由处理函数之前或之后执行一些通用的逻辑。中间件可以对HTTP请求进行预处理、后处理或者进行一些额外的操作,例如身份验证、日志记录、错误处理、性能监控等。中间件的作用包括但不限于以下几点:身份验证和授权中间件可以用于验证用户身份、检查权限,确保只有经过授权的用户可以访问特定的路由或资源。中间件可以记录请求的信息,如请求路径、请求方法、请求参数等,以便进行日志记录和监控。

2024-03-15 20:43:19 768 1

原创 gin基础学习笔记(五)

简单解释一下protobuf,在Golang中,Gin是一个流行的Web框架,而Protobuf(Protocol Buffers)是一种用于序列化结构化数据的语言无关、平台无关、可扩展的机制。使用Protobuf可以减少数据传输的大小,提高数据传输效率,从而加快网络通信速度,减少带宽消耗。Protobuf提供了代码生成工具,可以根据定义的消息结构自动生成对应的数据结构和序列化/反序列化方法,简化开发过程。使用Protobuf定义数据结构后,可以在编译阶段进行类型检查,避免一些潜在的数据传输错误。

2024-03-13 18:08:39 672

原创 gin基础学习笔记(四)

针对昨晚的问题,使用命令行可以解决,postman和手写前端都不行,后端接不到数据。

2024-03-13 15:58:59 293

原创 GO语言基础学习笔记(五)

进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。线程是进程的一个执行实体,是CPU 调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。一个进程可以创建和撤销多个线程,同一个进程中的多个线程之间可以并发执行。多线程程序在单核心的 cpu 上运行,称为并发;多线程程序在多核心的 cpu 上运行,称为并行。

2024-03-12 21:00:31 405 1

原创 gin基础学习笔记(三)

借助postman发送请求,但是有些问题,明天解决。httproter会将所有路由规则构造一颗前缀树。例如有 com -> baidu -> www。

2024-03-12 20:25:39 167 1

原创 GO语言基础学习(四)

【代码】GO语言基础学习(四)

2024-03-11 16:51:13 242

原创 gin基础学习笔记(二)

multipart/form-data格式用于文件上传gin文件上传与原生的net/http方法类似,不同在于gin把原生的request封装到c.Request中在 Go 语言中,<<是位运算符,表示按位左移操作。8 << 20的含义是将整数 8 左移 20 位,即将二进制表示的数值 8 左移 20 位。在这种情况下,8的二进制表示是0000 1000,将其左移 20 位后,即在低位添加 20 个 0,结果为。将这个二进制数转换为十进制数,即为8388608。因此,在 Go 中,8 << 20。

2024-03-11 12:09:42 564

原创 gin基础学习笔记(一)

Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点对于golang而言,web框架的依赖要远比Python,Java之类的要小。自身的net/http借助框架开发,不仅可以省去很多常用的封装带来的时间,也有助于团队的编码风格和形成规范。

2024-03-09 12:21:39 1114

原创 go get -u github.com/gin-gonic/gin GO安装gin时报错

表示不能在这个路径下的文件夹里写入内容。今天安装gin时,出现了报错如下。那么修改权限即可具体参考这篇博客。按照网上得排查完错误都不是,仔细阅读报错的内容,发现是。文件权限显示为只可读。

2024-03-08 22:04:52 555 1

原创 GO语言基础学习笔记(三)

/ 相反,当函数 g 返回时,变量 y 不再被使用,也就是说可以马上被回收的。因此,y 并没有从函数 g 中逃逸,编译器可以选择在栈上分配 *y 的存储空间,也可以选择在堆上分配,然后由Go语言的 GC(// 上述代码中,函数 f 里的变量 x 必须在堆上分配,因为它在函数退出后依然可以通过包一级的 global 变量找到,虽然它是在函数内部定义的。Go语言内置的 flag 包实现了对命令行参数的解析,flag 包使得开发命令行工具更为简单。// 用Go语言的术语说,这个局部变量 x 从函数 f 中。

2024-03-07 11:34:26 322 1

原创 GO语言基础学习笔记(二)

字符串替换, 比如将 "Hello, 码神之路Java教程" 替换为 "Hello, 码神之路Go教程"// strings.LastIndex():反向搜索子字符串。// strings.Index(): 正向搜索子字符串。// 如何获取字符串中的某一段字符?

2024-03-06 17:43:03 155

原创 GO语言基础学习笔记(一)

最近入门go,vscode无痛进入go三部曲。

2024-03-01 11:24:16 306 1

原创 mac m1使用vscode配置go开发环境时遇到的离谱报错解决

于是开始brew安装gccmac不会自动把gcc写入环境变量,还需要手动添加gcc的环境变量注意⚠️,brew下载安装的gcc需要自己手动找到gcc的位置,命令如下输出如下:使用命令行添加系统的PATH之后会到vscode,键盘ctl + shift + p点击第一个,下载所有的tools(!!!!!注意要用魔法,才能过这关)但是还是会报错以为还是环境变量的问题,所以添加了无数遍,并没有什么卵用最后无意间翻到一篇博客,找不到了,说是重新安装一遍vscode就可以的。

2024-02-22 15:51:42 1368 2

原创 Mac M1 下载安装go教程(brew下载)

mac m1 使用brew快速安装go

2024-02-20 12:20:35 1580

原创 【无标题】

解决mysql的报错问题

2023-09-11 11:28:55 48

原创 电脑图标变成白纸如何恢复

电脑图标变成白纸如何恢复文章目录电脑图标变成白纸如何恢复原因:修改软件所在文件的名字,导致系统无法找到图标所在位置以Typora为例(因为修改成功,所以无法做演示,按照步骤走能解决99%的图标问题)如何快速定位软件的位置原因:修改软件所在文件的名字,导致系统无法找到图标所在位置以Typora为例(因为修改成功,所以无法做演示,按照步骤走能解决99%的图标问题)鼠标右击打开软件的属性修改这两项第一项目标:需要找到应用位于哪个文件夹中(绝对位置)第二项起始位置:把最后一个反斜杠以及后

2021-10-07 10:05:51 6073

空空如也

空空如也

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

TA关注的人

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