自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (2)
  • 收藏
  • 关注

原创 课程总结报告

启动虚拟化管理程序:在物理计算机上,虚拟化管理程序(例如KVM、Xen等)会被启动。这个管理程序负责创建和管理虚拟机,它提供了对硬件资源的访问和分配。创建虚拟机:虚拟化管理程序根据用户的需求,创建一个或多个虚拟机。每个虚拟机都是一个独立的操作系统实例,其中运行着一个或多个Linux系统。分配硬件资源:虚拟化管理程序将物理计算机的硬件资源,如CPU、内存、磁盘和网络接口等,分配给每个虚拟机。这些资源可以是静态分配的(固定资源量)或动态分配的(根据需要动态调整)。

2023-05-14 22:29:32 116

原创 深入理解进程切换

跟踪分析进程切换的过程,总结进程切换的工作机制以及sp和ip在不同体系结构下汇编代码的切换方法,深入理解进程切换。

2023-04-25 19:56:26 68

原创 Vue.js设计与实现阅读笔记(十二)

在同构渲染过程中,组件的代码会分别在服务端和浏览器中执行一次。在服务端,组件会被渲染为静态的HTML字符串,并发送给浏览器。浏览器则会渲染由服务端返回的静态的HTML内容,并下载打包在静态资源中的组件代码。当下载完毕后,浏览器会解释并执行该组件代码。当组件代码在客户端执行时,由于页面中已经存在对应的DOM元素,所以渲染器并不会执行创建DOM元素的逻辑,而是会执行激活操作。在通过Vite搭建的同构项目中,可以使用环境变量。来判断当前代码的运行环境。

2023-04-16 21:01:18 80

原创 Vue.js设计与实现阅读笔记(十一)

Vue的模板编译器用于把模板编译为渲染函数。即把</编译为工作流程如下:fill:#333;color:#333;color:#333;fill:none;模板词法分析语法分析模板AST代码生成渲染函数。

2023-04-16 18:09:47 76

原创 Vue.js设计与实现阅读笔记(十)

使用虚拟节点的vnode.type属性来存储组件对象,渲染器根据虚拟节点的该属性来判断它是否是组件。如果是组件,则渲染器会使用mountComponent和patchComponent来完成组件的挂载和更新。

2023-04-14 11:50:14 38

原创 Vue.js设计与实现阅读笔记(九)

快速Diff算法包含预处理步骤,先处理新旧两组子节点中相同的前置节点和相同的后置节点。

2023-04-08 20:49:37 42

原创 Vue.js设计与实现阅读笔记(八)

双端Diff算法是一种同时对新旧两组子节点的两个端点进行比较的算法。因此,需要四个索引值,分别指向新旧两组子节点的端点。依次比较①②③④,当新旧节点的key值相同时,可以进行DOM复用。

2023-04-07 22:17:46 47

原创 Vue.js设计与实现阅读笔记(七)

对于新旧两组子节点的更新,若直接卸载全部旧子节点,再挂载全部新子节点,会产生极大的性能开销。改进方案:遍历新旧两组子节点中数量较少的那一组,并逐个调用patch函数进行打补丁,然后比较新旧两组子节点是数量,如果新的一组子节点数量更多,说明有新子节点需要挂载;否则说明在旧的一组子节点中,有节点需要卸载。

2023-04-06 17:57:06 62

原创 Vue.js设计与实现阅读笔记(六)

渲染器 8.挂载与更新 8.1挂载子节点和元素的属性 function mountElement(vnode, container) { const el = createElement(vnode.type) if (typeof vnode.children === 'string') { setElementText(el, vnode.children) } else if (Array.isArray(vnode.children)) { v

2023-04-05 22:24:38 91

原创 Vue.js设计与实现阅读笔记(五)

在浏览器平台上,渲染器可以利用DOM API完成DOM元素的创建、修改和删除。为了让渲染器不直接依赖浏览器平台特有的API,将这些操作抽象成可配置的对象。用户可以在调用createRenderer函数创建渲染器的时候指定自定义的配置对象,从而实现自定义的行为。const {if(!n1) {console . log(` 创建元素 ${ tag } `) return {

2023-04-04 16:39:20 68

原创 Vue.js设计与实现阅读笔记(四)

由于Proxy的代理目标必须是非原始值,所以不能拦截对原始值的操作。为此,需要使用一个非原始值去包裹原始值。

2023-04-04 12:50:36 46

原创 Vue.js设计与实现阅读笔记(三)

Proxy用于创建一个对象的代理,从而实现基本操作的拦截和自定义(如属性查找、赋值、枚举、函数调用等)。target:要使用Proxy包装的目标对象(可以是任何类型的对象,包括原生数组,函数,甚至另一个代理)。handler:一个通常以函数作为属性的对象,各属性中的函数分别定义了在执行各种操作时代理p的行为。一个 可撤销 的代理是可以被禁用的代理。假设我们有一个资源,并且想随时关闭对该资源的访问。我们可以做的是将它包装成可一个撤销的代理,没有任何捕捉器。

2023-04-03 17:33:28 91

原创 以time/gettimeofday系统调用为例分析ARM64 Linux 5.4.34

el0_sync在完成保存现场的工作之后,会根据ESR_EL1寄存器确定同步异常产生的原因,同步异常产生的原因很多,在ARM64 Linux中最常见的原因是svc指令触发了系统调用,所以排在最前面的就是条件判断跳转到el0_svc,el0_svc中主要负责调用C代码的el0_svc_handler处理系统调用和ret_to_user系统调用返回。为了连贯性,系统调用表及系统调用内核处理函数相关的处理细节我们稍后在讨论,我们假定系统调用处理完毕,先来看看ret_to_user系统调用返回相关的代码。

2023-03-30 20:32:27 68

原创 Vue.js设计与实现阅读笔记(二)

副作用函数的执行会直接或间接影响其他函数的执行。

2023-03-30 18:05:59 72

原创 Vue.js设计与实现阅读笔记(一)

视图层框架通常分为命令式和声明式,命令式框架更关注过程,声明式框架更关注结果。对应的声明式代码为:

2023-03-26 22:44:23 105

原创 基于VS Code的Linux内核调试环境搭建及start_kernel跟踪分析

中的配置文件拷贝到.vscode文件夹内。

2023-03-23 23:13:49 111 1

unix课件.zip

武汉大学计算机学院unix程序设计课件,共八章(不含引言)。

2019-05-23

gif倒放工具

一个可以实现GIF图片倒放的基于c#语言的小工具,操作简单。

2019-03-23

空空如也

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

TA关注的人

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