- 博客(508)
- 资源 (23)
- 问答 (1)
- 收藏
- 关注
原创 C/C++ 中的 __asm volatile 函数
C/C++中的__asm volatile是GCC/Clang的内联汇编语法,用于在代码中直接嵌入汇编指令。volatile关键字确保编译器不优化这些指令,常用于硬件访问、内存屏障和系统调用等场景。其完整语法包括输入/输出操作数和寄存器约束,支持复杂的内存操作和寄存器管理。虽然功能强大,但内联汇编缺乏可移植性,不同编译器/架构语法差异大。现代开发应优先使用标准原子操作或编译器内置函数,仅在系统编程或性能优化等必要场景使用内联汇编。使用时需特别注意寄存器管理和副作用处理。
2026-01-01 23:25:01
391
原创 GCC是什么?
GCC(GNU Compiler Collection)是一个模块化设计的开源编译器系统,采用"前端-中端-后端"架构支持多种编程语言和目标平台。其编译流程包括预处理、中间代码生成(GIMPLE/RTL)、优化和代码生成等阶段,提供向量化、LTO、PGO等高级优化功能。GCC支持交叉编译、插件扩展,并包含丰富的诊断和安全特性,广泛应用于嵌入式开发、高性能计算等领域。作为自由软件运动的重要成果,GCC凭借其强大的优化能力和广泛的硬件支持,在编译器领域保持重要地位。
2026-01-01 23:20:19
704
原创 ARM 汇编指令:LDM
本文介绍了ARM汇编指令LDM(Load Multiple),用于从连续内存地址一次性加载数据到多个寄存器。文章详细讲解了LDM的基本语法、地址模式(IA/IB/DA/DB)、可选后缀(!和^)以及工作原理,特别说明了寄存器加载顺序与编号有关而与列表顺序无关。重点阐述了LDM与堆栈操作的关系,包括标准指令与堆栈别名的对应关系(PUSH=STMFD,POP=LDMFD)。最后提供了三个经典用例:块数据复制、子程序寄存器保护/恢复以及异常返回。该指令通常与STM配对使用,是ARM汇编中高效处理批量数据的重要指令
2025-12-30 19:45:06
716
原创 ARM 汇编指令:STM
本文介绍了ARM汇编指令STM(Store Multiple)的功能和用法。STM用于将多个寄存器的值存入连续内存地址,是LDM的逆操作。文章详细解析了指令语法,包括寻址模式(IA/IB/DA/DB)、寄存器列表、写回选项和特权模式选项。通过示例展示了基本存储、栈操作和批量数据保存等典型应用场景,并说明了与栈操作的关系(等效PUSH/POP)。最后总结了STM的重要特性:固定存储顺序、连续内存访问、原子性注意事项和执行效率优势,以及在实际编程中的主要应用场景,如函数调用、任务切换和中断处理等。
2025-12-30 19:32:16
770
原创 ARM架构中,乘法指令为什么通常只更新N位和Z位,但不更新C位和V位?
ARM架构的乘法指令(如MUL)通常仅更新N(符号)和Z(零)标志位,而不更新C(进位)和V(溢出)位,主要基于以下设计考量:(1) 乘法运算的溢出和进位难以统一定义;(2) 完整检测会增加硬件复杂度和延迟;(3) ARM提供了UMULL/SMULL等扩展精度指令专门处理溢出情况。这种设计体现了RISC哲学,在保持基本乘法高效的同时,通过专用指令满足特殊需求,实现了性能与硬件复杂度的平衡。
2025-12-29 22:24:33
424
原创 常见处理器架构中的ALU状态标志是什么?
ALU状态标志是CPU状态寄存器中的关键位,记录运算结果特性(如零值、进位、符号、溢出等),直接影响条件分支与逻辑判断。常见标志包括:ZF(零标志)、CF(进位标志)、SF(符号标志)、OF(溢出标志)等。不同架构(x86/ARM/RISC-V)实现方式各异,但核心功能相似。这些标志协同工作,为程序提供动态流程控制的基础,是理解汇编、调试及性能优化的关键。
2025-12-29 22:11:25
697
原创 Visual Studio 内存占用过高问题优化方案
针对VS2022内存占用过高问题,本文提供了一套按优先级排序的优化方案。核心优化包括:禁用自动恢复文档、优化调试设置(仅我的代码/符号加载)、关闭CodeLens等可视化功能、管理扩展插件(首要排查项)、按需加载项目。关键操作是识别内存大户扩展(可通过安全模式验证)和使用诊断工具监控内存。应急时可使用Ctrl+Shift+Alt+F12强制释放内存。长期建议升级至SSD并保持16GB以上内存。典型优化后中型项目内存可控制在1.5-3GB。优化重点在于精简
2025-12-28 15:14:53
796
原创 在 PostgreSQL 中存储 GUID 时,用 uuid 字段 和 string 字段的区别?
PostgreSQL中存储GUID时,uuid类型相比字符串类型(varchar/char)具有显著优势:占用固定16字节存储空间(字符串需36+字节),索引性能更优(条目更小),自动验证数据格式,并提供专用函数支持。uuid类型在网络传输中也仅需16字节二进制数据。最佳实践推荐优先使用uuid类型,特别是作为主键/外键或需要高性能查询时。仅在需要兼容外部系统特殊格式等特殊情况下才考虑使用字符串类型。性能测试表明uuid类型的存储和查询效率通常比字符串类型高20-40%。
2025-12-28 14:43:47
164
原创 JavaScript 中的枚举
JavaScript没有原生枚举类型,但可通过多种方式模拟:1) 使用对象常量实现简单枚举;2) 通过Object.freeze()防止修改;3) 用数字模拟数字枚举;4) 使用Symbol确保唯一性;5) 在TypeScript中使用原生enum语法;6) 通过Map实现现代枚举;7) 用类实现带方法的复杂枚举。最佳实践包括:简单场景用冻结对象,需要唯一性用Symbol,需要方法用类。对于完整枚举功能,推荐使用TypeScript。
2025-12-26 09:00:00
129
原创 文件断点续传(Resumable Download/Upload)的实现原理解析
文件断点续传技术通过将大文件分块传输,记录传输进度,实现中断后继续传输未完成部分。核心原理包括文件分块、进度记录和校验机制,利用HTTP协议的Range头部支持字节范围请求。实现时需处理分块上传、进度存储、完整性校验等关键环节,并可通过并发上传优化传输效率。该技术广泛应用于云存储、版本控制和P2P下载等场景,显著提升大文件传输的可靠性和效率。
2025-12-26 08:00:00
859
原创 ARM 汇编指令:UBFX
本文介绍了 ARM 汇编指令 UBFX(无符号位域提取),其功能是从源寄存器提取指定位域并零扩展存入目标寄存器。指令格式为 UBFX <Rd>, <Rn>, #<lsb>, #<width>,其中 lsb 指定起始位,width 指定提取位数。该指令比移位和掩码操作更高效,适用于数据结构字段提取和硬件寄存器操作,支持 ARMv6T2 及以上架构。示例展示了如何提取数据中的特定字段,并对比了与 SBFX 指令的区别。
2025-12-25 21:28:16
324
原创 ARM 汇编指令:STP 和 LDP
ARMv8-A架构中的STP/LDP指令是一对高效的内存操作指令,用于同时存储/加载两个寄存器。STP(Store Pair)将两个寄存器值存入相邻内存地址,LDP(Load Pair)则进行相反操作。这对指令通过单条指令完成两次内存访问,比单独使用STR/LDR更高效。主要用途包括函数调用时的栈操作(保存/恢复寄存器)、大数据块移动以及结构体/数组元素存取。指令支持三种寻址模式:偏移模式(不修改基址)、前变基模式(先修改基址)和后变基模式(后修改基址),其中后两种模式特别适合栈操作。使用时需注意地址对齐要
2025-12-25 21:18:58
716
原创 ARM 汇编指令:PUSH 和 POP
本文介绍了ARM汇编中的PUSH和POP指令,它们是用于栈操作的指令。PUSH用于将寄存器值压入栈(等价于STMDB),而POP用于从栈中恢复寄存器值(等价于LDMIA)。文章详细说明了这两种指令的语法、功能和使用场景,包括在子程序调用时保存和恢复现场的应用。此外,还指出了寄存器顺序、栈对齐要求等注意事项,并与x86架构的栈操作进行了简要对比。文章最后给出了一个完整的函数调用与返回示例,帮助理解这些指令的实际应用。
2025-12-24 21:37:06
1199
原创 ARM 汇编指令:ERET
本文详细介绍了ARM架构中的特权指令ERET(Exception Return),该指令用于从异常或中断处理程序返回。ERET会原子性地执行两个关键操作:从ELR_ELx恢复PC(返回地址)和从SPSR_ELx恢复处理器状态(包括标志位、中断使能、执行状态等)。作为特权指令,ERET只能在EL1及以上级别执行,是操作系统实现异常处理和特权级别切换的基础机制。与普通RET指令不同,ERET会完整恢复处理器上下文,支持执行状态和异常级别的切换。文章还提供了AArch64中断处理流程示例,并解释了相关系统寄存器的
2025-12-24 21:23:56
549
原创 ARM 汇编指令:BX
BX 指令是 ARM 架构中实现分支跳转和指令集状态切换的关键指令。它通过目标地址最低有效位(LSB)决定跳转后进入ARM状态(LSB=0)还是Thumb状态(LSB=1),并自动对齐地址。主要用途包括:子程序返回(BX LR)、ARM/Thumb状态切换、以及函数指针调用。与BLX、B等指令相比,BX不保存返回地址但支持状态切换。该指令体现了ARM架构的灵活性,是实现混合编程和高效控制流管理的重要工具。
2025-12-23 22:30:57
1132
原创 ARM 汇编指令:B
摘要:ARM汇编指令B实现无条件跳转,是程序流程控制的基础指令。其语法为B label,直接跳转到指定标签位置执行。主要用于循环控制、代码块跳过和简单函数跳转,但不保存返回地址。与BL(带链接跳转)、BX(支持指令集切换)等指令形成对比。技术特点包括24位有符号偏移量(±32MB范围)和Thumb模式下的不同实现。作为最基础的分支指令,B直接改变程序计数器值实现流程转移。
2025-12-23 22:04:41
321
原创 ARM 汇编指令:TST
本文介绍了ARM汇编中的TST测试指令。TST执行按位与操作但不保存结果,仅更新条件标志位(N、Z),常用于位测试和条件判断。其语法为TST{cond} Rn, Operand2,通过示例展示了检查寄存器零值、特定位状态、2的幂以及内存对齐等典型应用场景。与AND和CMP指令相比,TST不保存结果但更高效,特别适合作为条件分支的前置测试。文章还解析了相关数学原理,如2的幂的二进制特性和地址对齐判断方法。
2025-12-22 21:41:45
1201
原创 ARM 汇编指令:BEQ
本文介绍了ARM汇编中的BEQ指令(相等时跳转)。BEQ根据CPSR中的Z标志位进行条件跳转,当Z=1(前一条指令结果为0)时跳转到指定标签。文章详细讲解了BEQ的语法格式、工作原理、典型应用场景(如条件判断、循环控制)以及与BNE的区别。通过多个代码示例展示了BEQ与CMP/SUBS指令的配合使用,并阐述了其底层标志位设置原理。最后指出BEQ是ARM条件执行体系的重要组成部分,能实现高效的条件分支逻辑。
2025-12-22 21:39:23
559
原创 .NET 文件操作中常见的内存泄漏场景梳理
本文梳理了.NET文件操作中常见的内存泄漏场景,包括未释放文件流/句柄、未取消订阅FileSystemWatcher事件、静态对象持有文件引用、异步操作泄漏、递归操作资源积累、大文件处理不当、COM组件未释放及缓存机制问题。提出了预防措施:使用using语句、遵循IDisposable模式、设置合理缓冲区,并推荐使用性能计数器和内存分析工具进行检测。最后提供了安全文件处理类的最佳实践模板,强调及时释放非托管资源的重要性。
2025-12-21 19:59:20
342
原创 使用 VS Code 开发 C# 程序时,如何配置 launch.json
本文介绍了在VS Code中配置C#程序调试文件launch.json的方法。关键点包括:launch.json是调试器配置文件,定义了.NET调试器、程序启动方式和参数传递等核心设置。文章详细说明了name、type、request、program等核心参数的作用和配置示例,特别指出C#项目调试的是编译生成的.dll文件而非.csproj文件。同时提供了C#控制台项目的launch.json配置模板,帮助开发者快速上手调试配置。文章属于VS Code开发C#系列教程的第三篇,前两篇分别介绍了基础编写方法和
2025-12-21 08:00:00
970
原创 常见的RTOS(实时操作系统)介绍
RTOS(实时操作系统)主要分为开源/免费和商业闭源两类。开源RTOS如FreeRTOS、Zephyr和RT-Thread适合物联网和资源受限设备,具有轻量级、低成本特点。商业RTOS如VxWorks、QNX和ThreadX则面向高可靠性领域,提供专业支持和行业认证。基于Linux的实时方案如PREEMPT_RT适用于复杂系统。选择RTOS需考虑硬件资源、实时性要求、生态支持、成本和功能需求等因素。不同应用场景有相应推荐方案,如物联网设备首选FreeRTOS,汽车电子考虑QNX,航空航天则倾向VxWorks
2025-12-20 20:16:02
942
原创 Azure RTOS ThreadX 简介
Azure RTOS ThreadX是微软Azure RTOS套件的核心组件,专为深度嵌入式系统设计的高性能实时操作系统。它具有极小的内存占用(2-10KB ROM)、确定性响应时间、丰富的线程管理功能(信号量/互斥锁/事件标志等),并集成了文件系统、网络协议栈等中间件。ThreadX已通过多项工业/汽车/医疗领域最高安全认证,在数十亿设备上验证了可靠性。作为微软物联网战略的一部分,ThreadX特别适合需要连接Azure云的高可靠性边缘设备开发。相比开源方案,它在性能确定性、安全认证和Azure生态集成方
2025-12-20 20:05:40
743
原创 .NET 中常见的内存泄漏场景及解决方案
摘要: 尽管 .NET 具备自动垃圾回收(GC),内存泄漏仍可能发生。常见场景包括: 事件未注销:订阅者未取消事件导致引用滞留,应实现 IDisposable 或使用弱事件模式。 静态集合无限增长:静态集合长期持有对象,可用 WeakReference 或 MemoryCache 限制生命周期。 非托管资源未释放:需实现 IDisposable 和析构函数,确保资源释放。 线程泄漏:如 Timer 持有对象引用,应主动停止或改用 CancellationToken。 WPF绑定泄漏:视图卸载时需清理绑定,或
2025-12-19 22:36:27
560
原创 钉钉Webhook机器人如何发送群消息?
本文详细介绍了钉钉Webhook机器人发送群消息的方法。首先需在钉钉群设置中创建自定义机器人并获取Webhook地址,然后可通过Python代码发送多种消息类型,包括文本、Markdown、带@提醒、链接和按钮卡片消息。文章还提供了加签验证的安全设置方法、cURL示例及注意事项,如频率限制、消息长度等。最后建议使用官方工具调试,确保消息发送成功。通过简单的接口调用即可实现钉钉群消息自动化推送。
2025-12-19 22:25:49
398
原创 ARM 汇编指令:MOV
本文介绍了ARM架构中的MOV指令,它是数据传送的基础指令,功能类似于高级语言的赋值操作。MOV支持将寄存器值、立即数或移位后的值传送到目标寄存器,并具有条件执行和更新标志位的功能。文章对比了MOV与LDR指令的区别,提供了具体实例,并说明了32位与64位ARM架构中MOV指令的差异。MOV指令凭借其高效性和灵活性,成为ARM汇编编程的重要基础。
2025-12-18 20:07:47
702
原创 汇编指令在不同架构中的联系与区别
不同架构反映不同的设计权衡(性能/功耗/面积/兼容性),但最终都服务于相同的计算目标。理解这些差异有助于编写高效代码和进行系统级优化。:通过标志寄存器+条件跳转。:必须通过加载/存储指令。:允许内存到内存操作。
2025-12-18 19:56:53
1006
原创 ARM 汇编指令:STR
STR是ARM汇编中的存储寄存器指令,用于将寄存器值写入内存。基本语法为STR{size} Rt, [Rn, operand2],支持字节(B)、半字(H)和字操作。主要寻址模式包括:偏移模式(基址不变)、前变址(先计算地址并更新基址)和后变址(先存储后更新基址)。在ARMv8 64位架构中,寄存器名变为X/W前缀,数据大小通常由寄存器宽度隐含。STR与LDR指令配合使用,是ARM汇编内存操作的基础,常用于变量赋值、函数调用保存寄存器等场景。
2025-12-17 22:09:52
653
原创 ARM 汇编指令:ORR
ARM 汇编指令 ORRS 执行按位逻辑或运算并更新条件标志位。其格式为 ORRS Rd, Rn, Operand2,将操作数按位或后存入目标寄存器,并设置N(符号)、Z(零值)和C(进位)标志位。与普通ORR的区别在于会更新标志位,适用于需要条件判断的场景,如位测试或状态检查。在Thumb-2中支持宽指令,早期Thumb模式限制寄存器范围。典型用途包括置位特定位、组合位测试等,若无需标志更新可使用ORR,纯测试建议用TST指令。
2025-12-17 21:42:07
323
原创 ARM 架构中的浮点寄存器(Floating-Point Registers)
ARM架构中的浮点寄存器支持高效的浮点运算和SIMD并行计算。ARMv8架构提供32个128位V寄存器,可灵活访问不同数据宽度(16B/8H/4S/2D)。浮点运算采用IEEE 754标准,通过专用FPU单元执行。NEON技术实现SIMD并行处理,单个指令可操作多个数据元素。控制寄存器FPCR/FPSR管理运算模式和状态标志。编译器会自动优化浮点代码,将变量分配到浮点寄存器,并使用专用指令(如FMOV、FADD)进行计算。这种架构特别适合科学计算、图形处理等需要高性能浮点运算的场景。
2025-12-16 22:35:34
1634
原创 FreeRTOS 简介
FreeRTOS是一款开源轻量级实时操作系统内核,专为嵌入式系统设计,支持多任务调度、内存管理和通信机制。其核心特性包括实时性、高效性(内核仅几KB)、跨平台支持(40+处理器架构)和MIT开源许可。关键功能涵盖任务管理、同步通信(队列/信号量等)及中断处理,广泛应用于物联网、工业控制等领域。相比μC/OS等RTOS,FreeRTOS以社区活跃和商业友好著称,2017年被亚马逊收购后增强了IoT功能。建议通过STM32/ESP32开发板实践任务调度等基础功能入门。
2025-12-16 22:33:53
811
原创 ARM 汇编指令:LDR
LDR是ARM汇编中的加载指令,用于将内存数据读取到寄存器,类似C语言的指针解引用。其基本语法为LDR{条件}{大小} 目标寄存器, 源内存地址,支持固定地址、寄存器地址及带偏移量的寻址方式。常见变体包括LDRH(半字)、LDRB(字节)等不同数据大小的加载。伪指令LDR =用于加载地址或立即数,而[Rn]形式才是真正的内存读取。LDR与STR指令配对使用,分别实现内存读写,是访问变量、外设寄存器和数据结构的基础操作。核心功能可概括为"从内存搬数据到寄存器"。
2025-12-15 21:15:51
1020
原创 ARM 架构中的 CONTROL 寄存器
本文详细介绍了ARM Cortex-M架构中的CONTROL寄存器功能与应用。该寄存器主要控制栈指针选择(MSP/PSP)、线程模式特权级别(特权/用户级)和FPU上下文管理。在RTOS任务切换、特权分离等场景中发挥关键作用,通过MSR/MRS指令或CMSIS函数进行访问。文章还强调了修改CONTROL后的ISB同步要求,并对比了其与APSR、PRIMASK等寄存器的区别。深入理解CONTROL寄存器对RTOS和安全固件开发至关重要,具体实现需参考芯片技术手册。
2025-12-15 18:54:34
1392
原创 雪花ID(Snowflake ID)是什么?
雪花ID是Twitter开源的分布式唯一ID生成算法,采用64位结构(1位符号+41位时间戳+10位机器ID+12位序列号),兼具全局唯一性和时间有序性,适合高并发分布式场景。其核心优势包括本地高效生成(每秒百万级)、对数据库索引友好,但需注意时钟回拨风险及机器ID动态管理问题。相比UUID的无序性和数据库自增ID的中心化依赖,雪花ID在电商、支付等需有序唯一标识的业务中表现更优,但需处理前端长整型精度限制。
2025-12-14 22:37:22
322
原创 GUID为什么不会重复?
GUID几乎不会重复,主要由于128位的庞大组合空间(约3.4×10³⁸种可能)和精心设计的生成算法。不同版本融合了时间戳、MAC地址、命名空间散列或高质量随机数等唯一性因素。现代系统使用密码学安全随机数生成器,使重复概率低至可忽略不计(约2.71×10¹⁸次生成才有50%碰撞几率)。工程实践中从未发现非故意的重复案例,其唯一性已成为分布式系统的基石。虽然数学上可能重复,但实际风险远低于硬件故障等极端事件。
2025-12-14 22:22:23
709
原创 ARM 架构中的数据内存屏障指令 DMB
本文介绍了ARM架构中的数据内存屏障(DMB)指令。DMB是一种同步指令,用于确保其之前的内存访问操作完成后才执行后续操作,解决多核环境下因乱序执行和缓存导致的内存一致性问题。文章详细分析了DMB的必要性、语法参数(如SY、ISH等作用域选项),并对比了DMB与DSB、ISB等其他屏障指令的差异。DMB是构建可靠多线程程序的基础硬件原语,通过控制内存访问顺序实现正确的同步机制。在高级语言中通常通过编译器内置函数或操作系统API间接使用DMB指令。
2025-12-13 21:52:45
962
原创 如何用 VS Code + C# Dev Kit 创建类库项目并在主项目中引用它?
本文介绍了在VS Code中使用C# Dev Kit创建类库项目并引用的完整流程。主要内容包括:通过命令行或GUI创建解决方案和项目、配置项目引用关系、编写示例代码、构建运行和调试配置。还提供了常见问题解决方法,如命名空间找不到、引用未生效等。文章推荐从解决方案根目录打开项目,利用C# Dev Kit的测试资源管理器、依赖关系图等工具提高开发效率,实现类库代码的共享使用。
2025-12-13 20:14:23
774
原创 如何使用 VSCode 编写 C# 代码?
在 Visual Studio Code (VSCode) 和 Visual Studio(VS)中编写C#代码,核心区别在于一个是,另一个是如果说Visual Studio是专为大型项目打造的“豪华工作站”,那么VSCode则是为现代、灵活开发而生的“多功能军刀”。使用VSCode编写C#代码的主要优势体现在以下几个核心方面:✨.sln.csproj。
2025-12-12 23:21:10
800
原创 Windows磁盘清理技巧分享
Windows磁盘清理技巧总结:使用系统自带的磁盘清理工具(cleanmgr)可删除临时文件、回收站内容等;开启存储感知功能自动清理;手动清理%temp%文件夹和浏览器缓存。推荐使用CCleaner等专业工具辅助清理,通过SpaceSniffer查找大文件。定期维护包括每周清空回收站、每月深度扫描。注意事项包括备份重要数据、保留系统文件、确保15-20%剩余空间。简单组合使用Windows磁盘清理+CCleaner即可有效清理大部分垃圾文件。
2025-12-12 22:46:31
515
原创 ARM 架构中的数据同步屏障 DSB
例如,向一个设备寄存器写入控制命令,需要确保这个写入操作确实到达设备,才能进行下一步(如读取设备状态)。在改变 MMU 配置(如修改地址翻译表)后,需要执行 DSB 确保之前的内存访问已完成,然后再更新系统寄存器(如 TTBR),最后可能还需要 ISB。在写入新的指令到内存后,需要 DSB 确保写入完成,然后可能清除指令缓存,最后用 ISB 确保后续执行新指令。在切换地址空间或修改系统寄存器前,可能需要 DSB 来确保之前的内存访问在系统中可见。,直到 DSB 前面的内存访问在内存系统中彻底完成。
2025-12-11 22:23:02
1470
原创 ARM 架构中的 PRIMASK、FAULTMAST、BASEPRI 寄存器
ARM Cortex-M处理器中的PRIMASK、FAULTMASK和BASEPRI是三个关键的系统异常屏蔽寄存器。PRIMASK用于全局中断开关,FAULTMASK可屏蔽包括HardFault在内的所有异常(仅NMI除外),BASEPRI则能基于优先级阈值选择性屏蔽中断。它们分别适用于不同场景:PRIMASK保护临界代码,FAULTMASK用于故障处理,BASEPRI实现精细的中断控制。这三个寄存器共同构成了ARM架构灵活的中断管理系统,支持从全局开关到优先级控制的多种保护机制。
2025-12-11 22:10:13
715
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关注的人
RSS订阅