- 博客(160)
- 资源 (25)
- 问答 (1)
- 收藏
- 关注

原创 【性能优化实战】一段高性能代码的诞生之旅——如何写出高性能代码
本文通过对一段简单、低效的代码从多个不同层面逐步对其进行性能优化,力求把这段代码的性能提升到最大。以此演示我在工作中常用的几种性能优化手段。
2022-07-10 21:49:14
1137
6

原创 如何在短时间内快速提升网站响应速度
从事网站性能优化相关工作一年多了,总结一下这段时间来的性能优化实战经验????。 软件性能,有两个定律: 木桶效应:一只木桶盛水的多少,并不取决于桶壁上最高的那块木块,而恰恰取决于桶壁上最短的那块。同样,一个软件系统卡不卡顿,并不取决于运行速度最快的环节,而恰恰取决于运行速度最慢的环节。(这里的环节,指程序运行过程中经过的所有环节,拿网站举例,一个请求从开始到结束,一般会经历:浏览器内前端代码运行、网络请求传输、服务器代码运行、数据库数据加载、服务器代码运行、网...
2022-03-27 17:10:47
2178
原创 计算机体系结构中的MPU是什么?
MPU(内存保护单元)是计算机体系结构中的硬件模块,用于无虚拟内存系统的精细化内存访问控制,常见于嵌入式设备(如ARM Cortex-M)。其核心功能包括:划分8-16个物理内存区域并设置独立权限(读/写/执行)、隔离特权与用户级访问、防御栈溢出与外设篡改。与MMU相比,MPU不支持地址映射但更轻量,适用于实时操作系统任务隔离与安全关键系统(如汽车电子)。典型配置通过寄存器定义区域基址、大小及属性,但受限于区域数量与连续物理内存需求。MPU为资源受限场景提供低成本的内存保护方案。
2025-06-11 23:18:38
651
原创 节拍定时器是什么?
节拍定时器(SysTick Timer)是嵌入式系统中用于提供精确时间基准的核心硬件组件,尤其在ARM Cortex-M系列处理器中广泛应用。
2025-06-09 23:26:27
433
原创 冯诺依曼架构是什么?
的设计,奠定了现代计算机的基础。尽管存在性能瓶颈,但其简洁性与通用性使其仍是计算技术的核心范式。,由数学家约翰·冯·诺依曼(John von Neumann)及其团队在1945年提出。:指令和数据共享同一总线,同一时间只能进行取指或数据访问,限制性能。,使计算机能够通过指令的自动执行完成复杂任务。:同一硬件通过更换程序实现不同功能(如从游戏切换到办公软件)。:指令与数据无隔离,恶意代码可能篡改程序(如缓冲区溢出攻击)。:支持动态修改程序(如自修改代码)。:统一存储简化硬件结构,降低成本。
2025-06-09 22:44:37
1052
原创 电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。如果以上步骤仍无法解决,可能是主板USB控制器硬件故障,需联系厂商进一步检测。
2025-06-09 21:28:27
1205
原创 NVIC (嵌套向量中断控制器)是什么?
NVIC是ARM Cortex-M处理器的核心中断管理模块,具有中断优先级管理、嵌套处理和向量化中断三大核心功能。它通过可编程优先级实现中断抢占,支持自动上下文保存/恢复,并采用向量表直接跳转至ISR,无需软件判断中断源。这种设计使处理器能够高效处理多中断源,广泛应用于STM32等微控制器,满足实时系统的快速响应需求。(97字)
2025-06-08 23:29:06
205
原创 ARM AMBA (高级微控制器总线架构)是什么?
摘要:ARM AMBA(高级微控制器总线架构)是一套开放的SoC互连标准,用于芯片内处理器、内存和外设的高效通信。其核心目标是标准化、高性能、低功耗、可扩展性和灵活性。主要协议包括高性能的AXI(支持多通道、突发传输)、中等性能的AHB(单通道复用)和低速低功耗的APB(适用于外设)。典型SoC采用分层总线结构:AXI连接处理器/高速组件,AHB/AXI桥接中间层,APB管理低速外设。AMBA是ARM生态系统的基石,支持IP复用,提升设计效率,广泛用于智能手机、物联网和汽车电子等领域。
2025-06-08 23:21:10
570
原创 哈佛总线架构是什么?
显著提升并行效率与实时性,成为嵌入式与DSP领域的基石。尽管纯哈佛架构在通用计算中较少见,但其思想深刻影响了现代处理器的缓存设计(如分离L1 I/D Cache)。大多数处理器(如x86、ARM Cortex-A)在底层缓存使用哈佛架构(L1分离),但在主存层面仍用冯·诺依曼架构统一寻址,兼顾性能与灵活性。(Von Neumann Architecture)(指令与数据共享同一存储空间和总线)形成鲜明对比。,使用独立的物理总线(地址总线、数据总线)和存储空间进行访问。
2025-06-08 22:04:14
769
原创 三级流水线是什么?
三级流水线是理解处理器流水线技术的基础模型。虽然现代处理器使用更深、更复杂的流水线,但三级流水线所涉及的基本概念(阶段划分、重叠执行、流水线寄存器、冲突/冒险)仍然是理解和分析更先进流水线设计的基石。ARM7 系列处理器(如 ARM7TDMI)采用了经典的三级流水线结构(Fetch-Decode-Execute),这是早期RISC处理器广泛使用的设计。,它将指令的执行过程划分为三个主要阶段,使得多条指令可以像工厂流水线一样重叠执行,从而显著提高处理器的吞吐率(单位时间内完成的指令数量)。
2025-06-08 21:51:56
1011
原创 如何判断当前web页面是在钉钉内部打开的?
摘要:判断Web页面是否在钉钉打开可通过分析User-Agent字段(含"DingTalk"标识),区分手机版(含移动设备标识)和电脑版(含桌面系统标识)。还可检测钉钉JSAPI或内核版本(如Android版内核69)。备用方案包括URL参数分析或对接钉钉开放平台。需注意隐私模式和内核兼容性问题。(149字)
2025-06-07 10:06:39
510
原创 SQL 筛选出在表1但不在表2中的数据
摘要:SQL中筛选表1存在但表2不存在的数据有3种方法:1)LEFT JOIN+IS NULL,通过左连接后筛选空值;2)NOT EXISTS子查询,检查表2无匹配项;3)NOT IN语句,但需注意NULL值问题。性能上NOT EXISTS通常最优,建议在连接键上建立索引。示例展示了从员工表中找出非经理人员的查询实现。不同数据库系统对这些方法的优化可能有所差异。
2025-06-03 18:16:52
425
原创 c# 如何中的 ? 与 ??
C# 中的 ?. 和 ?? 运算符?. (null 条件运算符)用于安全访问可能为null对象的成员,避免NullReferenceException。当对象为null时返回null而不执行后续操作。?? (null 合并运算符)为null值提供默认值。当左侧为null时返回右侧表达式结果。两者常结合使用:person?.Name ?? "未知" 表示安全获取Name属性,若为空则返回"未知"。C# 8.0还引入了??=运算符,仅在变量为null时赋值。这些运算符显著简化了null检查代码,使程序更
2025-05-31 10:36:05
355
原创 C# 如何获取当前成员函数的函数名
在C#中获取当前方法名称有多种方式:1. 使用MethodBase.GetCurrentMethod().Name(反射方式,可获取完整方法信息);2. nameof运算符(C#6.0+,编译时确定无性能开销);3. CallerMemberName特性(适合属性/事件);4. StackTrace(获取调用栈信息,性能较差);5. 表达式树(高级用法)。最佳实践推荐:普通方法用nameof,动态获取用反射,属性/事件用CallerMemberName。这些方法各有适用场景,可根据实际需求选择。
2025-05-31 10:27:38
387
原创 C# 成员函数中如何拿到当前所在类的名字?
在C#中,获取当前类名称的方法主要有四种:this.GetType():适用于实例方法,获取运行时实际类型名称(包括继承类)nameof:编译时静态获取,不受继承影响typeof:编译时获取类名称,静态和实例方法都适用反射方法:适用于静态方法,但性能较差选择依据:需要运行时类型信息 → this.GetType()只需编译时类名 → nameof或typeof静态方法场景 → 反射或typeof继承情况下,this.GetType()会返回子类名称,而nameof和typeof始终
2025-05-31 10:21:54
361
原创 在 PostgreSQL 中查找所有包含特定字段名的表
PostgreSQL查找字段所在表的几种方法:1)查询单库使用information_schema.columns表;2)查询所有库需先获取数据库列表再逐个查询;3)可用psql命令行工具批量查询;4)精确匹配可去掉通配符。查询将返回包含指定字段名的表名、模式名和字段名。需注意权限、性能及特殊字符处理等问题。这些方法帮助快速定位数据库结构中特定字段的位置。
2025-05-30 09:20:32
510
原创 .NET 函数:检测 SQL 注入风险
该 C# 函数 SqlInjectionChecker 用于检测用户输入是否存在潜在的 SQL 注入风险。它通过检查输入中是否包含常见的 SQL 关键词、注释、语句分隔符以及可疑的 SQL 表达式模式来实现。函数提供了两种检测方法:IsSqlInjectionRisk 用于基本检测,IsStrictSqlInjectionRisk 则更为严格。使用示例展示了如何检测并处理可能的 SQL 注入风险。需要注意的是,该函数并非万无一失,建议结合参数化查询、最小权限原则等最佳实践来增强安全性。此外,函数可能存在误报
2025-05-19 11:10:57
442
原创 vue 中如何使用region?
在 Vue 文件中,你可以使用 **`//#region`** 和 **`//#endregion`** 注释来创建可折叠的代码区块(类似于 C# 的 region)。这可以显著提高大型 Vue 组件的可读性。
2025-05-08 22:38:25
414
原创 vs code 如何一键折叠 Vue 文件的代码?
打开命令面板 (或搜索 “Open Keyboard Shortcuts (JSON)”添加以下配置:"key": "ctrl+alt+0", // 或你喜欢的组合键。
2025-05-08 17:18:48
681
原创 Vue 文件代码组织最佳实践
通过以上组织方式,你的Vue组件将具有更好的可读性、可维护性和团队协作性。:将复杂逻辑提取到组合式函数或mixins中。:如果组件超过300行,考虑拆分子组件。:用注释将不同功能区块分开。:将相关功能代码放在一起。/* 样式部分 */
2025-05-08 17:10:46
301
原创 VO(Value Object)详解
VO(Value Object,值对象)是面向对象编程和领域驱动设计(DDD)中的一个重要概念,主要用于表示和封装一组相关数据作为一个不可分割的整体单元。
2025-04-20 15:33:41
325
原创 常见的存在风险的文件类型
exe:可执行文件,最常见的风险文件类型。.bat:批处理文件,可以执行一系列命令。.cmd:命令脚本文件,类似于 .bat 文件。.com:旧的可执行文件格式。.scr:屏幕保护程序文件,也可以包含可执行代码。.jar:(Java Archive File):jar包能在cmd窗口中运行.sh: Linux中,.sh文件是一种Shell脚本文件,它包含了可以在Shell中执行的命令序列。
2025-02-17 11:01:46
315
原创 访问修饰符(C#)
访问修饰符(C#)所有类型和类型成员都具有可访问性级别。 该级别可以控制是否可以从你的程序集或其他程序集中的其他代码中使用它们。 程序集是通过在单个编译中编译一个或多个 .cs 文件而创建的 .dll 或 .exe。 可以使用以下访问修饰符在进行声明时指定类型或成员的可访问性:类型上的 record 修饰符会导致编译器合成额外的成员。 record 修饰符不会影响 record class 或 record struct 的默认可访问性。
2025-02-09 16:24:29
178
原创 Dotnet Publish 报错 - the process cannot access the file
donet publish error
2025-01-23 08:01:28
323
原创 idea 如何安装 github copilot
完成以上步骤后,GitHub Copilot 就会在 IntelliJ IDEA 中启用。如果遇到任何问题,可以参考 GitHub Copilot 的官方文档或 IntelliJ IDEA 插件安装指南。安装完成后,系统会提示你重启 IntelliJ IDEA。在搜索结果中找到 GitHub Copilot 插件。在设置窗口中,选择左侧的 Plugins 选项。在搜索框中输入 GitHub Copilot。重启后,插件会要求你登录 GitHub 账号。启动 IntelliJ IDEA。
2025-01-16 11:50:28
2625
原创 ubuntu 如何重装你的apt【apt-get报错: symbol lookup error/undefined symbol】
如何重装你的apt
2024-12-22 12:35:12
700
原创 linux mysql 8 大小写敏感问题
由此,我们可以得出,一个好的数据库命名规范是:数据库名、数据表名、表字段名全用小写命名,单词之间用下划线(_)连接。mysql - 命名规范/命名规则/sql规范/sql规则。
2024-12-22 10:58:18
712
IIS负载均衡扩展插件ARR(Application Request Router)
2023-06-16
本Demo将演示一段随机挑选函数代码的性能升级之旅
2022-07-11
多媒体视频处理工具FFmpeg
2022-04-20
如何对一个系统中所有接口的Response进行响应压缩.net mvc
2022-04-13
ckfinder_java_2.4.zip
2015-03-02
eclipse主题皮肤(不仅仅是配色方案)黑色系
2015-03-20
tomorrow-theme-master
2015-01-30
graphviz4net
2015-01-23
hibernate说明文档
2014-12-02
国外可视化数据结构教学软件及其比较
2014-10-06
graphviz-2.38
2015-01-23
ckeditor_4.3_full.zip
2015-03-02
ckeditor-java-core-3.5.3.zip
2015-03-02
dom4j的jar包以及说明文档
2014-09-20
C++中文参考手册——标准库
2014-07-31
网站接口响应时间随着使用时间越来越差
2022-07-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人