自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 问答 (3)
  • 收藏
  • 关注

原创 Go内存回收

(java使用分代内存管理,新生代被认为是GC高频的,采用半空间复制,而老代抗过多轮GC的被认为是低频GC的,低频GC的对象采用标记清扫)有点类似引用指针或者linux下的node计数器,计数为0的时候说明不被用户关心了,GC时清除计数为0的;为何不使用java的分代内存GC:go使用了内存逃逸分析,在编译过程中把生命周期长的放到堆区,短的放到栈区(不通过GC内存回收)标记清扫的碎片问题,golang在内存分配的时候使用等级制度,从而将碎片问题局限在内部碎片上。,GC协程跟全局用户协程是并发进行的。

2024-07-05 02:12:07 862

原创 Golang内存分配

mheap以8KB的页为最小内存单元,负责将连续的页组装成mspan,使用位图bitmap记录所有页的使用情况,为1说明页已经被mspan组装(不是被使用,组装了不一定使用了)(组装的时候找连续空闲页时为了加速,使用到了空闲页基数树索引辅助) 用heapArena聚合页记录页跟mspan的映射关系(GC的时候根据对象地址找到页是很简单的,但是mspan的记录对象使用情况的bitmap也需要更新,所以需要heapArena记录页跟mspan的映射关系,用来更新mspan的bitmap)。

2024-07-02 02:53:58 845

原创 旋转排序数组问题的思考

这种解决方法很简单也很好理解,并且在处理排序数组旋转的问题上具有普遍适用性。可以用这种方法练手力扣33、153两道题;秒杀。

2024-07-01 16:50:16 227

原创 Golang-GMP

g执行任务时,有4中调度方式会导致执行权回到g0的手里,主动调度(用户调用shced方法)、被动调度(不满足执行条件,比如管道阻塞、没有获得锁等,调用g_park()后g进入waiting态,可通过g_read()唤醒)、正常完成(G的任务完成)、抢占调度(G发起系统调用,导致进入阻塞,这时的阻塞是进入到了内核态,因为G发起的系统调用是以M的身份发起的,此时M也是僵直的,所以g0是无法感知到的,所以抢占调度其实是需要一个监控协程来完成的,这个协程越过p直接跟M绑定。全局任务队列加锁,记录长度。

2024-06-30 20:31:40 834 1

原创 Golang-channel理解

在操作系统内核视角下,线程是最小调度单元,不同线程共享内存空间这样实现的通信就很方便,但并不是共享的细节越多越好,好的架构应该是只共享对方需要关心的细节。chanel通过语法级别上的消息队列实现共享,通过很简洁的api将需要关心的细节托付给channel,而不需要暴露所有细节。所以 val , ok

2024-06-30 15:02:53 266

原创 Golang-slice理解

在slice的结构体中有3个字段, array, len, cap;但是对副本修改len和cap,原始数据len和cap是不会变的,比如传递切片给函数,函数内部append(s,100),输出一下s是看不到这个100的,因为输出s时是输出len个元素,len没变。根据new cap ,计算需要分配的内存大小:比如newcap * 元素大小(比如int就是newcap*8byte),向上取整推算mspan对应等级,对新切片进行初始化,然后调用memmove方法,将老切片内容拷贝到新切片并且返回。

2024-06-30 14:58:12 425

原创 第六周周报

这周的成果主要就是跟着师兄给的课程学了一些Pytorch框架的基本操作,然后看了不少关于GNN和时序相结合的帖子,下周除了继续学习pytorch课程外,我打算找篇GNN和时序结合的论文来看,然后等pytorch框架掌握差不多了,就去跟师兄要数据集跑试试。

2024-06-30 14:52:48 769

原创 Golang-map理解

首先key经过哈希函数生成64位值,低B位用来确定桶的位置,然后在桶中用hash值的高8位与tophash数组比对,比对成功后再比对key是否相同(因为仅仅比对高8位可能有错误,所以再比对一次key)。hmap的结构体核心字段有:buckets 桶数组地址, B 定位值,桶的数目是2^B个, count 当前map的总kv对个数, 以及标记是否迁移的 oldbuckets地址,以及迁移进度指标。具体来说,存的时候首先击中桶数组的某个桶,在桶内采用开放寻址法找空位,找到了就直接存,找不到就开链。

2024-06-30 14:49:44 336

原创 Golang-context理解

timerCtx.WithTimeout()方法,实现上,在父ctx不空的情况下,首先判断给定的过期时间是不是比父ctx还晚,如果是,那就直接返回cancelCtx以及cancel闭包(如果父ctx有deadline,并且结束时间比新ctx的结束时间还早就没必要把新ctx设定为timerCtx了,父ctx过期的时候会因为链路问题把子Ctx一并取消掉)。在这个方法中会判断父ctx是否是cancelctx,如果是,withcancel创建的派生ctx会被加入到cancelctx类的子ctx的map中。

2024-06-30 14:42:44 660

原创 【线上绘图网站分享】

简单,快捷:有时候临时要画一个流程图之类的用来示意、分享知识点,使用其他的绘图软件时学习成本高,性价比低,这个网站实时绘图快捷键就是小键盘,2分钟内上手;支持AI:可以代码生成绘图、AI协作绘图。流程图绘制、组会分享工具等;最重要的就是:免费!

2024-06-26 11:34:54 283

原创 C++内存分区

全局区包括:.data和.bss, 存放的是全局变量和静态变量,初始化的放在.data;未初始化的放在.bss,.bss只有一个占位符记录所需空间大小,并不占实际空间,初始化为0或者NULL之后是在.data段。之前一直在纠结进程的虚拟地址空间跟C++的内存管理分区在细节上的不同,今天系统化的过了一遍,大概记录一下笔记。首先明确C++的内存分为: 栈、堆、全局/静态区、常量区(.rodata)、代码区(.text)堆、栈是动态内存分配。全局区、常量区 在编译后就确定了大小,程序运行期间不能更改。

2024-04-28 17:54:49 217

原创 Mysql复习笔记

查询所有数据库: SHOW DATABASES;查询当前数据库: SELECT DATABASE();创建数据库: CREATE DATABASE [ IF NOT EXISTS ] 数据库名 [ DEFAULT CHARSET 字符集] [COLLATE 排序规则 ];删除数据库: DROP DATABASE [ IF EXISTS ] 数据库名;使用数据库: USE 数据库名;注意事项UTF8字符集长度为3字节,有些符号占4字节,所以推荐用utf8mb4字符集。

2024-04-23 22:33:25 1024

原创 STL容器复习

vector 底层数据结构为数组 ,支持随机访问list 底层数据结构为双向链表,支持快速增删deque 底层数据结构为一个中央控制器和多个缓冲区,支持首尾(中间不能)快速增删,支持随机访问。deque是一个双端队列(double-ended queue),也是在堆中保存内容的.它的保存形式如下:[堆1] --> [堆2] -->[堆3] --> …每个堆保存好几个元素,然后堆和堆之间有指针指向,看起来像是list和vector的结合品.

2024-04-11 14:32:19 706

原创 VS搭配linux开发环境设置

配置好远程系统后,在远程标头中下载缓存,这样就可以使用头文件的补全功能了。

2024-04-07 03:57:07 281

原创 linux网络编程学习笔记

自己在学习网络编程阶段记录的笔记

2024-04-05 11:15:54 859

原创 网络编程-select学习

6666/* 自定义数组client, 防止遍历1024个文件描述符 FD_SETSIZE默认为1024 *//* rset 读事件文件描述符集合 allset用来暂存 */// 端口复用/* 起初 listenfd 即为最大文件描述符 */maxi = -1;/* 将来用作client[]的下标, 初始值指向0个元素之前下标位置 */for (i = 0;i++)/* 用-1初始化client[] *//* 构造select监控文件描述符集 */

2024-04-05 11:06:46 525

原创 网络编程-epoll学习

难点就在结构体的void*arg,它就是本身这个结构体本身。

2024-04-05 11:05:39 1043 1

原创 网络编程-libevent学习

带缓冲区的事件,借助队列实现的两个缓冲区,所以读过了就没了。头文件一般用来跟socket搭配使用(上面的event配合fifo使用很少)cfd在bufferlisten后返回,并且作为参数封装进bufferevent,后面使用的都是封装了cfd的函数(比如read跟write就没有cfd给他们传进行使用,所以封装了buffer自身的read和write)结构体内带两个缓冲区,两个缓冲区能触发回调函数。

2024-04-05 11:05:02 352 1

原创 Mit6s081 xargs

【代码】Mit6s081 xargs。

2024-03-29 14:50:34 199 1

原创 6S081-find

【代码】6S081-find。

2024-03-28 01:49:03 264

原创 6S081-primes

意思进来一组数,第一个子进程把2的倍数全部去掉并打印2,剩余的输进第二个子进程,第二个子进程把3的倍数全部去掉并打印3,以此类推。知乎上有一篇解释素数筛的帖子。

2024-03-25 00:36:47 300

原创 linux系统编程笔记—线程

线程

2024-03-24 19:52:28 860 1

原创 9.24 周报记录

①采用溶 解氧(DO)检测仪和电动调节阀作为简单的控制回 路,当生化反应池内的 DO 值大于某一个设定值时, 关闭电动蝶阀;当 DO 值小于某一个设定值时则打开 电动蝶 阀。②采 用 PID 进 行 定 值 调 节,根 据 池 中 溶 氧仪的 DO 反馈信号与 DO 设定值进行比较,将偏差 通过 PID运算后传给阀门的行程控制器调节阀门的 开度,进而控制池内的 DO 值。

2023-09-24 20:31:32 56 1

原创 周报8_27

本周学习了论文的写作规范,包括写英文论文前中文版本的语法顺序,以及论文每个部分的组成。在这个基础上,阅读了老师上次跟我讲解了部分的一篇关于COD—DO——功率的硕士论文,将论文结构套到这篇硕士论文上,分析了这篇论文的每个组成部分。其次,听取老师的建议后,我的论文写了几句摘要,感觉有点无从下手,下周继续加油争取借鉴别人的写法,先把摘要慢慢写出来。摘要一般包括研究背景、目的、方法描述、结果等。研究背景在水质检测中,化学需氧量( COD) 很难实现实时、精准、经济的测量。

2023-08-27 20:07:27 49

原创 周报学习记录-8-20

本周的学习内容包括:阅读一篇深度学习跟传统DO控制方法结合的论文,学习其他人的写作思路、代码学习以及DO控制方法学习。总体来说,在DO控制方法学习上完成度并不高,这部分查找到的资料比较多,我学习的太浅了,除了PID和MCP,其他几个方法只知道是什么东西,还并不了解原理。活性污泥系统曝气池中,传统技术基本采用PID控制器偏多,而PID控制器参数调整不具有自适应性,针对断崖性的干扰难以及时准确的调整DO浓度。

2023-08-20 20:18:43 54 1

原创 周报—2023/8/13

本周的学习内容包括读一篇关于精准曝气的论文以及时序代码部分。在论文阅读上,根据阅读论文的结构分析自己的论文在对应部分需要写哪些内容。根据自己要写的内容,列出来一系列要解决的问题。在代码时间部分,学习了一个只考虑用历史负荷来预测未来负荷的例子。看了几篇环境方向的论文,研究背景部分都差不多,做水的就总结水污染问题。溶解氧浓度受多种因素影响,单一曝气量的能耗太大,然后针对这个问题提出了在多因素影响下如何曝气能满足低能耗的需要。这点是可以借鉴的,因为我要做的DO智能控制解决的核心问题也是能耗。

2023-08-13 20:59:44 117 1

原创 周报总结记录

对于给定高维时间序列数据(例如,传感器数据),如何检测异常事件,例如系统故障和攻击?难度更大的是,如何能捕获复杂的传感器间关系,并检测和解释偏离这些关系的异常情况?最近深度学习方法已经改善了高维数据集的异常检测;然而现有的方法并没有明确地学习变量之间现有关系的结构,或者使用它们来预测时间序列的预期行为。论文中提出一种基于 GNN 的结构学习模型 GDN(Graph Deviation Network)来解决多变量时间序列异常检测的问题,此外还利用 GAT 学习到的注意力权重来解释检测到的异常。

2023-07-23 22:15:02 61 1

原创 周报总结记录

这段时间在忙比赛以外的时间主要做了一下工作:1、加强代码能力。2、学习写作结构和阅读论文。3、查找老师上次跟我提的方向的相关论文。在论文写作上,我逐渐清楚了论文的结构和写作思路,并且最近读了几篇论文了解了别人的论文构成;在我的研究方向上,我发现我找不到相关的论文,可能是我的检索方式有问题,准备请教师兄。本文出发点是为了更好地建模多变量时间序列数据中成对变量之间的潜在空间依赖。

2023-07-16 22:18:58 51 1

原创 周报文献记录

周报

2023-06-04 20:59:53 156 1

原创 学习周报_5_7

本周的学习内容包括两个方面,一个是看了一篇GAT的论文;一个是在kaggle那个项目上继续学习了数学建模的知识。通过看GAT这篇论文,了解了引入注意力机制通过动态地计算节点之间的权重来处理节点之间关系。然后在数据建模方面,主要上手学习了pandas数据处理的一些函数和方法。相比传统的GNN模型,GAT有优点也有缺点,它模型采用自注意力机制和多头注意力机制,具有更好的表达能力和可扩展性,同时还具有更高的灵活性和局部性,可以更好地应对不同的图数据应用场景和问题。

2023-05-07 22:21:03 439

原创 四月三十号-周报

本周学习内容主要是数学建模、论文阅读、以及流体计算。数学建模部分在kaggle竞赛上找了个项目在跟着学习了,主要看了点pandas和numpy在常用的一些东西,内容比较简单,周报就没写这个了。论文阅读部分,因为上周看GNN的时候看到了用CNN来提取特征这种手段,这周就找了GCN来看,大致学习了GNN的一些变体模型,流体计算部分是看CFD数值模拟的时候找资料看到了这个,觉得这是一种把环境数据转换到计算机计算的手段就看了一些。

2023-04-30 20:54:03 99

原创 【第五周周报】

周报

2022-10-16 23:11:13 133

原创 第四周周报

第四周周报一、深度学习模块1.问题解析、函数模型2.数据集、权重初始化2.1代码实现3.FP正向传播过程3.1第一层3.2第二层3.3代码实现4.BP反向传播过程4.1代码实现5.训练6.整体代码和结果验证二、python学习1、datetime模块-时间和日期1、获取当前时间-→ a = datetime.datetime.now(),这个函数获得的类型是class类型,是一个对象2、函数 **.strftime('格式')**格式化生成字符串日期时间。 datetime模块下datetime类里面的s

2022-10-10 11:21:26 338

原创 第二周周报

第二周周报代码学习和总结OS模块学习shutil模块-→作为os模块的补充经典例题总结p018_分类统计实现p019_不同文件之间的关联p020_txt文件的整合p021_统计每个兴趣的学生人数英文文献学习-ImageNet Classification with Deep Convolutional Neural Networks摘要大概意思总结:实验结果:结论大概总结:卷积神经网络原理学习输入卷积:池化(下采样、Pooling:Shrinking the image stack):ReLUs:Recti

2022-09-25 23:44:57 226

原创 p001周报_python问题记录

第一周周报

2022-09-18 18:59:56 175 1

原创 p001_周报_线性规划最优解总结

线性规划最优解问题总结

2022-09-18 18:52:20 288

空空如也

空空如也

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

TA关注的人

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