c 盘清理第一步,清理缓存,按下 win 加二,输入 temp, ctrl 加 e 选项, shift 加 delete, 永久删除。第二步,清理磁盘, 点击磁盘清理, 把不用的勾勾上。 第三步,清理临时文件 快分享一下你清理了多少 g 吧。
粉丝2973获赞25.6万

硬盘有缓存和无缓存具体区别是什么?这段缓存通常是指 d、 c、 b 板上的一块独立 dram 芯片,就和电脑上的内存是一样的,这块高速内存芯片专门用来存储中转数据,而无缓存硬盘则是没有这片芯片。要知道硬盘里面有一张表叫 f t l 闪存转换层,它借助数据在闪存芯片上的物理数, 这张地图放在更快的 dram 芯片里。电脑想要获取某个文件时,主控就可以瞬间插到文件的位置,直接调取出来,而无缓存则没有这个功能差异呢,就是获取速度的快慢。还有一点就是持续写入 rom, 可以 更加高效的管理数据,搬运性能在出缓后下降不明,而无缓存下降的通常比较明显。当然了,无缓存硬盘也是有些好处的,比如说更低成本、价格更合适、功耗更低以及续航优势。更小的体积更适合笔记本电脑。还有发热更小、温控更稳定,突然断电时也不容易丢数据。

电脑提示内存不足多半和虚拟内存息息相关,很多人不清楚虚拟内存的作用,它相当于硬盘划分出的临时运层空间,物理内存满载时,系统会调用它缓存数据,避免程序直接闪退卡死,默认系统自动分配数值,日常家用办公无需手动改动, 盲目调的太小依旧容易弹出内存不足提醒,调的过大也没法真正提升运行速度,还会额外占用硬盘空间。只有多开大型软件运行大型游戏频繁报错时,再参考硬件规格,适度微调即可弄懂虚拟内存,合理规避内存报错问题。

电子扫盲计划第十七期可用内存大小,你们的电脑是不是也经常玩着?感觉卡卡的?打开面板看了一下,发现自己的可用内存大小和买的时候根本不符合,难道是我被黑心商家坑了吗? 今天龟子哥就来教大家如何解决。首先按住键盘 win 加二键,在弹出的运行框里输入 mess com, 按回车,然后点击引导,再点击这里的高级选项,把这个最大内存选项的勾给取消掉。然后点击确定,再点击这里的确定,它会弹出一个让我们重 启的选项,只要我们重启前没有任何需要保存的文件,就可以点击立即重启。重启后我们再打开面板看一下是不是恢复了呢?有需要的可以收藏,以防迷路。

什么情况下会发生这个 o o m 呢? o o m 的 话,它就是 auto memory, 简单说的话就是系统内存资源不足,没办法继续满足新的内存申请了。 不过不能简单理解成内存满了就 o o m。 实际生长环境里触发 o o m 的 情况还挺多的,最常见的话就是内存资源被持续消耗。当某个进程不断地申请内存, 系统会先使用物理内存,物理内存压力越来越大时,再尝试通过回收缓存、使用 swapp 等方式来释放空间。如果系统无法回收出足够的可用内存来满足新的申请,就可能触发 o m k 了。嗯, 那除了这种情况以外呢?还有内存泄露,就是有些程序不断申请内存,但因为代码问题一直没有释放,短时间可能看不出来,但运行几天甚至几周后,内存它占用会越来越少。释放短时间可能看不出来,但运行几天甚至几周后,内存它占用。服务包括一些 c 语言程序, 如果说内存管理都有问题的话,都可能出现 o m。 你 看现在很多业务,它其实是活在容器里面的啊。嗯,我们这种情况下它会有 o m 吗?嗯,挺常见的呀,比如说给 pod 设置了两 g 的 memory limit, 但应用因为流量上涨或者代码问题,实际内存需求超过了两 g, 那 这时候即使速度机还有很多空闲内存的话,内呃容器也会直接被 o m k 了。所以看到 pod 一 直重启,除了程序异常,也要考虑容器内存限制合不合适。那还有什么其他情况吗? 啊?还有就是流量突增,像秒杀活动啊,促销活动,或者是某个接口突然爆火,大量请求同时进入应用,会创建更多的现存 连接或者缓存对象,因此正常的服务可能几分钟内内存就会被耗光。另外中间键配置不合理,它也比较容易触发 o m, 比如买社扣 buff 配置太大, 那 ready 是 没有限制内存,或者是以 elastic 色旗 hip 设置过高,那会把系统可用内存占满。那你怎么判断到底是不是发生了这个 o m? 嗯 嗯,还可以看系统日制,比如 emessage, 或者说接了 ctrl 查看那个日制。如果说发生过 o o m 的 话,通常能够看到 auto memory, kill process 这样的信息。确认发生 o o m 后,会结合 top free, 呃 ps 等工具查看内存的一个使用情况,看看是哪类进程占用了大量的内存,是自身应用的问题, 配置问题,还是流量导致的资源耗尽?那你觉得这个 o o m 它的本质应该是本质上其实就是系统能够提供的内存资源已经满足不了当前进程的一个内存需求了,原因可能是内存泄露、容积限制、流量暴增,或者中间件配置不合理。所以我一般不会 指定的 o o m 本身,而是继续往下追,到底哪个进程占的内存,那为什么占这么多?这样才能找到更优行。立即下载同城!

最近面了一个四年前端,我问他浏览器缓存与接口请求缓存该如何把控?他脱口而出,按需调取接口数据,合理设置缓存有效期,就能让页面展示和服务端数据保持统一。我点点头, 笑着问了他一个真实发生的线上事故,假设项目日常依靠本地缓存,请求缓存减少重复请求, 用户填写资料提交表单后台数据库已经顺利更新数据,跳转回列表页面查看结果,页面却依旧展示提交前的旧数据,判定为未提交状态。 用户手动刷新页面,偶尔才能加载出新内容。不少用户误以为提交失败,反复重复提交表单,产生涌跃数据。问题出在哪?他想了想,说是缓存数据没有及时更新。 我追问,那你怎么保证提交操作后页面立刻展示最新数据?难道直接关闭所有缓存功能?每次都强制请求接口,他开始吱吱呜呜面试到这就结束了。这正是前端缓存使用的幽灵陷阱。 你以为开启缓存就能优化访问速度,却没想到缓存滞后问题会让用户看到过期页面数据。如果这道题你也不会回答的话。我整理了让大厂 hr 沉默的必考题库, 包含 v o l 灵魂拷问、 react 高频陷阱、 g s 十连问等等,只要是我粉丝留下,六六六打包带走。 nice! 为什么这个问题能筛出高手?因为他考察的不是会不会简单开启缓存,而是有没有深入理解缓存机制下数据一致性的处理难点。一个能合理把控缓存策略的前端,必须建立三层防御。第一层,业务分级 区分强实时数据与可延迟数据,强实时展示场景表单提交个人信息修改、订单状态变更。这类操作完成后直接跳过缓存,优先请求服务端最新数据展示页面, 可延迟展示场景、商品列表、历史浏览记录、公告资讯等内容,允许短暂缓存延迟,正常读取缓存数据即可 平衡加载速度与数据时效性。第二层,缓存兜底校验与刷新策略管控,精准设置差异化缓存时效,高频变动数据,缩短缓存存活时间,静态固定数据,拉长缓存周期。数据提交成功后主动清空对应缓存条目,下一次访问直接拉取最新内容, 借助请求时间戳唯一标识作校验比对,发现本地缓存版本落后于服务端,自动重新发起请求更新页面试图。第三层,架构层优化,缩小数据滞后。窗口接口层面配置缓存刷新机制,关键数据修改后主动联动清理关联缓存 页面切换操作完成后,根据业务场景主动局部刷新模块内容,无需整页重载、活动大促信息密集,修改时段临时收紧缓存规则,核心业务页面暂时弱化缓存作用,优先保障用户所见数据和后端真实数据保持一致。这个就叫专业。 所以,这道题考的是什么?它考的是你有没有从单纯开启缓存提速升级为缓存场景下数据一致性调度设计的工程思维。普通前端以为缓存就是开启使用即可,而高级前端知道,在数据实时性要求面前,盲目使用缓存是一把双刃剑。

电子扫盲计划第二十一期开叉 m p, 你 花大价钱买的内存条是不是一直都是末屏运行?这是内 存没开叉 m p 时候的帧率,而这是开了叉 m p 之后的帧率,可以看出帧数有明显的提升。今天龟子哥就来教大家如何解决。我们重启电脑的时候狂按 delete 它,进入 bios 可以 看到这里内存的频率显示是二四零零的末屏,我们点击下面 o c 这个选项,在右边找到内存预设技术 叉 mp, 我 们点击禁止,把它改为 enabled, 再按 f 十保存并重启,等待它重启好进入桌面之后,我们打开任务管理器,点击第二个性能图标,再点击内存,现在我们可以看到内存频率变成了三千两百了,是不是非常简单,有需要的可以收藏,以防迷路。

哈喽,小伙伴们,今天给大家分享一个 c 盘的占用大户啊,微信, 大家都知道微信的缓存是非常多的,不管是电脑还是手机上面,因为微信他的聊天记录全部是存在本地的, 他没有云端的备份,所以说他本地的那个数据是非常多的,很多小伙伴在安装微信之后都不会去更改他的缓存路径,导致啊他的聊天记录啊,文件啊这些全部都默认放在了 c 盘。 这里的话就给大家啊,提醒一下大家,在安装了微信之后, 一定要去更改一下我们微信的缓存路径,怎么更改呢?那今天分享给大家。首先我们要打开微信,然后在我们微信的左下角啊,有一个三条杠,我们点开它有一个设置, 现在新版的微信的话,它默认就已经默认在这个打开之后就可以看到这个存储位置啊, 我们怎么去更改?只需要去点这个更改,然后去换一个盘符,比如说你的第一盘的文件比较那个空间比较大,或者是一盘的空间比较大, 那你就去选择你对应的那个硬盘盘符,这里只需要选择他的盘符就好了,不需要去新建文件夹啊,然后去选择,然后这里他会提示你啊,所有的账户数据都将更改到新的位置,然后我们 这个继续,然后这里他又提示要退出,然后继续,然后我们点 这里的话,他会迁移文件,你看哈他会在 d 盘给你生成一个叉微切的 file, 这个文件夹啊,我们就不需要再去新建文件夹了,他自己就会给我们建一个文件夹去存放这些东西, 迁移完成啊,我们等待,等待他迁移完成,如果说你数据比较多的话,那这个迁移的时间可能比较长,如果说你的目前的,比如说新装的微信,那可能很快就迁移好了,然后我们点完成, 点完完成之后,他这里会提示我们进入微信啊,重新登录一次,微信 进来了之后啊,我们去看我们的存储位置,就变到了第一排的叉微 check file 啊这里, 然后这样的话我们的微信的缓存就更就是缓存路径啊,就更改完成了,然后我们可以打开我们的微信管理里面啊,可以看到我们的 c 盘,正常的话它是存在,我们的用户 有一个叉五七的 feel 啊,现在这个文件夹已经被迁移走了,如果是老板的微信的话,他会在这里有一个微信 feel 啊这个文件夹,然后你迁移完成之后,他这个文件夹就会慢慢的变少,然后你的 c 盘的空间就会慢慢的出来,你看 迁移完成之后,你就给它刷新一下,然后你就可以看到,比如说如果说你的 c 盘是红了啊,缓存比较多的话,你可以看到它变回了蓝色, 现在我们看啊,在 d 盘里面就有一个插回去的 file 啊,它我的这个是四点八个 g 的 一个缓存文件,这个就是目前我们更改了之后的缓存路径,就到了第一盘啊,就这样子 非常简单啊,但是的话很多小伙伴他都呃没有太去在意这个东西啊,等到我们 c 盘满了之后再想起来再去更改的话, 就比较麻烦啊。今天就给大家分享这个微信的缓存路径啊,我们新装的新装的微信啊,一定要先去更改一下,免得我们之后啊更改的时候迁移数据比较麻烦啊。 谢谢大家,那大家有用的话可以帮我点点关注点点赞,我们下期再见。拜拜。

大家好,欢迎来到本期的深度解析,今天咱们换个视角,直接站在核心开发者的角度,一头扎进 linux 六点一八 amsixty four 架构下去,看看 struct page 和 folio 状态转换的微观世界。 这可不是什么枯燥的代码走读啊,这可是直接关乎系统性能,甚至决定你到底能不能揪出内存泄露或者死锁的关键密码。准备好揭开内存管理的神秘面纱了吗?咱们直接开始。 今天的议程非常清晰,我们先从页面生命周期的起点聊起,接着梳理核心的状态与转换,再深入讲讲脏液和回血机制,然后去破解让人头疼的饮用技术和印刷技术,最后再抓出几个最关键的页面标志看一看。 其实我们即将探讨的复杂机制,完全可以浓缩成一个完整的页面生命周期 u m l 状态机。这简直就是咱们排查内存问题时脑子里的上帝视角地图, 这里面的每一个方框,每一条代表函数调用的箭头,都在这张暖风图上安排的明明白白。 好,第一部分,咱们先来看看页面生命周期的起点。页面刚出生的时候呢,其实就是静静地躺在伙伴分配器里,这个时候它是空闲状态,身上带着一个 p g underscore body 等于一的专属标记。 一旦系统或者用户进程说,诶我需要内存,内核就会通过特定的标志发出请求,把它摘出来,进入已分配状态。这时候它的引用技术,也就是 andr recant 就 开始跳动了,变成大于零,这就是它生命周期的绝对起点。 在这个起点, allocate pages 这个函数绝对是关键,它简直就像是一把发令枪,砰嘀一声触发了页面从休眠转到现役的瞬间。不过你要知道,这背后涉及到非常复杂的锁机制,还要在内存池里去寻找合适的可用内存块儿, 所以它的每一次触发对细缝来说都是实打实的性能开销。接着是第二部分,核心状态与转弯 页面分配出来之后,马上就会面临一次命运的分水岭。核心怎么决定它的职责呢? 其实就是看 mapping 这个保护条件。如果 mapping 不是 空的好,它就会通过 filemap adflio 变成支持文件读写的页环称。 但如果 mapping 是 空的呢?它就会走 do anonymous page, 变成专门给进程私有使用的匿名内存。这种明确的分工真的是高效管理内存的基石。 当然了,要想让这块儿物理内存真正对用户进程发挥作用,核心还得调用 set underscore p t at c o m 这部操作,把页面转成了以映射状态,并且建立了一个大于或等于零的映射技术,也就是 map count。 说白了,就就好比给移动建豪的大楼挂上了门牌号,用户进程现在终于可以通过硬件的页表真正访问到这块地盘了。接下来进入第三部分,脏页与回写机制。 咱们来追踪一次数据修改的全过程。想象一下,发生了一次写异常,页面就被弄脏了,这时候 p g dirty 就 变成了一为了不让数据丢掉 right, 配置回 i o, 让页面进入 p g right back 状态, 等数据结结实实地写落到硬盘上了, end page rightback 就 会出场,像搞大扫除一样把脏页标志给洗掉。这三个步骤流转得顺不顺,直接决定了系统的 i o 吞吐能力。要是回血卡住了,那系统性能绝对是肉眼可见的暴跌。 可是如果系统遇到了极大的内存压力,内核可就没那么温柔了。它会使用 try to map z drop 毫不留情地强行扒掉页面的印刷关系。 这时候 map count 直接降到负一,然后呢,这个页面就被无情地踢到 l r u 非活跃列表里等着发落, 或者干脆通过 add to swap cache 塞进交换环球里。说实话,频繁触发这个过程意味着极高的性能损耗,也就是为什么我们在挑优时要极力避免系统过度使用 swap 的 原因。第四部分,我们来重点破解一下最容易搞混的引用技术与印刷技术。 这里面的数学法则可以说是至观重要。 mapcount, 它追踪的是究竟有多少个用户空间的页表象指向了这个页面,也就是外部的关注度。 而 riffcount 呢,追踪的是内核里面总共有多少个实体。依赖这个页面,你可以把它当成内核内部的安全绳。 只有彻底搞懂这两个技术的此消彼长,咱们才能在排查极其复杂的共享内容问题时做到游刃有余。 对于 riffcount 来说,零这个数字真的有魔力。就在 put 配置函数把引用技术刚刚好扣减到零的那一瞬间, free on riffcount 就 会被立刻无条件触发。 其实平时大家排查内存泄露,往往就是因为代码里用了 get page 却忘了成对去调用 put page, 导致 riffcount 死活降不到零。恭喜你,一个经典的内存泄露就这么诞生了。最后第五部分,我们来看看关键的页面标志。 这些特定的标志位其实就像是绑在页面身上的生命抵震监测仪,它们每时给客都在给内核打小报告,说明页面正在经历什么。 打个比方,如果你在排查问题时发现一个页面长时间死死卡在 p g l o c kit 或者 p g w r i t e d b b watch 状态出不来。注意了,这往往就是咱们定位内核死锁或者是底层储出设备发生故障的核心突破口。 那到底是谁在拨动这些标志位的开关呢?来看这几个核心逻辑。 lock page 负责给页面上锁, set page dirty 负责标记脏页。 每一个标志位的置一或者清零,背后都代表着一段极其严谨的核心操作逻辑,可以说是它们在苦苦维持着整个内存子息腾的底层秩序。讲到这里,页面这场漫长的英雄之旅也快要接近尾声了, free pages 终于上唱,他负责把处于未映设状态的页面彻底送回伙伴分配器的老家, 回到那里之后,他可能还会跟相邻的空显页面进行合并,最终变回最原始的空显状态,等待下一次的召唤。一切又回到了原点,完成了资源的完美闭环。 在咱们这期解析结束之际啊,大家不妨去想象一个极其震撼的画面,咱们今天聊的这些微小的状态转换,每一秒钟都在核心理数以百万 g 的 内存页面上完美无暇的翻升着, 哪怕是一个小小的标志位翻转错误,或者一次技术的遗漏,整个系统都可能会瞬间崩溃。面对如此庞大又精密的机器,了解它的运作逻辑正是我们驾驭它的第一步。希望今天的解析能让你有所收获,感谢大家的收听,我们下期解析,再见!

大家好,我是老李,上节课聊了零拷贝,讲了数据在内核缓冲区和用户空间之间的搬运,那数据到底从哪来的? 今天聊 linux page cache 页缓存,它是操作系统读写硬盘的核心机制。应用程序想读文件,如果每次都直接访问词盘,速度非常慢,所以操作系统在内存和词盘之间加了一层 page cache, 把硬盘数据缓存到内存里,读的时候先看缓存,命中了就不用碰硬盘。 访问 page cache 有 三种方式, buffer io、 默认模式,数据经过内核缓冲区 map, 内存映设。上期零拷贝聊过, 用户空间直接映设内核缓冲区, direct i o 绕过 page cache, 用户空间直接和内存交互,数据库场景会用。读文件的时候,操作系统先检查 page cache, 如果数据在缓存里叫命中,直接从内存返回,速度极快。 如果数据不在缓存里叫未命中,就要从内存读取,再写入 page cache, 下次就能命中了。 这就是 page cache 的 核心逻辑,用内存换速度。具体来说,未命中的时候, page cache 里没有所需数据。操作系统发起词盘读,请求 dma 把数据从词盘搬到 page cache, 然后从内存返回给应用。 注意,读取是以页为单位的,通常是四 kb 或八 kb, 即使你只读几个字节,操作系统也会读完整的一页到缓存。 写文件的过程是先把数据写入 page cache, 不是 直接写词盘,被修改的页会被标记为脏页,也就是 dirty page, 表示这些数据需要写入词盘。 操作系统不会立刻写,而是等合适的时机批量刷盘,比如系统空闲时或者达到一定预值时, 这种方式减少了磁盘 i o 的 次数,提高整体性能。脏页什么时候会真正写入磁盘?三种情况,第一, page cache 大 小达到预值,操作系统触发写操作,把部分或全部脏页刷盘。第二,系统内存压力大,主动将脏页写入磁盘,释放内存空间。 第三,应用程序调用 f sync 或 sync 命令,强制将所有脏页写入磁盘,确保数据持久化。 page cache 的 优点很明显,第一,提高性能,按照页去读写磁盘,减少了对磁盘的频繁 i o 操作。 第二,减少磁盘损耗, i o 次数少了,还能延长磁盘使用寿命。 缺点也有两个,第一,缓存数据要占用内存资源,内存有限时可能影响其他应用。 第二,数据写入 page cache 后,如果系统崩溃,还没刷到硬盘的脏页会丢失,这就是数据丢失风险。 page cache 是 操作系统和硬盘之间的核心缓存层, 理解它才能真正理解文件 i o 的 性能瓶颈。关注老李,持续更新!

哈喽,大家好,我是闫闫博,在上期作品我分享了机械硬盘的优点,但我打错字误导了很多人。首先更正一下,内存指的是电脑运行内存,也就是内存条,它叫 ram。 而存储系硬盘也就是放你的游戏以及软件操作系统的,它叫 ram。 其次,为什么说机械硬盘安全以及维修成功率高呢? 首先,机器硬盘可以更换磁头、电路板以及盘面数据以及长期储存,不通电可以保存五杠一零年无电核衰减 成本也比较低。现在存储类芯片价格降幅度很高。向家庭照片、视频、财务类的文件,第一,论文推荐 存在机械硬盘而需要频繁读取的文件,例如游戏操作系统剪辑缓存。推荐固态硬盘存放,一般都是固态硬盘作为系统盘和游戏盘,机械硬盘存放重要文件锈迹。其次,机械硬盘在物项文件格式化后, 可以软件恢复回锈迹,成功率也很高。物理损坏,比如磁头损坏、电路板损坏都可以更换这些硬件维修。 在这里提醒各位网友们,发现机械硬盘声音异常时,一定第一时间断电,取出机械硬盘送去专业维修,不要私自进行拆卸机械硬盘。 拆卸机械硬盘维修要在无尘车间内操作,私自维修容易导致机械硬盘内部有灰尘,导致盘面划伤,让维修更加麻烦。这里是关于内存和存储的界限,以及如何区分它们两者有什么差别。我系闫闫博,我们下期再见!

谁还不知道显卡缓存要和内存一样及时清理,不然电脑会变得越来越卡。在此之前,大家也可以留下自己的配置和证书,我来告诉你能否优化提升,需要提升点关注, 直接开始教学。首先桌面右键选择安卡控制面板,选择管理三 d 设置下滑,找到着色器缓存,选择进入。最后点击 win 加打开运行框,输入 locklab, 点击确定,然后这里搜索 textchange, 然后把里面的文件全部删除, 然后回到安卡控制面板,把着色器大小改回到驱动器默认,然后重启电脑,这样你的电脑就变得更加流畅了。

每天一个计算机小知识,什么是批处理系统?批处理系统是一种无交互性的操作系统,用户将一批作业一次性提交后,无需人工干预, 系统会自动按顺序执行所有任务。它起源于二十世纪五十年代的晶体管计算机时代,核心目标是解决手工操作与高速运算的矛盾,大幅提升 cpu 资源利用率。核心分类与特性 一、两大基本类型,单导 p 处理系统一次仅加载一个作业。多导 p 处理系统可在内存中同时存储多个作业,通过 cpu 轮转调度,进一步提升资源利用率。 二、典型优势,能批量完成大量重复任务,显著降低系统空闲时间,广泛应用于银行月底结算、电商每日订单汇总等周期性场景。三、主要局限,用户无法在执行过程中修改任务,平均周转时间较长,仅适用于无需实时交互的计算任务。

如果你的电脑底部出现了这个搜索图标,那你的电脑 cpu 和内存将很快爆满。我们只需要进入 c 盘,重点来了,因为它是隐藏的,我们选择查看显示隐藏的项目,进入 program data, 这里面有个微软的服务,进入 s 开头的文件就是它的搜索缓存,我们进入, 然后进入它的缓存数据,默认是没有权限的,我们点击继续接着进入第一项,选择 windows, 这里面有个 windows 一 d b 就是 它的大小,我们直接选中它删除,这样你的 c 盘就正常了。

我敢打赌,屏幕前百分之九十多的人都不知道什么是手机的 c p u, 缓存、内存、储存这几个概念。今天这一期视频就好好给大家讲清楚它们四个是什么,然后分别又有什么关系。首先第一个是 c p u, 像手机的 c p u, 就 有高中的笑容啊, 研发的天机啊,华为的麒麟啊等等,他就好比一个会做饭的厨师,然后时时刻刻都在为你的手机所需要的进行计算啊,预算等。然后第二个是缓存, 缓存的话,他就是厨师手上的那些勺子啊,或者需要用到的厨具,反正他就是在厨师中最近的,然后最便捷能用的到的也是最省力去拿到的东西。 第三个是内存,内存它就好比一个厨房的台面,你所需要的备菜或者你做完的那些菜品就会放在这个 台面上,你的内存越大,相当于你的台面越大,所以你能放的东西也越大,它相比缓存的话,它会大很多,但是它距离又比缓存会远一点点,所消耗的功耗又会高一点点。第四个是储存, 储存他就有点像厨房里那个冰箱,他能放很多的菜品,有时候你需要这个菜品你才会去冰箱里面拿,但是他又离你是最远的, 他们之间的联系就是 cpu, 这个厨师他在做这个菜的时候,他的手上那些盘子啊,纸包、茶碗筷就是他的 缓存,然后他做完的菜品或者正在备的菜就是那个台面就是内存,当然内存是越大是越好了。 最后一个储存就是这些可能预制好的菜品放在冰箱啊,或者还没有准备的食材放在冰箱,当然他也是最最远的。最后说一个结论,无论是缓存、内存、储存肯定是往大的去挑,当然他们的功耗也有所不同, 就是缓存一般是功耗是最小的。好了,这里是机理太美,本期的视频就讲解到这,大家有什么讨论的,想说的,欢迎评论区给我留言,拜了,拜。

ok, 那 我们来讲一下代理的一个实际的代码演示吧。嗯,最近这几个模式,其实它的代码都会稍微简单一点,因为它是结构型的,它会稍微看起来会比较简单一些。 好,那我们看一下这次我们怎么去讲代理呢?这里有我们举的例子,是本地文件一个模拟 flash, 然后通过缓存代理管理配置。其实这里的代理就主要指是什么?缓存代理 好了,核心的一个要求就是业务层不能直接访问我们的文件,要所有的读写必须通过代理 读走缓存,写也置改缓存,然后显示提交才写文件。统一的状态管理,比如说在我们单片机里面做状态保存,这个就是缓存代理,就挺有用的。 ok, 那 储存不行我们就不管了,直接看代码吧。哦,这这这这, ok, 那 我们找到面函数,这就在这面函数,那我们看是怎么进行缓存管理的啊?这还是先看一下这个头文件啊, 这里就是 flash config proxy, 就是, 呃, flash 的 配置代理,对吧?那首先我们有一个 app config, 这个是一个应用配置,它的结构就是最终被写入 flash 的 文件的完整内容嘛,然后 crc 一 些约定嘛,然后 flash 的 配置, flash 的 配置就是当前缓存是否就是有一个储存的配置结构体,看当前是不是已经有 缓存的配置,代理是不是已经出售了,当天要缓存可不可读,缓存是否已经被修改,再稍后提交。然后模拟 flash 就是 保存一个文件路径,到时候会真正写下去,对吧? ok, 啊,这些都没有,那就这里嘛这些函数了。 呃,看一下啊,一个代理出事话,然后获取,我们整体的就是只从开始读, 读取不妨文件就是获取,然后设置啊,就是 get set 嘛, set 我 们的一个配置, 这 app config 设一个配置,然后读取当断的一个东西嘛,就 get 一个其中东西或者单词节的写入, 那这里还有提交缓存到文件,然后从文件重新加载配置,对吧?好,那我们去看麦函数里面具体做了哪些操作,因为光看那个其实, 嗯,只能了解一个,大概说我们代理铺做哪些接口,具体实现我们就不用管了。具体实现其实这个就是一个思路问题,我相信大家的能力都很强啊,其实不用管这些, 首先我们说实话,我们来代理 ok, 然后读取缓存配置,它直接那个业务层,反正直接读就完了,它有的话,这里理论上它应该是会访问文件的。嗯, 一深颜色哦, p cash。 哦,好吧,这里的一个 cash, 对, 看它有没有缓存的一个数据, 但是它只是读缓存配置啊,验证业务不触发文件操作,然后这里如果它没有的话,它就会报错。这个缓存里面没有东西啊,但是它以 delete 的 时候好像是默认加载了一次缓存的,我们可以看一下 啊,对它它默认你 need 的 时候,它是先把这个病文件啊,直接看的话是看不了的。一,哎,我没有没有下那个二,进置的那个查看工具, 它就会初识化的时候先从那个病文件里面读取一个配置嘛,就 app config 就是 我们刚们指的,对于我们计算机来说,我们也可以把 label 放到 flash, 直接写 flash 就 完了,然后控制一下它的读写频率,对吧?那我们就读取缓存的配置,然后把配置给读出来,我们可以看 就命中了缓存,缓存里面就有了,那我们修改两个字段,这里我们改了,开始不直接写文件,然后就把它置为 dirty, dirty 就是 脏的嘛?那我们就比如说写 写一些东西,设 device id, 设七,然后设模式为二,然后我们这里就其实这里我们也可以继续查看,看到有一些不一样,看这里我们要判断它是否为脏状态就是被写了,然后第四步我们显示提交, 然后和缓存同步,然后那个判断脏状态就会被清除,这样五步。第五步重新加载, 让我们验证文件中的持久化结果是否读回卡写,那我们就再读回来看一下,然后再获取我们的一个配置打印出来,这样的话我们 就是这中间,我们可以设置很多次读写很多次,但都不操作我们的文件,其实我们中间也可能不关心,至于什么时候去持久化一次,不一定,我们要代码显示,比如说我们设置一个小时持久化一次,或者特殊情况下 主动去持久化的,比如说我们崩溃了持久化一次,这些都是可以的,它的那个 commit 的 话,就可以在一些特定的情况下去提交就行了。 好,我们看一下结果吧,就是代理嘛,就是所有的东西我们都不直接操作文件,至于都是代理层操作的文件,对吧?好,那我们看一下,再来看一下他的一个打印。首先我们看最开始啊对照的代码看呗。 首先初识化的时候,呃, init, 然后这里它读回来了,它报诉我们那个 case config 就是 已经读到了,这个时候它修改了一个七,对吧?二 mod 为二, 然后它有一个,这里是把它其他的参数是读完了之后,它整体打印了一次,它 print config, 它整体打印了一次, 然后这下面它又设置了,哎,等一下,等一下,好像看错了哦,以后得修改一下,这个打印看起来有点有点迷糊。 print complex in it, 呃,这,这是那个读回来的,然后这这个是第一次从硬件里面读回来,配置是这样, 然后这里我们就设置了一些,就是看它是否违章。 after set, 然后说明我们设置的参数它违章啊,因为这个是之前被我们改过,所以它还是七和二,待会儿可以改一下试一试。 然后然后它 commit 之后呢它的就不违章了,然后再把它读回来看一下,对不对?我们改一下,这个看着没意思, 哎哎哎,跟你改成六,跟你改成八八八,跟你改成六六六, 让我们重新编一下,哎哎哎。啊,为什么?超了吗?看,哦,永远的吧。哎,好吧。 呃,我们刚其实前面都看到了啊,我们的 d y s id 是 七,默懂十二,那这次我们先缓存读回来, ok, 我 们的 d y s id 是 不是七,然后十二,然后后面我们下次把它改成了六十六和八十八,然后我们再读回来看是不是,然后这次我们再看 看他的缓存就是六十六和八十八了,对吧? ok, 那 相当于这里就是一个代理的概念,让我们的一个 嗯,缓存去代理我们实际的文件操作,然后中间如果我们有多次的读写访问,其实都不会实际,他 写到我们的硬件给硬件就是延长它的使用寿命,然后也提升我们的一个响应时间,因为你直接多缓存 rom 会非常的快,但是我们就是要浪费一点 rom 空间,对吧?

如果你的电脑也装了 wps, 那 么一定要记得设置一下,不然的话不仅会占用我们大量的磁盘空间,还会捆绑一些不太好用的软件。首先呢我们先右键 wps 的 图标啊,之后选择这个云功能的一个设置, 之后紧接着将它的文件缓存位置改到 c 盘以外的盘符,之后我们再往下滑啊,之后将启动开机,自启动和启动 wps 运行和显示上传到 wps 和通过 wps 发送啊全部给关闭掉。之后呢,我们再找到 wps 的 所在文件位置,之后进入新日期的这个版本的文件,之后呢依次选择这个之后下滑,找到这三个文件 之后呢,我们再右键退出传输助手啊,之后选中我们刚才的三个软件永久删除。 之后呢就是这个捆绑的这个 wps 的 看图软件啊,非常的鸡肋,并且还会默认改变我们之前的看图软件,我们只需要啊在这个文件夹里啊找到这个程序,选中删除,这样就可以了。