- 博客(133)
- 收藏
- 关注
原创 Macos Clear App
直接在“应用程序”目录中删除(或把图标拖进废纸篓)确实是 macOS 上最基础、最常见的卸载方式,但。虽然删除了应用程序主体,但很多软件会在你的系统深处(主要是隐藏的~/Library资源库目录)留下,比如:软件的偏好设置(Preferences)缓存文件(Caches)应用程序支持文件(Application Support)运行日志(Logs)随着时间推移,这些残留文件可能会占用不少原本就不多的硬盘空间。
2026-03-03 18:28:56
282
原创 计算机体系结构-GPU与SIMD
本文探讨了GPU的SIMT执行模型及其关键特性分支发散问题。首先介绍了Warp(32线程组)的概念,指出同一Warp内的线程必须同步执行相同指令。当遇到条件分支时,GPU会串行执行所有路径,通过掩码机制闲置不符合条件的线程,导致SIMD利用率下降。文章通过具体案例分析了利用率计算方法,并解答了不同场景下的利用率问题:当所有线程行为一致时可达100%;通过调整满足条件的线程比例可实现62.5%或56.25%的利用率;但理论计算表明最低利用率约为51.56%,无法达到50%。这些分析揭示了GPU编程中分支优化的
2026-01-23 21:02:26
950
原创 计算机体系结构-向量计算机/链式操作/完全流水化/内存交叉存取
本文探讨了向量处理器架构设计的核心问题,主要包括: Bank数量计算:为确保无阻塞访问,Bank数量需≥50,最终确定为64个 向量长度确定:通过链式操作分析,得出L=41(或40) 不同架构性能比较: 不支持链式操作需231周期 Bank减半的VC-Mini需129周期 VC-Tiny的Bank数量经计算为8个 多核性能问题:Ultra-100因行缓冲区冲突导致效率下降 优化方案:建议采用Bank划分、地址映射优化或增加二级缓存 文章通过时序分析和冲突计算,深入剖析了向量处理器的性能瓶颈及优化方法。
2026-01-23 18:08:56
650
原创 计算机体系结构-内存一致性
摘要: 本文探讨了内存一致性模型中的顺序一致性(SC)与弱一致性。在SC下,程序指令按代码顺序执行且全局可见,而弱一致性允许指令重排以提升性能。分析表明:(a)线程T1可能因flag[0]始终为1而陷入死循环;(b)SC下X[0]可能为2、3或4;(c)变量a可能为2、4、6或8;(d)b始终为0;(e)弱一致性下X[0]可能进一步出现1。死循环会阻断后续操作,而弱一致性因重排可能导致意外结果(如X[0]=1)。SC提供直观保证,但弱一致性需同步机制避免错误。
2026-01-23 16:22:44
876
原创 计算机体系结构-缓存一致性2
本文解析了基于目录的缓存一致性协议(Directory-based Cache Coherence)在分布式共享存储系统中的实现机制。通过典型考题分析,详细阐述了目录作为主节点(如P4)的核心功能,包括记录数据副本位置(Sharers List)和状态管理。重点对比了监听(Snoop-based)和目录两种协议的区别:前者采用广播通信,后者通过点对点消息传递实现扩展性。文中逐步解析了读写请求的处理流程,包括状态转换(如MSI协议)、消息传递(请求-失效-响应)以及冲突处理(如数据替换)。该协议虽然延迟较高(
2026-01-22 20:08:59
1000
原创 计算机体系结构-缓存一致性问题
本文解析了多处理器系统中基于总线监听的MSI写失效协议问题。通过直接映射缓存中块X和Y的冲突场景,详细介绍了缓存一致性机制,包括监听协议、写失效操作和MSI状态模型(Modified/Shared/Invalid)。针对题目给出的6个操作序列,逐步分析了每个处理器请求时的缓存命中/缺失情况、总线请求类型、响应者身份以及最终各缓存状态的变化过程。特别强调了X和Y映射冲突时的特殊处理,如脏数据写回和块替换操作。最后给出了完整的解题逻辑和状态转换表格,帮助理解多处理器缓存一致性的实现原理。
2026-01-22 20:04:02
838
原创 哪些鼠标不支持Mac mouse fix呢?
如果你想要完美的 Mac Mouse Fix 体验(如丝般顺滑的触控板式滚动、手势操作),建议更换为。
2026-01-22 10:57:49
952
原创 ssh远程访问另一台windows(可扩展到docker环境)
摘要:本文介绍了在Windows系统上安装和配置OpenSSH服务器的详细步骤。首先检查网络连通性,若局域网无法ping通则需使用ZeroTier等VPN工具。通过PowerShell命令检查OpenSSH安装状态并完成安装,或手动下载安装包。配置完成后启动SSH服务,测试本地连接并获取IP地址。针对网络阻断情况,推荐使用ZeroTier建立虚拟局域网,详细说明了ZeroTier的注册、安装和网络配置流程,包括修改网络类型为Private、放行22端口等关键操作。最后验证SSH连接是否成功建立。
2025-11-25 14:19:15
1047
原创 MacOS彻底清除docker及image
摘要:在macOS卸载Docker Desktop后,镜像和容器不会自动清除,需手动清理。正规步骤:1) 先用Docker CLI删除所有容器、镜像、卷等;2) 卸载Docker.app;3) 删除残留目录(~/.docker等);4) 重启释放空间。非正规补救方法:直接卸载后,需手动删除/Library/Group Containers等残留文件。关键点在于彻底清除Docker的虚拟磁盘(qcow2)和相关配置文件。
2025-11-13 23:38:52
349
原创 WSL 安装方法(简单全面)
这篇教程介绍了WSL的详细使用指南,包括WSL与WSL2的核心区别、适用场景、安装步骤、镜像迁移方法(export/import)以及开启GUI功能等实用内容。视频讲解清晰全面,适合收藏作为参考资料,遇到问题时可以随时回看。建议直接查看原视频链接获取完整教程,遇到具体问题时可结合LLM辅助理解。
2025-09-27 19:51:27
303
原创 VS Code 调试配置详解:占位符与语言差异
VS Code调试配置:占位符与语言差异指南 本文详解VS Code调试中的关键占位符和C++/Python调试差异。核心占位符包括${file}(当前文件路径)、${workspaceFolder}(项目根目录)等,支持路径组合与跨平台兼容。C++调试需预编译和复杂配置,而Python可直接执行且变量检查更直观。典型差异包括:C++需tasks.json编译任务,Python自动检测解释器;C++支持内存访问,Python支持对象可视化。文章还提供了路径处理技巧和常见问题解答,如查看占位符实际值的方法。通
2025-09-18 15:09:32
341
原创 Markdown 常用语法参考
Markdown 是一种轻量级标记语言,提供简洁易读的文本格式化方式。本文总结了 Markdown 常用语法:标题使用 # 符号分级;文本格式支持粗体、斜体、删除线等;列表分有序和无序两种;代码支持行内和块级显示;链接和图片插入方式类似;表格用 | 和 - 构建;数学公式支持行内和块级;其他功能包括换行、注释、HTML标签和任务列表。最后还介绍了图片显示问题的常见解决方法。这些语法使 Markdown 成为编写文档的理想选择。
2025-09-18 10:05:26
1033
原创 前缀和算法
比如一个数组:nums:[ -2, 0 , 3 , -5, 2, -1],如果需要计算[3, -5, 2]的子数组和,就可以利用前缀[ -2, 0 , 3 , -5, 2] 的元素减去前缀[-2, 0 ]即可。通过前缀和可以把子数组的和转换为前缀和之差,长度为n的nums数组对应的前缀和数组长度为n + 1,前缀和数组s从s[0]定义,表示nums数组中前0个元素前缀和为0。那么在nums数组中,[left,right]下标left 与 right之间(包括left 与right)的元素和。
2025-08-27 20:36:34
355
原创 Git Commit 提交信息标准格式
Git提交信息标准格式采用Conventional Commits规范,包含Header、Body和Footer三部分。Header由type、scope(可选)和subject组成,要求简短明确;Body详细说明变更动机;Footer用于关联Issue或标注破坏性变更。规范列举了11种常用type,如feat、fix等,并建议保持提交原子性。采用此规范可自动生成ChangeLog、推断版本号,提高代码审查效率。推荐配合Commitizen等工具使用。
2025-08-20 19:33:32
636
原创 miniconda error:CondaToSNonInteractiveError
这个错误是因为您需要先接受 Anaconda 官方频道的服务条款(Terms of Service)才能继续使用 conda。
2025-08-19 18:12:35
2345
原创 miniconda环境变量不生效?
摘要:本文针对Windows系统下环境变量配置不生效的问题,以miniconda3安装为例,提供解决方案。文章详细介绍了手动添加环境变量的步骤,并指出即使添加成功,在IDE终端仍可能报错的原因。主要解决方法包括:1)执行conda init powershell初始化;2)修改PowerShell执行策略为RemoteSigned。通过管理员权限运行特定命令可解决IDE终端初始化报错问题。这些步骤比MacOS系统更为复杂,但能有效确保环境变量全局生效。
2025-08-19 18:00:42
518
原创 更改桌面位置
摘要:本文详细介绍了如何安全地将桌面文件夹从系统盘迁移到非系统盘。正确操作步骤包括:在目标位置新建Desktop文件夹,通过属性-位置功能进行迁移。同时提供了常见问题解决方案,特别是针对误操作情况下的补救措施,包括使用PowerShell强制删除、重建文件夹及恢复注册表路径等关键操作。着重强调了不可直接剪切移动,否则会导致系统混乱,必须通过注册表修改来确保路径正确指向。(150字)
2025-08-19 14:07:29
719
原创 定长滑动窗口
本文系统介绍了滑动窗口算法的核心思想与应用。该算法通过左右指针动态维护一个窗口,在数组/字符串问题中高效寻找满足条件的子序列。文章通过LeetCode典型例题(209、3、1456、643题)详细解析了滑动窗口的实现技巧:1)使用累积和优化计算;2)利用哈希表检测重复;3)定长窗口的移动策略;4)处理负数情况的初始化注意事项。重点强调了调试的重要性,并对比了暴力解法与优化解法的效率差异(O(n²) vs O(n))。文中代码示例展示了如何通过维护窗口和、计数器等技巧提升性能,为处理同类问题提供了可复用的模板
2025-07-27 15:18:52
1128
原创 滑动窗口-7
这篇题解讨论了LeetCode 1652题"拆炸弹"的两种解法。第一种是作者的自研方案,分别处理k>0和k<0的情况:对于k>0,使用滑动窗口计算每个位置的累加和;对于k<0,逆向遍历数组计算。第二种是更简洁的环形数组解法,通过取模运算实现窗口滑动。两种方法的时间复杂度均为O(n),空间复杂度O(n)。关键点在于如何处理数组的环形特性,通过取模运算避免越界。
2025-07-25 19:19:12
307
原创 滑动窗口---6(稍难)
题目《爱生气的书店老板》要求计算在不改变老板生气时间的条件下,通过特定技巧最大化顾客满意度。基本思路是:首先统计老板不生气时的顾客总数,然后利用滑动窗口算法计算在连续minutes时间段内,将生气时间转为不生气能带来的最大顾客增量。最终结果为两者之和。灵茶山艾府的解法通过维护一个滑动窗口来高效计算最大增量,时间复杂度为O(n)。该问题展示了如何将原始问题分解为静态统计和动态优化两部分,并结合滑动窗口技巧获得最优解。
2025-07-25 15:28:14
346
原创 滑动窗口-5
该问题要求在卡牌数组两端取k张牌,使点数之和最大。解法采用滑动窗口思想:先计算前k个数的和作为初始值,然后依次从右边取一张牌、左边放一张牌,不断更新最大值。同时还考虑了直接取后k个数的特殊情况。时间复杂度O(n),空间复杂度O(1)。
2025-07-24 19:37:14
310
原创 滑动窗口-4
题目摘要:本文解析了两道滑动窗口相关的LeetCode题目(2841和2461)。主要思路是使用定长滑动窗口配合哈希表统计元素频率,通过维护窗口内不同元素数量来求解最大子数组和。解题要点包括:1)使用字典统计元素频率;2)通过len(dict)直接获取不同元素数量;3)窗口移动时正确更新元素频率和当前和。作者对比了自己的解法与题解,指出优化点在于直接使用len(dict)而非额外变量统计不同元素数量,并强调应该多参考优质题解。两道题的核心区别在于约束条件不同(2841要求不同元素数≥m,2461要求等于k)
2025-07-24 13:31:07
316
原创 算法学习--滑动窗口
滑动窗口是一种高效的算法技巧,用于处理数组/字符串的子序列问题。其核心思想是通过两个指针(left和right)动态调整窗口范围,在O(n)时间内解决问题。
2025-07-22 17:22:15
1233
原创 多线程-4-线程池
Python线程池使用指南: 线程池通过复用线程降低创建/销毁开销,适用于I/O密集型任务。推荐使用concurrent.futures.ThreadPoolExecutor实现,支持两种主要用法: submit()返回Future对象,配合as_completed()按完成顺序获取结果 map()直接返回结果迭代器,按任务提交顺序输出 线程池结合with语句可自动管理资源释放,有效控制并发数量(通过max_workers参数)。案例演示了网络请求、文件处理等场景下的线程池应用,相比单线程大幅提升效率。
2025-07-18 17:53:35
895
原创 多线程-3-线程同步
本文介绍了Python threading模块中的几种线程同步机制:Lock、RLock、Condition和Semaphore。Lock是最基础的互斥锁,用于防止多线程同时访问共享资源;RLock是可重入锁,允许同一线程多次获取锁;Condition用于线程间的条件通知;Semaphore则控制对共享资源的并发访问数量。文章还展示了这些机制的实际应用场景,包括线程安全的数据修改、线程间通信以及并发控制等,并提供了详细的代码示例来说明它们的使用方法和注意事项。
2025-07-18 17:47:40
964
原创 多线程-2-线程间通信
在 Python 中,实现线程间通信有多种方法,主要依赖 threading 和 queue 模块。这些机制可以帮助你安全地在多个线程之间传递数据和同步操作。
2025-07-18 17:35:05
266
原创 Python 全局解释器锁 (Global Interpreter Lock - GIL)
全局解释器锁 (GIL) 是CPython解释器(官方、最常用的 Python 解释器)中的一个互斥锁 (mutex)。它的核心作用是:在任意时刻,只允许一个线程执行 Python 字节码。这意味着,即使你的计算机有多个 CPU核心,一个 CPython 进程中的多个线程也无法真正地并行执行 Python 代码。它们可以并发执行(即交替执行),但不能在同一瞬间并行运行。
2025-07-18 17:02:14
415
原创 git更改远端文件名称以及删除指定文件夹
git添加remote文件是十分容易的,但是删除remote的文件以及更改remote文件名称是比较麻烦的,所以根据我的实际遇到的问题,讲解如何删除remote文件夹以及rename远端folder_name
2025-06-20 12:30:04
597
Java实现局域网内两点文件传输
2024-02-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅