- 博客(104)
- 收藏
- 关注
原创 面试题:JS如何最快的执行垃圾回收机制
虽然你不能直接控制垃圾回收过程,但采用以上策略可以优化内存使用,减少垃圾回收的性能开销,提高代码执行速度。在这个示例中,第一个循环每次都会创建一个新的对象 obj,而第二个循环则重用了一个对象 obj,避免了过多的临时对象和变量的创建,减少了内存分配和回收的次数,从而优化了垃圾回收机制的执行。使用对象池后,我们可以重用不再需要的粒子对象,从而减少垃圾回收的开销。JavaScript 的垃圾回收机制是由 JavaScript 引擎自动管理的,通常情况下我们无法控制垃圾回收机制的执行时间和频率。
2023-08-06 09:15:00
187
原创 socket 到底是个啥
我们再次回到那个问题——socket 是什么?sock(或 socket)是操作系统内核提供的一种数据结构,用于实现网络传输功能基于不同的网络协议以及应用场景,衍生了各种类型的 sock每个网络层协议都有相应的 sock 结构体来管理该层协议的连接状态和数据传输。各类 sock 操作硬件网卡,就实现了网络传输的功能为了将这些功能让处在用户态的应用程序使用,不但引入了 socket 层,还将各类功能的实现方式抽象成了 API 接口,供应用程序调用。
2023-08-05 21:45:00
259
原创 C# 根据前台传入实体名称,动态查询数据
项目中时不时遇到查字典表等数据,只需要返回数据,不需要写其他业务,每个字典表可能都需要写一个接口给前端调用,比较麻烦,所以采用下面这种方式,前端只需传入实体名称即可,例如:SysUser。
2023-08-05 17:38:37
823
原创 Redis为什么能抗住10万并发?揭秘性能优越的背后原因
Redis是一个开源的,基于内存的,高性能的键值型数据库。它支持多种数据结构,包含五种基本类型 String(字符串)、Hash(哈希)、List(列表)、Set(集合)、Zset(有序集合),和三种特殊类型 Geo(地理位置)、HyperLogLog(基数统计)、Bitmaps(位图),可以满足各种应用场景的需求。Redis还提供了多种特性,如持久化、事务、发布订阅、Lua脚本、管道、主从复制、哨兵机制、集群机制等,可以保证数据的安全性、一致性和可用性。
2023-08-05 17:32:06
127
原创 .Net Core后端架构实战【2-实现动态路由与Dynamic API】
定义一个接口和一个特性使之成为我们的规则继承类并且实现if ((typeof(ICoreDynamicController).IsAssignableFrom(type) || //判断是否继承ICoreDynamicController接口type.IsDefined(typeof(CoreDynamicControllerAttribute), true) || // 判断是否标记了ICoreDynamicController特性。
2023-08-04 09:45:00
1047
原创 从k8s 的声明式API 到 GPT的 提示语
那就是说我们需要做的是写 Prompt 触发人工智能做事,Prompt 的内容涵盖不同的场景,不同的任务,涉及到各式各样的工作流程。最常见的声明式例子 就是数据库,查询的 sql 就表示我们想要的结果集,数据库运行查询 sql 的时候,会帮我们处理查询,并且返回查询的结果。命令式有时也称为指令式,命令式的场景下,计算机只会机械的完成指定的命令操作,执行的结果就取决于执行的命令是否正确。GPT 之前的人工智能就是这种典型的命令式,通过不断的炼丹,告诉计算机要怎么做,计算机只是机械的完成指定场景下的任务。
2023-08-04 09:30:00
112
原创 若依管理系统前端实践
也同样是在src/store/modules/user.js文件中,这是用了vuex的模块化管理,将不同的模块分别放在不同的文件中,这样可以使得代码更加清晰,方便管理。我尝试的第一种是直接将对应页面的路由存储在数据库的权限相应的字段中,当用户登录时,后端将用户所能访问的路由全部返回给前端,前端据此生成对应的路由。可以看到若依管理的前端是通过角色来控制路由生成的,而在我实践的项目中,将权限分为了三级:模块权限、页面权限、操作权限,路由则是由页面权限直接控制的。中的值,也不会影响到用户的权限信息。
2023-08-03 09:30:00
576
原创 随机森林算法深入浅出
随机森林(Random Forest)是一种集成学习(Ensemble Learning)算法,由于其优秀的表现在数据挖掘、机器学习等领域得到广泛应用。随机森林通过同时使用多个决策树对数据集进行训练,并通过投票机制或平均化方式来得出最终的预测结果。本文将对随机森林算法的基本原理、优点和缺点以及实现过程进行详细介绍。
2023-08-03 09:30:00
884
原创 AndroidBanner - ViewPager
所以,我们需要知道什么时候View可见,不可见,添加到屏幕上和从屏幕上移除,幸运的是,这些,android都提供了对应的接口来获取。view 提供了方法,可以复习该方法,当前widow的可见性发生变化的时候,会调用通知给我们。当Banner从屏幕上移除,或者Banner不可见的时候,可以停止轮播。view 提供了方法,可以复写该方法,获取到view 的可见性变化。我们根据上面的api,可以封装一个接口,来监听View的可见性。当Banner添加到屏幕上,且对用户可见的时候,可以开始轮播。
2023-08-02 10:00:00
413
原创 SpringCloud源码学习笔记3——Nacos服务注册源码分析
如果我们将服务提供方的ip地址配置在服务消费方的配置文件中,当服务提供方实例上线下线,消费方都需要重启服务,导致二者耦合度过高。上面一通分析,我们直到了springboot服务是如何启动的时候,自动进行服务注册的,如何进行服务注册的,但是nacos服务端是如何响应注册请求的的昵。会同步到nacos集群中的其他实例,这部分我们后续分析,我们重点看下onPut,看看nacos服务到底如何注册。的实现类,象征着一个Nacos注册中心的服务,也就是我们自己写的springboot服务。
2023-08-02 09:15:00
159
原创 OpenTiny 的这些特色组件,很实用,但你应该没见过
本文将给大家介绍 OpenTiny 的一些特色组件。业界组件库有的组件,OpenTiny 也都有,业界组件库没有的组件,OpenTiny 也有。从组件数量来说,OpenTiny 比业界主流的 Element Plus 和 Ant Design 都多,足足有 70 个组件。有不少是业界组件库都没有的特色组件。
2023-08-01 09:45:00
162
原创 如何理解单例模式? _
例模式(Singleton Pattern):采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。通俗点来讲:就是一个男人只能有一个老婆,一个女人只能有一个老公。
2023-08-01 09:30:00
67
原创 0002 嵌入式开发带你从小白到大佬系列之——Linux文件系统、常用文件操作命令及用户权限
Linux是开源的操作系统,各个Linux发行机构都可以按照自己的需求对Linux系统的文件系统进行相应的裁剪,所以各个Linux发行版本的目录结构也都不尽相同。ls -l //以长格式、文件列表(显示出文件的权限、所属用户用户组、日期等信息)的方式,注意到有x执行权限的文件的显示颜色不一样,在我们配置的系统中显示为绿色。:pwd命令用于显示用户在文件系统中的当前位置,该命令没有任何选项和参数,命令执行结果显示为绝对路径名。pwd命令用于浏览用户当前所处的目录路径,方便我们自我定位,如下图,
2023-07-31 10:00:00
72
1
原创 程序化广告还有未来么?——程序化领域变化的底层逻辑和反思
最近有一些做程序化广告业务的朋友和公司找我咨询,他们很困惑十年前那么时兴的DSP和ADX,最近三四年怎么忽然就不香了,广告主预算给的不像原来多,考核要求还特别多、特别苛刻。他们问程序化广告业务还有没有未来呢?接下来他们该何去可从。这是一个很好的话题,我想了想之后问他们怎么理解程序化广告,要解答他们的困惑首先就需要正确理解以下几个问题:怎么正确定义程序化广告?广告主预算变少了么?预算去了哪里?预算为什么要去那里?
2023-07-31 09:45:00
336
1
原创 IT职场笔记
一致性读视图是InnoDB在实现MVCC用到的虚拟结构,用于读提交(RC)和可重复度(RR)隔离级别的实现。一致性视图没有物理结构,主要是在事务执行期间用来定义该事物可以看到什么数据。
2023-07-31 09:15:00
63
原创 微服务 - Consul集群化 · 服务注册 · 健康检测 · 服务发现 · 负载均衡
Consul向各应用服务发起的连接过程,为了提供所有健康可用的应用服务,按提供的检测方式、检测地址、检测频率等,发起通信检测,识别服务状态,踢除异常及不可用的实例,保留健康可用的实例,并把结果上报给 Consul-Server/Leader。在集群中,每种应用服务都可能不止一个运行实例,订单服务A调用产品服务B,通过ConsulAPI给出的产品服务B可用地址会是多个,同样都是产品服务,有的资源已用90%,有的资源才用10%,为了避免这种资源利用不均匀,如何做到负载均衡呢?以下先阐述节点的维护。
2023-07-30 10:00:00
866
原创 迁移学习《Efficient and Robust Pseudo-Labeling for Unsupervised Domain Adaptation》
问题:无监督域适应传统方法将超过一定置信度阈值的数据视为目标域的伪标记数据,因此选择合适的阈值会影响目标性能。在本文中,提出了一种新的基于置信度的加权方案来获得伪标签,并提出了一种自适应阈值调整策略,以在整个训练过程中提供足够和准确的伪标签。准确地说,基于置信度的加权方案根据置信度生成伪标签具有不同的贡献,这使得性能对阈值不太敏感。此外,所提出的自适应阈值调整方法根据网络对目标域的适应程度来选择阈值,从而避免了对适当阈值的穷举搜索的需要。背景。
2023-07-30 10:00:00
316
原创 二叉搜索树的本质
散列表能很好地解决精确查询(O(1) 复杂度),但无法解决范围查询(必须 O(n) 复杂度);基于有序数组的二分搜索能很好地解决精确查询和范围查询(O(log2nlog2n) 复杂度),但无法解决插入和删除(必须 O(n) 复杂度);基于二分搜索思想改进的链表(二叉搜索树)能很好地解决查询(包括范围查询)、插入和删除,所有的操作都是 O(log2nlog2n) 的时间复杂度;二叉搜索树中以任意节点作为根的子树仍然是一棵二叉搜索树,这个特点很重要,它是递归操作的关键;
2023-07-29 09:30:00
104
原创 比memcpy还要快的内存拷贝,了解一下
其实就是CPU增加了专门用于向量化计算的向量寄存器,这些寄存器跟普通的寄存器不太一样,它们的位宽都比较大,比如有128bit,256bit,甚至512bit,也就是说这些寄存器可以分别一次存储16byte,32byte,64byte的数据。1、使用_mm_loadu_si128指令,从src + 0的位置取走128bit,即16字节,然后依次类推,src + 1,...,直至src + 7,一共取走16byte * 8=128byte,取出的内容分别储存到向量寄存器c0,c1,...,c7;
2023-07-29 09:30:00
848
原创 把一个列表拆成N个子列表的四种方法
这个方法中,即使原始列表的数量无法被N整除,也不会出错,其实那是因为使用列表的切片功能访问列表时,只要切片中首位不越界,末位无所谓,这是python的一大亮点。拆分后的子列表,第一个和第二个子列表的长度都为3,最后一个子列表只有一个元素了,拆分不够均匀。但是仔细一看,这个方法还是有缺点,idx = res.index(min(res, key=len)) 这句(找到长度最短的子列表的下标)方法很浪费性能,也许我们不用每次都用min方法逐个判断子列表长度来确定待追加元素的子列表。这就要提到我们的方法二了。
2023-07-28 09:45:00
2776
原创 ICMP隐蔽隧道攻击分析与检测
进行隐蔽隧道传输的时候,被控端(防火墙内部)运行并接受外部攻击端的ICMP_ECHO数据包,攻击端把需要执行的命令隐藏在ICMP_ECHO数据包中,被控端接收到该数据包,解出其中隐藏的命令,并在防火墙内部主机上执行,再把执行结果隐藏在ICMP_ECHOREPLY数据包中,发送给外部攻击端。样本利用ICMP协议同C2进行通信,ICMP协议中的data字段可写入任意自定义数据,样本会将上线数据填充1024个字节放在ICMP协议的data字段,并且返回的ICMP数据包的data字段也是固定的1024个字节。
2023-07-28 09:45:00
758
原创 一文快速入门任务调度框架-Quartz
还不会 Quartz?如果你还没有接触过Quartz,那么你可能错过了一个很棒的任务调度框架!Quartz 提供了一种灵活、可靠的方式来管理和执行定时任务,让咱们的定时任务更加优雅。本篇文章将为你介绍 Quartz 框架的核心概念、API 和实战技巧,让你轻松上手。也不用担心,作为过来人,我会把难懂的概念和术语解释清楚,让你看完本篇文章后,就知道该如何操作 Quartz。当然,本篇文章难免有不足之处,在此欢迎大家指出。那废话少说,下面我们开始吧!Quartz 是一个功能丰富的开源任务调度框架。
2023-07-27 10:00:00
1151
原创 SOP8,SOP10,SOP16封装的PY32F002A/PY32F003管脚复用
要禁用它的RESET功能, 要在芯片的 OB(Option Bytes)里修改. OB 位于地址 0x1FFF 0E80, 占用4个字节, 其中2字节是配置, 另外2字节是这两个字节的反码. 对应 RESET 功能的设置 NRST_MODE 存储于第14位, 0表示仅复位输入, 1表示禁用复位输入,启用 GPIO 功能.从上面的管脚配置可以看到, 大部分型号都存在同一物理管脚的复用情况, 有一些是功能脚(PF2/NRST)与普通IO脚的复用.因为PY32F003型号较多, 这里只列出小于20PIN的封装。
2023-07-27 09:15:00
1603
3
原创 计算机流水线在正常程序中的体现(效果可视)
而究其原因就是计算机流水线的缘故了,很明显是我们在mov cr0,eax之前就开始译码(decode)了mov cx,0x0010,而且是以16位模式译码,直接导致了程序的失控。因为32位和16位下的代表寄存器的机器码是一样的,就比如16位下cx是d9,而32位模式下ecx也是d9,那总得有机器码在32位下表示cx吧。现在我们把汇编代码第6行的注释打开,让jmp生效(虽然我的学过的流水线遇到jmp是不会导致流水线暂停的,但有可能我虚拟机模拟的硬件太老)16位的描述符选择子:32位偏移。
2023-07-26 10:00:00
102
原创 odoo 开发入门教程系列-计算的字段和变更(Computed Fields And Onchanges)
computed field往往更容易调试:这样的字段是由给定的方法设置的,因此很容易跟踪设置值的时间。要计算的字段越复杂(例如,具有大量依赖项或当计算的字段依赖于其他计算的字段时),计算所需的时间就越长。有时,一个字段的值是根据其他字段的值确定的,有时我们希望帮助用户输入数据。在这种情况下,不会从数据库中检索字段的值,而是通过调用模型的方法来动态计算的字段的值。自然地我们将总面积定义这两者的总和,我们将为此使用计算的字段的概念,即给定字段的值将从其他字段的值中计算出来。同时,需要注意的是,不要循环遍历。
2023-07-26 10:00:00
399
原创 Thinkpad T14升级Windows11ver22h2失败问题解决小记
建议Lenovo能够真正找点工程师解决一下这类问题,别的品牌电脑都没有类似问题,但是找Lenovo中国工程师总是车轱辘话来回说,后来直接让我重置系统安装...那成百上千的环境您能给我重新配吗- -好在最终找到了解决方案,谨以此分享给所有更新失败的Lenovo用户。
2023-07-25 09:45:00
869
原创 我什么时候能变强啊!
二阶段消息是DTM新提出的,可以完美代替现有的事务消息和本地消息表架构。无论从复杂度、性能、便利性还是代码量都是完胜现有的方案。相比现有的消息架构借助于各种消息中间件比如RocketMQ等,DTM自己实现了无需额外的学习成本。它能够保证本地事务的提交和全局事务提交是“原子的”,适合解决不需要回滚的分布式事务场景。二阶段消息保证提交的原子性和如何保证业务成功执行如下时序图:二阶段消息主要是指Prepare和Submit两个阶段,主程序向DTM服务发送Prepare。
2023-07-25 09:45:00
56
原创 在ArcGIS Pro中对Revit的bim数据进行地理配准(平移、旋转等)
如果提供相同基准点的多个rvt BIM模型数据配准后的bim模型数据包含多个rvt格式数据,这些数据具有相同的基准点,不需要所有的rvt数据都进行以上操作,可以选择一份相对小的数据,按照上述步骤生成prj和wld3文件,然后复制重命名prj和wld3文件和其他rvt数据同名,再加载即已经配准定位。在ArcGIS Pro中,打开Revit的rvt格式数据,默认是没有坐标系,且位置会放置在原点位置(0,0),在实际使用过程中,需要对rvt数据进行地理配准,包括平移、旋转等操作将bim数据放置在正确的位置。
2023-07-24 10:00:00
847
原创 使用vSphere Update Manager 升级 ESXi 主机
vSphere Update Manager 是用于升级、迁移、更新和修补群集主机、虚拟机和客户机操作系统的软件。3、导入ESXi 映像文件:ESXi映像 >> 导入 >>选择下载好的iso文件,等待上传和转储完成 >> 新建基准。6、附加基准:选择需要升级的ESXi主机 >> 更新 >>附加 >> 附加基准或基准组。升级目标:ESXi 6.0、6.5 >> ESXi 6.7。4、创建基准,自定义名称 >> 内容(升级) >> 下一页。5、选择映像 >> 完成。7、选择基准 >> 修复。
2023-07-24 09:15:00
688
原创 XXL-Job与Elastic-Job详细对比
XXL-Job 和 Elastic-Job 都支持任务并行执行,但是 Elastic-Job 相比于 XXL-Job,在并行度限制和分片机制上具备更好的功能。XXL-Job 和 Elastic-Job 都支持高可用集群部署,并且都支持主备模式,但是 Elastic-Job 相比于 XXL-Job,在高可用策略上具备更好的功能。但是,两者的监控数据存储方式有所不同,XXL-Job的监控数据存储在数据库中,而Elastic-Job的监控数据存储在Zookeeper中,并且可以通过REST API获取监控数据。
2023-07-23 09:45:00
438
原创 一次线上OOM问题的个人复盘
我们一个java服务上线后,偶尔会发生内存OOM(Out Of Memory)问题,但由于OOM导致服务不响应请求,健康检查多次不通过,最后部署平台kill了java进程,这导致定位这次OOM问题也变得困难起来。查询逻辑类似上面的示例,在Service层有个根据outer_id的查询方法,然后直接调用了Mapper层一个通用查询方法queryListByConditions。
2023-07-23 09:30:00
1525
原创 webgl 系列 —— 着色器语言
GLSL 是一门独立的语言,和其他语言一样有自己的变量、运算符、函数、循环(for)、控制语句(if)、函数、数组等等。逻辑异或,只有左右两个表达式有且只有一个为 true 时,运算结果才为 true,否则是 false。类似 js 中的对象,访问也是通过 .。由于基本类型就三种(int、float、bool),所以类型转化也较js简单多了,共 6 种。: 变量的命名就按照js的习惯来就好,如果有问题,浏览器会给出较好的错误提示。矢量和矩阵类型的变量包含多个元素,每个元素是一个数值(整型、浮点、布尔)。
2023-07-22 09:15:00
841
原创 flutter系列之:在flutter中使用媒体播放器
现在的app功能越来越强大,除了基本的图文之外,还需要各种各样的其他的功能,比如视频,和直播。直播可能会比较复杂,因为涉及到了拉流和推流,需要服务器端的支持,但是视频播放就比较简单了,那么如何在flutter中使用媒体播放器呢?一起来看看吧。这样一个可以播放外部视频的app就做好了,运行之后它的界面是这样的:大家可以在这个播放器的基础上进行扩张,一个属于你自己的视频APP就完成了。
2023-07-22 09:15:00
747
原创 基于Admin.NET框架的前端的一些改进和代码生成处理
Admin.NET 是一套基于Furion/.NET 6实现的通用管理平台,模块插件式开发,框架包含了常规的权限管理、字典等管理模块,以及一些Vue3的Demo案例,框架前后端分离。后端基于基于Furion/.NET 6实现,底层集成SqlSugar;前端则是采用Vue-Next-Admin的前端框架,整体是一套非常不错的框架。本人比较喜欢研究一些技术框架,最近对该框架进行了一些研究分析,结合我自己开发框架的思路,对其前后端进行一定的修改调整,本篇随笔记录一些对该框架的相关修改内容。
2023-07-21 09:45:00
1540
原创 Spdlog日志库的核心组件分析-logger
Spdlog是一个快速且可扩展的C++日志库,它支持多线程和异步日志记录。在本文中,我们将分析Spdlog日志库的核心代码,探究其实现原理和代码结构。
2023-07-21 09:30:00
270
原创 总体设计(软件项目)
开发(develop ):除了单纯的开发活动外,还包括维护活动。项目(project ):向顾客交付的最终的全部产品,包括程序及各种文档,以及开发活动所需资源经费等各种信息。项目开发计划(project development plan):把项目与过程联系起来的计划方案。产品生命周期(product life cycle):产品从构思到不可在使用的持续时间。
2023-07-20 09:15:00
181
原创 MySQL事务还没提交,Canal就能读到消息了?
我们可以设想一下,在3->4的T1时间段,新数据对其它Session已经可见,突然Master挂了,MySQL进行主从切换,这时事务在Master上完成,如在Slave上不存在,切换后,业务会发现之前能查到的数据又没了。我们的解决方法,是在Canal消息处理时,延后1秒再处理。重现了问题后,我们对问题进行分析,并查看了相应代码,发现是半同步复制的模式导致,半同步复制有两种模式: After_Sync(5.7版本默认)模式和After_Commit(5.6版本默认)模式。Slave跑的比Master还快。
2023-07-20 09:15:00
178
原创 Seata 全局锁等待超时 问题排查
但这个疑虑很快被打消了,因为这是必现的一个问题,每次执行到这个方法都报错,甚至在下班后系统没有人使用的情况下,我一点,还是报这个错,这个时候可以确定就我一个人在用,而且查了数据库没有被锁定的数据和事务,所以应该不是资源竞争导致的获取锁等待超时。2、所有的RM在执行本地操作的时候都是一样的流程,因为数据源被Seata代理,所以在执行各自本地的逻辑时,设计到数据库操作的,都是首先更改连接为非自动提交,然后进行分支注册,注册成功后连接可以提交了,最后报告分支状态。而注册就是要获取全局锁。
2023-07-18 09:45:00
3867
3
原创 cookie时效无限延长方案
步骤2:微服务平台将此账号、cookie、时效值、关联的业务接口进行持久化存储,并跟进时效值计算出轮询时长,并触发轮询任务执行,任务中将携带此cookie去调用业务接口,保持长会话,并hold进程等待,在轮询时长到达时,继续执行任务执行,再次hold进程等待,持续循环,以保证次cookie的会话永久保持住。本方案将有效解决以上问题,在面对复杂的登录验证及有cookie时效的模式下,可以将短暂时效的cookie改为长久有效,真正意义上实现UI自动化和依赖cookie鉴权的接口自动化。
2023-07-18 09:30:00
556
原创 综合应用-自定义Spring框架-Spring IOC相关接口分析
Spring中Bean的创建是典型的工厂模式,这一系列的Bean工厂,即IoC容器,为开发者管理对象之间的依赖关系提供了很多便利和基础服务,在Spring中有许多IoC容器的实现供用户选择,其相互关系如下图所示。BeanFactory有一个很重要的子接口,就是ApplicationContext接口,该接口主要来规范容器中的bean对象是非延时加载,即在创建容器对象的时候就对象bean进行初始化,并存储到一个容器中。这三个接口共同定义了Bean的集合、Bean之间的关系及Bean行为。
2023-07-17 09:30:00
57
2023年 【10页】特斯拉:国产Model 3/Y全系官降,持续看好特斯拉产业链标的.pdf
2023-08-16
山东东营某厂房网架制作安装工程施工组织设计(四角锥三层网架 焊接球节点)_施工组织设计技术标.doc
2023-08-16
南宁市邕宁县蒲庙八鲤水泥年产25万吨水泥技改项目工程施工组织设计_施工组织设计技术标.doc
2023-08-16
某市浦镇车辆厂铝合金车体及总装厂房工程钢结构厂房施工组织设计方案_施工组织设计技术标.doc
2023-08-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅