查看: 6771|回复: 19
收起左侧

[原创工具] MemoryDiagnostics内存诊断工具

[复制链接]
图钉鱼
发表于 2025-12-23 02:21:07 | 显示全部楼层 |阅读模式
本帖最后由 图钉鱼 于 2025-12-28 02:21 编辑

最终测试需以MEMTEST86 引导加载测试为准。
这个工具运行在WIN系统受系统约束,可以检测到大部分的内存问题,但这不是最终结论,比如我也在MEMTEST86测到内存条有上万个错误,但实际上是两条内存老化了,降频运行即可稳定运行。如果我直接采信MEMTEST86按现在内存比肩黄金的价格,需要自掏3千大洋换普条内存。。。。。。
微信图片_20251223021754_212_622(1).jpg
所以有了这个工具,这个工具多次检测均未发现内存和主板有信号和稳定性问题,那么结果已经指向主板内存点亮匹配的自动训练的时序过紧,可能导致偶发性蓝屏。解除XMP降频运行,偶发蓝屏问题彻底解决。



屏幕截图 2025-12-23 014629.png

1. 简介
本工具是一款内存稳定性测试与信号质量分析软件,旨在帮助用户检测计算机内存是否存在硬件故障、信号干扰或稳定性问题,集成了AVX2信号完整性测试、Rowhammer攻击模拟等高级功能,能够发现深层次的硬件隐患。

2. 核心功能与原理

2.1 AVX2 信号完整性压力测试
   原理: 利用CPU的AVX2指令集进行高强度的并发计算与内存读写。通过特定的数据模式(如0x55/0xAA交替),在内存总线上制造最大的电压摆幅和电流噪声。
   作用: 检测内存供电系统是否稳定,以及内存颗粒在高负载下是否会出现数据翻转。
   包含模式:
       Power Virus (自动运行): 模拟极端的功耗场景,最大化CPU和内存的电流消耗,考验电源供应单元(PSU)和主板供电电路(VRM)的稳定性。
       Crosstalk (串扰): 写入相邻位相反的数据,检测数据线之间是否存在电磁干扰。
       Heavy Thrashing (重度翻转): 快速切换读写状态,考验内存控制器的总线转向能力。
       在配置中启用 EnableAVX2SignalStress,测试过程中会自动循环执行上述模式。

2.2 Rowhammer 压力测试
   原理: Rowhammer(行锤击)是一种攻击技术,通过快速、频繁地访问同一行内存,导致相邻行的电荷泄漏,从而引发位翻转。
   作用: 检测内存颗粒的物理隔离度。如果内存抗干扰能力差,可能会被恶意软件利用进行提权攻击。
   需要在配置中手动启用 EnableRowhammer。默认关闭,因为这是一种高强度的物理压力测试。

2.3 Stride/Bank 冲突扫描
   原理: 以特定的步长访问内存,试图命中同一个Bank(内存库)。频繁访问同一Bank的不同Row会导致Bank频繁预充电和激活,产生高延迟和高功耗。
   作用: 检测内存控制器的Bank调度逻辑是否稳定,以及在Bank冲突场景下是否存在时序违规。
   需要在配置中手动启用 EnableStrideScan。

2.4 信号干扰评分
   原理: 通过测量内存访问的延迟抖动。
   基准: 读取全0数据时的延迟稳定性。
   干扰: 读取高频翻转数据(0x55/0xAA)时的延迟稳定性。
   算法: 如果在干扰模式下,内存访问延迟出现剧烈波动(抖动),说明信号质量受到噪声影响,评分会降低。
   作用: 量化评估内存电气性能的优劣。评分越接近1.0越好,低于0.8建议检查内存散热或降频

2.5 扫尾检测
内存测试通常以块(如4KB或64字节)为单位。扫尾检测专门针对最后剩余的、不足一个块的微小空间进行逐字节测试。确保内存的每一个字节都被覆盖,防止遗漏。

2.6 内存稳定性测试模式
   Random (随机模式): 使用梅森旋转算法生成高质量随机数,覆盖各种随机位翻转错误。
   Sequential (顺序模式): 填充递增序列,检测基本的寻址和存储功能。
   Walking 1/0 (走步模式): 逐位移动 1 或 0,专门检测数据线(Data Bus)是否存在短路、断路或信号串扰。
   Address Test (地址测试): 将物理地址本身写入内存单元,检测地址解码逻辑是否出错(例如访问地址 A 却读写了地址 B)。
   Bit Fade (位衰减): 写入数据后休眠一段时间再读取,检测电容保持电荷的能力(Refresh 刷新问题)。

2.7 大页内存 (Large Pages) 的重要性
   什么是大页?: 普通内存页大小为 4KB,而大页通常为 2MB 或 1GB。
   为什么要用?:
    1.  性能提升: 减少 CPU 的 TLB缓存未命中,显著提高内存访问效率,使测试压力更能直达内存颗粒,而非消耗在 CPU 寻址上。
    2.  物理连续性: 大页通常要求物理内存连续,且不可被交换。这意味着测试数据会一直驻留在物理内存中,不会被操作系统移动到硬盘上的虚拟内存中,保证了测试的真实性。
   如何开启: 工具会自动尝试申请大页。如果失败(通常是因为没有“锁定内存页”权限或内存碎片过多),会自动回退到普通页模式。
   注意事项: 使用大页内存时,Windows 任务管理器可能不会在“进程”标签页中正确显示该进程的内存占用(因为它不属于常规的分页内存池)。请查看“性能”->“内存”中的“使用中”总内存,或者相信工具内部显示的分配状态。

2.7.1 锁定内存页权限说明
   它解决什么问题?: 允许进程使用 MEM_LARGE_PAGES 分配大页,并提高内存驻留稳定性,减少因换页/系统干预导致的测试噪声。
   为什么授予后仍可能“没变”?: 该权限属于“用户权利分配”,对新登录会话生效;授予后需要注销/重启,当前进程的访问令牌不会立刻获得该权限。
   如何自动授予?: 手动模式菜单提供 6. 提权自动执行 - 为当前账号授予“锁定内存页”,会触发 UAC 提权并自动写入本地安全策略。

2.7.2 VirtualLock 失败的含义(常见误解)
   VirtualLock 失败通常意味着工作集(Working Set)配额不足或未提权,不等价于“内存坏了”
   工具会在必要时降级为普通页/可换页内存继续执行,并在输出中给出提示,以便你按需优化环境(关闭占用大量内存的程序、重启后立即测试等)。

2.8 安全退出机制
   强行退出: 在测试过程中,如果需要立即停止,可以随时按下 Ctrl+C 组合键。
   安全机制: 工具捕获到退出信号后,不会立即“杀掉”进程,而是触发安全退出流程:
    1.  立即向所有测试线程发送停止指令。
    2.  等待当前正在进行的原子操作完成(防止数据损坏)。
    3.  尝试释放已锁定的物理内存(虽然操作系统最终会回收,但主动释放更安全)。
    4.  生成最终的测试简报。
   提示: 如果在收到退出信号后程序没有立即关闭,请耐心等待几秒钟,这是工具在进行必要的资源清理。

2.9 内存边界与系统稳定性 (关键!)
   内存占用: 操作系统、驱动程序和后台服务必须占用一部分物理内存才能运行。例如 16GB 的电脑,开机后可用内存可能只有 12GB。
   边界风险:
       不要测试 100% 内存: 如果强行分配超过可用物理内存的测试空间(例如在 16GB 电脑上测试 16GB),操作系统会被迫将核心数据移至硬盘(虚拟内存/Page File)。
       后果: 这会导致严重的系统卡顿,表现为鼠标卡顿、程序无响应、硬盘高占用,甚至导致系统彻底死机或蓝屏。
   最佳实践:
       工具会自动检测当前可用物理内存。
       建议测试大小设置为可用内存的 80% - 90%。例如可用 10GB,建议测试 8GB - 9GB。
       如何继续测试?: 如果需要测试全部内存,建议分多次测试(Windows 会动态分配物理地址),或使用专用的 DOS/UEFI 版专业内存工具(本工具仅运行在 Windows 环境下,受限于 OS 调度)。

2.10 AVX2 与 CPU 缓存 (CPU Cache)
   缓存问题: 现代 CPU 拥有巨大的 L3 缓存 (如 Intel Core 30MB+, AMD Ryzen 64MB+)。如果测试数据量小于缓存大小,数据只会反复读写缓存,而不会到达物理内存。
   AVX2 突破:
    1.  本工具的 AVX2 信号测试模式使用非临时存储指令 (Non-temporal Stores / Streaming Stores)。
    2.  这些指令(如_mm256_stream_si256)会通知 CPU 绕过缓存层级,直接将数据写入主内存
    3.  此外,工具会在每次迭代前执行缓存刷新 (Cache Flush) 操作,刷新缓冲区大小远大于普通消费级 CPU 的缓存上限,确保测试压力真实作用于内存条和内存控制器 (IMC)。

2.11 隐藏的故障点:电压与时序
   时序 (Timing): 内存的延迟参数(如 CL, tRCD, tRP)。
       问题: 如果用户在 BIOS 中开启了 XMP 但主板自动训练的时序过紧,可能导致偶发性蓝屏。
       检测: AVX2 高负载模式对时序非常敏感,能快速暴露边缘不稳定性。
   电压 (Voltage):
       问题: 混插不同品牌/型号的内存时,BIOS 可能取最高或最低电压,导致部分内存欠压不稳或过压发热。
       本工具功能: 启动时会自动扫描并对比所有插槽内存的SPD 预设电压和当前运行频率,如果发现不一致会给出警告。(仅华硕主板可以读取SPD,且SPD结构体变化大,目前仅支持DDR4时序手动计算)

2.12 推荐测试流程
1.  预扫描: 启动工具,观察控制台输出的“硬件兼容性预扫描”结果,检查是否有频率/电压不一致或插槽警告。
2.  AVX2 信号测试: 快速筛选严重的电气故障和供电问题(建议运行 5-10 分钟)。
3.  MemTest 稳定性测试:
       Random: 必测,覆盖率最高。
       Bit Fade: 选测,如果怀疑内存因为过热或老化导致“记不住”数据。
4.  Rowhammer: 选测,针对高安全需求环境。

2.13 预检机制与误报抑制(近期更新)
   工具会在正式测试前对目标内存区域执行“预检”:验证页保护/触页读写,尽量规避被系统限制/保护页面引入的干扰。
   正式的稳定性测试与性能分析会优先复用“预检通过”的内存缓冲区,减少重复分配与跨页保护差异带来的误报。
   预检针对偶发性异常加入了短暂重试,并在失败信息中包含更精确的地址信息,便于定位问题来源(系统/驱动/资源限制 vs. 硬件不稳定)。

2.14 手动模式的安全确认(近期更新)
   手动模式启动稳定性测试前会显示环境提示(关闭大内存占用程序、碎片化与重启关系、大页权限生效方式)。
   必须输入 Y 才会开始稳定性测试,避免误操作导致长时间占用系统资源。

2.15 Windows 安全与虚拟化机制对测试的影响(重要)
Windows 10+默认启用/可选启用多种安全与虚拟化相关能力(如 VBS/HVCI、Hyper-V、EDR/杀软内核回调等)。这些机制并不“阻止你写内存”,但可能改变内存分配、页面驻留与性能抖动特性,从而影响测试表现与误报概率。

   常见机制:
       VBS (Virtualization-based Security): 使用虚拟化隔离关键组件,可能带来额外开销与更高抖动。
       HVCI/内存完整性 (Memory Integrity): 代码完整性在 Hypervisor 下执行,可能影响性能测量与低层行为一致性。
       Hyper-V/WSL2/Docker/虚拟机平台: 启用系统级 Hypervisor,计时/调度/缓存行为可能与“裸机”略有差异。
       企业 EDR/杀毒实时防护: 可能引入扫描/钩子/监控导致的延迟尖峰与工作集压力。
   可能表现:
       MEM_LARGE_PAGES 分配失败更频繁(权限/碎片化/策略),工具会自动回退到普通页。
       VirtualLock更易失败(工作集配额/策略限制),这通常不代表硬件故障。
       性能带宽偏低、延迟抖动增大;极少数情况下可能出现“瞬态不一致/访问异常”噪声。
   工具如何处理:
       优先尝试大页与锁页;失败则降级回退并输出提示,不会因为单点失败直接终止全部流程。
       在正式测试前进行“预检”,对页保护与触页读写做校验;遇到偶发异常会短暂重试并记录到报告的 systemEvents。
       启动时输出 “Windows安全/虚拟化状态” 摘要提示,便于你解释性能波动与失败原因。
   当无法关闭/无法绕过时:
       在企业策略/安全基线环境中,上述特性可能无法关闭;此时建议更关注“稳定性是否报错/是否有一致性错误”,而不是把性能指标当作裸机基准。
       需要尽量提升稳定性时:关闭大内存占用程序、重启后尽快运行、以管理员运行并按需授予“锁定内存页”权限。
屏幕截图 2025-12-23 020119.png


3. 常见问题
   Q: 为什么测试时电脑会变慢?
       A: 这是正常的。工具会占用大量CPU和内存带宽以施加最大压力。
   Q: 发现错误怎么办?
       A:
        1. 检查内存是否超频,尝试恢复默认频率(XMP关闭)。
        2. 检查内存散热片是否过热。
        3. 清洁内存金手指并重新插拔。
        4. 如果问题依旧,可能需要更换内存条。

        5.检查同频率下,不同内存条之间的内存电压,时序是否一致,不一致需要降频使用。
        6.极小概率是内存控制器或主板损坏。

屏幕截图_23-12-2025_2420_www.virustotal.com.jpeg
屏幕截图_23-12-2025_2356_opentip.kaspersky.com.jpeg
屏幕截图_23-12-2025_23334_sandbox.ti.qianxin.com.jpeg
屏幕截图_23-12-2025_23438_hybrid-analysis.com.jpeg



更新:
V1.1
1.修复内存读取/写入/复制/延迟算法的数值异常偏低的BUG,现算法优化已缩小与商用软件AIDA64的差距;
现象: 在未使用优化算法构建版本中,带宽仅为 2.5GB/s 左右,远低于硬件极限。
原因 :
标量指令瓶颈: 普通 C++ for 循环逐个 int 读写,指令发射率低,无法填满 CPU 流水线。
缓存所有权读取 (RFO - Read For Ownership): 传统写入操作是“回写”模式,CPU 必须先把目标内存块从 DRAM 读取到缓存中才能修改。这意味着一次写入实际上消耗了1读+1写两倍的带宽,且严重污染缓存。
缺乏指令级并行 (ILP): 简单循环导致 CPU 等待上一条指令完成才能执行下一条(数据依赖),大量执行单元处于空闲状态。
编译器优化和 CPU 缓存机制掩盖了真实的 DRAM 写入时间。

修复方向:三级回退策略:优先 AVX2,其次 SSE2,最后 Scalar,保证最大兼容。
AVX2 向量化: 使用 __m256i数据类型,单条指令吞吐量提升 8 倍 (32 字节)。
NT (Non-Temporal) 流式写入: 使用 _mm256_stream_si256指令。它告诉 CPU不要把这些数据读进缓存,直接写到内存条里。这直接消除了 RFO 的带宽浪费,写入性能翻倍。
8路循环展开 (8x Unrolling): 手动在循环体内连续发射 8 条读/写指令。这利用了 CPU 的超标量架构,允许同时处理多条不相关的内存操作,掩盖了指令延迟。
软件预取: 在处理当前数据块时,提前发出 _mm_prefetch指令加载下一块数据,掩盖 DRAM 高达 50ns+ 的物理访问延迟。

屏幕截图 2025-12-26 025518.png


在我开发环境下,单线程内存写入 32.7 GB/s,而DDR4-2400 双通道理论极限:38.4 GB/s ,效率:85.3%。
在单线程下达到这个速度,说明 _mm256_stream_si256 指令配合 大页内存 (Huge Pages),已经完全消除了 TLB Miss 和缓存一致性协议(RFO)的开销。CPU 核心直接向内存控制器灌输数据,没有任何中间损耗。这接近个人开发者软件优化的天花板。

与 AIDA64 的差异: AIDA64 使用了手写的汇编代码,利用 CPU 的寄存器堆作为临时缓冲,并且通过指令流水线编排,让内存控制器能够尽量同时处理读取与写入请求(更充分地利用 bank/队列并发)。这属于面向特定架构(例如 Intel Alder Lake)的硬件层面深度优化路径,普通 C++ 编译器很难自动生成同等级别的代码。

2.分层延迟输出(L1/L2/L3/DRAM)
延迟曲线:
4MB:  14.23 ns
8MB:  16.39 ns   <-- 完美的 L3 延迟!
18MB: 60.56 ns  <-- L3 溢出/饱和
64MB: 90.67 ns

直接测 18MB 得到 60ns,让人误以为 L3 很慢。
现在 8MB = 16.39 ns,证明 L3 缓存其实非常快。
展示了测试点选择的重要性,缓存边缘测试点会被严重影响,因为系统会有占用。


3.多线程优先物理核,N-1核多线程策略,N为物理核;

4.Windows 安全/虚拟化状态自证输出完善

5.修复VirtualLock 失败 (Error 1453)
现象: 即使有足够空闲内存,测试仍提示WorkingSet配额不足。
原因: Windows 默认分配给普通进程的工作集上限较低,无法满足大内存锁定的需求。
修复: 程序启动时会自动调用 OptimizeSystemResources,将工作集配额上限动态提升至物理内存的 90%,并请求 SeLockMemoryPrivilege权限。

6.Stride强化
为什么 Stride 能“打出 Bank 冲突”(兼容性问腿)
DRAM 访问不是线性地址 -> 单一颗粒这么简单。内存控制器(IMC)会把物理地址的若干位映射到:
Channel(通道)
Rank(Rank/片选)
Bank Group / Bank(库组/库)
Row / Column(行/列)

当 stride 选得“刚好”时,连续访问的地址可能会反复落到同一个 Bank(或同一个 Bank Group)而不断切换 Row:
命中同 Bank、不同 Row:会触发频繁的 precharge/activate(常见表现是吞吐骤降、抖动增大)。
命中同 Bank Group:也会受限于库组内部时序(tCCD_L 等),表现为吞吐下降但不一定极端。
命中不同 Bank/不同 Channel:IMC 可以并行排队、交错执行,吞吐更高更稳。

由于不同平台(DDR4/DDR5、不同 CPU、不同主板、不同条子/Rank 组合)地址映射策略不同,所以“哪一个 stride 最敏感”本身就是可观测信号。

本工具会扫描一组代表性步长(单位:字节):
64B:缓存行粒度,更多反映 cache line 争抢与写回压力(在开启 cache flush 时更接近内存侧表现)。
256B:扩大地址低位变化,尝试跨越部分 bank/列映射边界。
4KB:页粒度,容易触发与页内地址位相关的映射规律(也更容易受到 TLB/页表行为影响)。
6152B:非 2 的幂步长,用于打破“整齐对齐”的假象,帮助暴露某些映射/交错在非对齐访问下的退化。
64KB:接近常见行缓冲/映射周期的量级,用于观察 Row Buffer 命中/冲突倾向。
2MB:大页粒度,常用于观察 Bank/Channel Interleaving 在大跨度上的有效性;若此处吞吐异常偏低,往往意味着交错策略退化或被某种组合条件“击穿”。

每个 stride 会给出:
strideBytes:本轮步长
mbPerSecond:该 stride 下的平均吞吐(越高越好)
jitterPercent:吞吐抖动百分比(越低越稳定;通常 <5% 代表比较稳,>10% 说明干扰明显)
errorCount / bitErrorHistogram:数据一致性统计(非 0 需要严肃对待,可能是超频不稳/供电噪声/时序边缘)

重点不是“绝对值跑分”,而是“不同 stride 之间的相对变化”:
某个 stride 吞吐显著下降 + 抖动显著上升:典型的 bank/row 冲突热点
吞吐不低但抖动很高:可能是后台干扰(系统调度、杀软/EDR、温控/降频)、也可能是 IMC 重试/纠错导致的尾部延迟
出现 errorCount:属于稳定性问题信号,建议先回退频率/放松时序/提高电压再复测


工具在检测到 stride=2MB 的吞吐显著偏低时,会输出告警并给出常见原因与建议。
经验上,2MB 粒度的异常常见于:
4 条混插、不同颗粒/不同 Rank 组合导致的映射冲突。
BIOS 中 Bank/Channel Interleaving 设置异常或训练失败,主板内存工作在低级兼容模式,性能受限!!!
XMP/EXPO 过于激进导致 IMC 在某些访问模式下退化(甚至出现重试/纠错)。


7.新增功能:核心间延迟矩阵 (Core-to-Core Latency / Ping-Pong)
绑定两个线程到不同物理核心,通过共享缓存行上的原子标志位进行 Ping-Pong 往返;使用 QueryPerformanceCounter/QPC 读取高精度计数器;使用 QueryPerformanceFrequency 将计数转换为纳秒;频率使用原子变量缓存,避免重复系统调用;用于核心间延迟(Ping-Pong)测量,避免访问 MemoryAnalyzer 私有成员带来的编译依赖问题。以高精度计时获取每次 roundtrip 的纳秒级耗时,形成核心到核心的延迟矩阵。
直观看到 CPU 内部互联/拓扑差异(例如同簇更快、跨簇更慢),同时也能用来判断调度迁移、后台负载对低延迟的影响。
控制台会打印完整矩阵,并额外打印 6x6 的“热力图”简表(符号越深表示越慢)。
在配置中启用 EnableCoreToCoreLatency。
测试会在开始/结束阶段进行缓存冲刷与短暂停顿,以尽量降低前序测试带来的缓存污染;但 Windows 调度、VBS/HVCI、杀软/EDR 等仍可能引入抖动。
示范:功能验收:核心间延迟 (Ping-Pong)
日志显示:

[核心间延迟] 矩阵(ns/roundtrip)
        C0    C1    C2    C3    C4
C0     0    80.9  82.9  78.6  78.2
...
解读:
数值:平均往返延迟 (Round-Trip) 约为 78ns - 82ns。单向延迟约为 40ns。
一致性:矩阵非常均匀(所有核心之间的延迟几乎一样)。
这符合 Intel i5-12400 的 Ring Bus (环形总线) 架构特征。所有核心挂在同一个环上,距离带来的延迟差异被 L3 缓存的一致性协议掩盖了,所以看起来很均匀。
80ns 的往返延迟对于 Alder Lake 来说属于正常偏慢(通常优化良好的系统在 60-70ns)。这可能与内存控制器负载过重(4根混插)导致 Ring Bus 频率没有跑满有关。
结论:功能工作正常,成功绘制了 CPU 内部拓扑。


8.新增功能:DRAM 刷新惩罚/“心跳”(Heartbeat)(示波器一样“看见”内存的微观抖动。)
构造远大于 LLC 的 pointer chasing 环,抑制预取并让每次读取依赖上一跳结果;使用 RDTSC 采样单步 load 的周期数,并按固定时间窗聚合每窗最大延迟,输出 ASCII 心跳图以观察周期性尖峰。
捕捉可能由 DRAM Refresh(tRFC 窗口)或系统侧干扰导致的“尾部延迟尖峰/微卡顿”特征,便于定位抖动来源。
Heartbeat: ...(每个字符代表一个时间窗的最大延迟等级),并输出 Legend(. - + * # !)用于解读尖峰强度。
在配置中启用 ;
测试会绑定到物理核心并临时提升优先级,同时在关键阶段主动冲刷缓存,尽量保持采样窗口干净;默认观测时长为 10 秒(若设置 timeoutSeconds,会取不超过 10 秒的值)。

示范:
功能验收:DRAM 心跳 —— 捕捉到心律不齐
日志显示:
[DRAM刷新惩罚] peakRatio=24.01 (~113265.6ns -> 2719566.0ns)
[DRAM刷新惩罚] Heartbeat: ..#*.......*...!#...!.-...+*...
Legend: !=极端 #=严重
解读:
24倍延迟尖峰:基准操作耗时约 113us,但最差的时候飙升到了 2.7ms (2719us)。
注意:2.7ms 的停顿对于内存来说是极长的(通常 tRFC 刷新只有几百纳秒)。
图形分析:
心跳图充满了 ! (极端) 和 # (严重)。
这说明内存子系统非常繁忙且不稳定。
原因推断:
这不仅仅是标准的 DRAM 刷新(Refresh)。
我是 4根内存混插,故内存控制器可能正在后台疯狂进行信号重试 (Signal Retraining) 或 纠错(虽然没报 WHEA 错误,但控制器可能在底层默默重试)。
这种毫秒级的卡顿,在玩高帧率游戏(如 CS:GO)时,就会表现为“莫名其妙的掉帧”。
推论:
病灶 A:Bank Interleaving 失效(Stride 2MB = 132 MB/s)。
病灶 B:偶发性心律失常(Heartbeat = 2.7ms 卡顿)。
病因:    4根不同型号内存混插,主板强制激活最低兼容模式。


屏幕截图 2025-12-26 041020.png

9.修复其他错误;



V1.2.2
修复:
1.修复日志异常问题,测试异常项目会红字显示;
2.降低因多线程写入因带宽饱和线程互相争抢,内存控制器仲裁开销导致多线程测试成绩比单线程成绩
严重劣化问题。通过内存区域隔离处理(2MB 对齐 + 错开线程访问区域)覆盖 读/写/复制三条带宽路径,且不改变统计口径(仍覆盖整块测试区间)让相邻线程尽量不要落在相邻内存区域上,降低 Bank/Row 冲突概率;

3.未来的DDR6内存不适用测速,因为AVX2无法跑满带宽,需要AVX10指令集,但25年大部分CPU不支持该指令集,故检测到DDR6特征码会提示实验性功能;

4.输入参数严格验证,自动处理内存对齐与资源释放,防止缓冲区溢出。强制实施内存对齐策略,确保 AVX2指令集的安全执行。在关键路径(如带宽测试、延迟测试)入口处添加了严格的 nullptr 检查与 size 校验。

5.处理边界处理不严谨,加固 Decode 中的向量访问安全性,优化错误记录的清理机制,修复了带宽计算中的除零风险

6.修复了交互式菜单的输入处理逻辑,防止非数字输入导致的无限循环。



7.修复缓冲区越界读取、增量操作与边界检查不一致转义字符处理溢出保护指针运算不安全时间计算精度问题。



新增:
1.增强DDR3/DDR4/DDR5/DDR6(实验性) 平台的兼容,不同代的硬件定义完全不同特性也不同,带宽效率判定阈值会按代次自适应,比如:避免用DDR4的标准误判DDR3。

2.DDR5 平台会提示片内 ECC 可能掩盖位错误,导致测试无效;


3.若观测到疑似 IMC 重试/片内 ECC 尾部尖峰形态,也会写入报告建议,推荐结合 WHEA-Logger 事件复核。在 DDR5 平台上,若观测到“少量非周期性极端尖峰 + 其余分位数较平”的形态,工具会输出“疑似 IMC 重试/片内 ECC”提示,并将其作为告警与性能建议写入报告(建议同步查看 系统日志WHEA-Logger 事件以确认是否存在纠错记录),如DDR5内存平台测试报出
“少量非周期性极端尖峰 + 其余分位数较平”且存在WHEA-Logger 日志,则说明DDR5内存发生错误被片内ECC纠正,请注意降频/散热或售后更换的心理准备
4.获取处理器,主板,硬盘型号功能;
屏幕截图 2025-12-26 192555.png

目前版本总结:
经过迭代后它更像是一个故障定位器。
它可以告诉用户的电脑虽然跑分高(32GB/s),但玩游戏卡顿(2.2ms 延迟),是因为乱插内存导致的。
这种深度的洞察力是市面上绝大多数免费工具所不具备的。



V1.0版本SHA256:   933F3E94CA02F18C076C13107D85B84693238385C6B4B60044755CF2585569FA
V1.1版本SHA256:      2c117023a76042f0b8f3a593d4f435e253bc520ee596dcb553adbdd0bb9c1edc
V1.2.2版本SHA256:   64469F872635025A93C398A91CD9C219A0BD8166446B2A84249CF85399AD473F











MemoryDiagnostics -V1.0.7z

150.84 KB, 下载次数: 60

MemoryDiagnostics -V1.2.2.7z

204.51 KB, 下载次数: 50

MemoryDiagnostics -V1.1.7z

188.4 KB, 下载次数: 29

评分

参与人数 2人气 +3 收起 理由
yy688go + 1 版区有你更精彩: )
默然 + 2 版区有你更精彩: )

查看全部评分

dhdcxh
发表于 2025-12-23 08:45:06 | 显示全部楼层
好帖,介绍完整贴图完善地址有效。
kafan988
发表于 2025-12-23 09:36:18 | 显示全部楼层
很实用的工具啊
淡淡忧伤
发表于 2025-12-23 10:15:49 | 显示全部楼层
感谢分享,老电脑定期检测一下还是很有必要的,最起码做到心中有数,降频能坚持用一段时间,可以节省不必要的支出。
wowocock
发表于 2025-12-23 14:26:06 | 显示全部楼层
[2025-12-23 13:57:14] 日志系统初始化成功
[2025-12-23 13:57:14] [信息] 控制台编码诊断: OutputCP=65001, InputCP=65001, Font=新宋体, Elevated=true
[2025-12-23 13:57:14] [信息] 内存诊断工具启动
[2025-12-23 13:57:14] [信息] Windows安全/虚拟化状态: 未检测到会显著干扰测试的特性 (RegErr=2)
[2025-12-23 13:57:25] [信息] 用户确认开始稳定性测试
[2025-12-23 13:57:27] [警告] 内存读写预检警告: 未能启用SeLockMemoryPrivilege(锁定内存页) WinErr=1300
[2025-12-23 13:57:28] [警告] 测试内存准备警告: 未能启用SeLockMemoryPrivilege(锁定内存页) WinErr=1300
[2025-12-23 13:57:30] [警告] 性能测试内存准备警告: 未能启用SeLockMemoryPrivilege(锁定内存页) WinErr=1300; 未能启用SeLockMemoryPrivilege(锁定内存页) WinErr=1300
[2025-12-23 13:57:34] [警告] 内存性能不正常: 读取 2644.803235 MB/s,写入 1122.056077 MB/s
[2025-12-23 13:57:34] [警告] 内存读取延迟过高: 177.000000 ns
[2025-12-23 13:57:34] [警告] 内存写入延迟过高: 168.000000 ns
[2025-12-23 13:57:37] [信息] 内存诊断工具结束
[2025-12-23 13:57:41] 日志系统关闭
我这是有问题还是没问题?
图钉鱼
 楼主| 发表于 2025-12-23 16:06:12 来自手机 | 显示全部楼层
wowocock 发表于 2025-12-23 14:26
[2025-12-23 13:57:14] 日志系统初始化成功
[2025-12-23 13:57:14] [信息] 控制台编码诊断: OutputCP=6500 ...

没有问题的,稳定性测试通过了,不通过日志会有对应记录。这个是在虚拟机测得吧,延迟和带宽都是偏低。的。
wowocock
发表于 2025-12-23 16:10:00 | 显示全部楼层
图钉鱼 发表于 2025-12-23 16:06
没有问题的,稳定性测试通过了,不通过日志会有对应记录。这个是在虚拟机测得吧,延迟和带宽都是偏低。的 ...

真机测试的。
wowocock
发表于 2025-12-23 16:15:21 | 显示全部楼层
图钉鱼 发表于 2025-12-23 16:06
没有问题的,稳定性测试通过了,不通过日志会有对应记录。这个是在虚拟机测得吧,延迟和带宽都是偏低。的 ...

HWiNFO? 64 Version 8.34-5870

DESKTOP-KTQB45Q -----------------------------------------------------------

[当前计算机]
[操作系统]

内存 ----------------------------------------------------------------------

[常规信息]
  内存总大小:                             16 GiB
  Total Memory Size [MB]:                 16384
[当前性能设置]
  支持的最大内存频率:                     1333.3 MHz
  当前内存频率:                           1196.5 MHz
  当前时序 (tCAS-tRCD-tRP-tRAS):          17-17-17-39
  支持的内存通道:                         2
  活动的内存通道:                         2
  命令率 (CR):                            2T
  Read to Read Delay (tRDRD_SG/TrdrdScL) Same Bank Group: 6T
  Read to Read Delay (tRDRD_DG/TrdrdScDlr) Different Bank Group: 4T
  Read to Read Delay (tRDRD_SD) Same DIMM: 6T
  Read to Read Delay (tRDRD_DD) Different DIMM: 7T
  Write to Write Delay (tWRWR_SG/TwrwrScL) Same Bank Group: 6T
  Write to Write Delay (tWRWR_DG/TwrwrScDlr) Different Bank Group: 4T
  Write to Write Delay (tWRWR_SD) Same DIMM: 7T
  Write to Write Delay (tWRWR_DD) Different DIMM: 7T
  Read to Write Delay (tRDWR_SG/TrdwrScL) Same Bank Group: 9T
  Read to Write Delay (tRDWR_DG/TrdwrScDlr) Different Bank Group: 9T
  Read to Write Delay (tRDWR_SD) Same DIMM: 9T
  Read to Write Delay (tRDWR_DD) Different DIMM: 10T
  Write to Read Delay (tWRRD_SG/TwrrdScL) Same Bank Group: 32T
  Write to Read Delay (tWRRD_DG/TwrrdScDlr) Different Bank Group: 26T
  Write to Read Delay (tWRRD_SD) Same DIMM: 7T
  Write to Read Delay (tWRRD_DD) Different DIMM: 7T
  Read to Precharge Delay (tRTP):         9T
  Write to Precharge Delay (tWTP):        30T
  Write Recovery Time (tWR):              19T
  RAS# to RAS# Delay (tRRD_L):            6T
  RAS# to RAS# Delay (tRRD_S):            18T
  Row Cycle Time (tRC):                   56T
  Refresh Cycle Time (tRFC):              421T
  Four Activate Window (tFAW):            26T

行: 1 [BANK 0/Controller0-ChannelA] - 8 GB PC4-25600 DDR4 SDRAM Kingston KF3200C16D4/8GX

[内存模块常规信息]
  内存模块编号:                           1
  内存模块容量:                           8 GiB
  内存类型:                               DDR4 SDRAM
  内存模块类型:                           Unbuffered DIMM (UDIMM)
  内存速度:                               1600.0 MHz (DDR4-3200 / PC4-25600)
  内存模块制造商:                         Kingston
  内存模块部件号:                         KF3200C16D4/8GX
  内存模块修订版:                         0.0
  内存模块序号:                           4050429783 (57A76CF1)
  内存模块生产日期:                       年: 2021, 周: 42
  内存模块产地:                           4
  SDRAM 制造商:                           SK Hynix
  DRAM 步进:                              4.4
  错误检查/纠正:                          无
[内存模块特征]
  行地址位:                               16
  列地址位:                               10
  内存模块密度:                           8192 Mb
  Rank 的数量:                            1
  Bank 组的数量:                          4
  设备位宽:                               8 bits
  总线位宽:                               64 bits
  Die Count:                              1
  内存模块标称电压 (VDD):                 1.2 V
  最小 SDRAM 周期时间 (tCKAVGmin):        0.83300 ns (1200 MHz)
  最大 SDRAM 周期时间 (tCKAVGmax):        1.60000 ns
  支持的 CAS# 延迟:                       10, 11, 12, 13, 14, 15, 16, 17, 18
  最小 CAS# 延迟时间 (tAAmin):            13.750 ns
  最小 RAS# 到 CAS# 迟延 (tRCDmin):       13.750 ns
  Minimum Row Precharge Time (tRPmin):    13.750 ns
  Minimum Active to Precharge Time (tRASmin): 32.000 ns
  支持的内存模块时序 1200.0 MHz:          17-17-17-39
  支持的内存模块时序 1066.7 MHz:          15-15-15-35
  支持的内存模块时序 933.3 MHz:           13-13-13-30
  支持的内存模块时序 800.0 MHz:           11-11-11-26
  支持的内存模块时序 666.7 MHz:           10-10-10-22
  Minimum Active to Active/Refresh Time (tRCmin): 45.750 ns
  Minimum Refresh Recovery Time Delay (tRFC1min): 350.000 ns
  Minimum Refresh Recovery Time Delay (tRFC2min): 260.000 ns
  Minimum Refresh Recovery Time Delay (tRFC4min): 160.000 ns
  Minimum Four Activate Window Delay Time (tFAWmin): 21.000 ns
  Minimum Active to Active Delay Time - Different Bank Group (tRRD_Smin): 3.300 ns
  Minimum Active to Active Delay Time - Same Bank Group (tRRD_Lmin): 4.900 ns
  Minimum CAS to CAS Delay Time - Same Bank Group (tCCD_Lmin): 5.000 ns
[特征]
  内存模块温度传感器 (TSOD):              不支持
  内存模块标称高度:                       31 - 32 mm
  内存模块最大厚度 (正面):                1 - 2 mm
  内存模块最大厚度 (背面):                <= 1 mm
  Address Mapping from Edge Connector to DRAM: Standard
[英特尔极限内存配置文件 (XMP)]
  XMP Revision:                           2.0
[认证配置文件 [启用]]
  内存模块 VDD 电压等级:                  1.35 V
  最小 SDRAM 周期时间 (tCKAVGmin):        0.62500 ns (1600 MHz)
  支持的 CAS# 延迟:                       9, 10, 11, 12, 13, 14, 15, 16, 17, 18
  最小 CAS# 延迟时间 (tAAmin):            10.000 ns
  最小 RAS# 到 CAS# 迟延 (tRCDmin):       11.250 ns
  Minimum Row Precharge Time (tRPmin):    11.250 ns
  Minimum Active to Precharge Time (tRASmin): 22.500 ns
  支持的内存模块时序 1600.0 MHz:          16-18-18-36
  支持的内存模块时序 1466.7 MHz:          15-17-17-33
  支持的内存模块时序 1333.3 MHz:          14-15-15-30
  支持的内存模块时序 1200.0 MHz:          12-14-14-27
  支持的内存模块时序 1066.7 MHz:          11-12-12-24
  支持的内存模块时序 933.3 MHz:           10-11-11-21
  Minimum Active to Active/Refresh Time (tRCmin): 45.750 ns
  Minimum Refresh Recovery Time Delay (tRFC1min): 350.000 ns
  Minimum Refresh Recovery Time Delay (tRFC2min): 260.000 ns
  Minimum Refresh Recovery Time Delay (tRFC4min): 160.000 ns
  Minimum Four Activate Window Delay Time (tFAWmin): 21.000 ns
  Minimum Active to Active Delay Time - Different Bank Group (tRRD_Smin): 4.375 ns
  Minimum Active to Active Delay Time - Same Bank Group (tRRD_Lmin): 5.625 ns
[极限配置文件 [启用]]
  内存模块 VDD 电压等级:                  1.35 V
  最小 SDRAM 周期时间 (tCKAVGmin):        0.66600 ns (1500 MHz)
  支持的 CAS# 延迟:                       9, 10, 11, 12, 13, 14, 15, 16, 17, 18
  最小 CAS# 延迟时间 (tAAmin):            9.990 ns
  最小 RAS# 到 CAS# 迟延 (tRCDmin):       11.322 ns
  Minimum Row Precharge Time (tRPmin):    11.322 ns
  Minimum Active to Precharge Time (tRASmin): 23.875 ns
  支持的内存模块时序 1500.0 MHz:          15-17-17-36
  支持的内存模块时序 1466.7 MHz:          15-17-17-35
  支持的内存模块时序 1333.3 MHz:          14-16-16-32
  支持的内存模块时序 1200.0 MHz:          12-14-14-29
  支持的内存模块时序 1066.7 MHz:          11-13-13-26
  支持的内存模块时序 933.3 MHz:           10-11-11-23
  Minimum Active to Active/Refresh Time (tRCmin): 45.750 ns
  Minimum Refresh Recovery Time Delay (tRFC1min): 350.000 ns
  Minimum Refresh Recovery Time Delay (tRFC2min): 260.000 ns
  Minimum Refresh Recovery Time Delay (tRFC4min): 160.000 ns
  Minimum Four Activate Window Delay Time (tFAWmin): 21.000 ns
  Minimum Active to Active Delay Time - Different Bank Group (tRRD_Smin): 4.662 ns
  Minimum Active to Active Delay Time - Same Bank Group (tRRD_Lmin): 4.662 ns

行: 3 [BANK 1/Controller0-ChannelB] - 8 GB PC4-25600 DDR4 SDRAM Kingston KF3200C16D4/8GX

[内存模块常规信息]
  内存模块编号:                           3
  内存模块容量:                           8 GiB
  内存类型:                               DDR4 SDRAM
  内存模块类型:                           Unbuffered DIMM (UDIMM)
  内存速度:                               1600.0 MHz (DDR4-3200 / PC4-25600)
  内存模块制造商:                         Kingston
  内存模块部件号:                         KF3200C16D4/8GX
  内存模块修订版:                         0.0
  内存模块序号:                           3597494270 (FE676DD6)
  内存模块生产日期:                       年: 2021, 周: 42
  内存模块产地:                           4
  SDRAM 制造商:                           SK Hynix
  DRAM 步进:                              4.4
  错误检查/纠正:                          无
[内存模块特征]
  行地址位:                               16
  列地址位:                               10
  内存模块密度:                           8192 Mb
  Rank 的数量:                            1
  Bank 组的数量:                          4
  设备位宽:                               8 bits
  总线位宽:                               64 bits
  Die Count:                              1
  内存模块标称电压 (VDD):                 1.2 V
  最小 SDRAM 周期时间 (tCKAVGmin):        0.83300 ns (1200 MHz)
  最大 SDRAM 周期时间 (tCKAVGmax):        1.60000 ns
  支持的 CAS# 延迟:                       10, 11, 12, 13, 14, 15, 16, 17, 18
  最小 CAS# 延迟时间 (tAAmin):            13.750 ns
  最小 RAS# 到 CAS# 迟延 (tRCDmin):       13.750 ns
  Minimum Row Precharge Time (tRPmin):    13.750 ns
  Minimum Active to Precharge Time (tRASmin): 32.000 ns
  支持的内存模块时序 1200.0 MHz:          17-17-17-39
  支持的内存模块时序 1066.7 MHz:          15-15-15-35
  支持的内存模块时序 933.3 MHz:           13-13-13-30
  支持的内存模块时序 800.0 MHz:           11-11-11-26
  支持的内存模块时序 666.7 MHz:           10-10-10-22
  Minimum Active to Active/Refresh Time (tRCmin): 45.750 ns
  Minimum Refresh Recovery Time Delay (tRFC1min): 350.000 ns
  Minimum Refresh Recovery Time Delay (tRFC2min): 260.000 ns
  Minimum Refresh Recovery Time Delay (tRFC4min): 160.000 ns
  Minimum Four Activate Window Delay Time (tFAWmin): 21.000 ns
  Minimum Active to Active Delay Time - Different Bank Group (tRRD_Smin): 3.300 ns
  Minimum Active to Active Delay Time - Same Bank Group (tRRD_Lmin): 4.900 ns
  Minimum CAS to CAS Delay Time - Same Bank Group (tCCD_Lmin): 5.000 ns
[特征]
  内存模块温度传感器 (TSOD):              不支持
  内存模块标称高度:                       31 - 32 mm
  内存模块最大厚度 (正面):                1 - 2 mm
  内存模块最大厚度 (背面):                <= 1 mm
  Address Mapping from Edge Connector to DRAM: Standard
[英特尔极限内存配置文件 (XMP)]
  XMP Revision:                           2.0
[认证配置文件 [启用]]
  内存模块 VDD 电压等级:                  1.35 V
  最小 SDRAM 周期时间 (tCKAVGmin):        0.62500 ns (1600 MHz)
  支持的 CAS# 延迟:                       9, 10, 11, 12, 13, 14, 15, 16, 17, 18
  最小 CAS# 延迟时间 (tAAmin):            10.000 ns
  最小 RAS# 到 CAS# 迟延 (tRCDmin):       11.250 ns
  Minimum Row Precharge Time (tRPmin):    11.250 ns
  Minimum Active to Precharge Time (tRASmin): 22.500 ns
  支持的内存模块时序 1600.0 MHz:          16-18-18-36
  支持的内存模块时序 1466.7 MHz:          15-17-17-33
  支持的内存模块时序 1333.3 MHz:          14-15-15-30
  支持的内存模块时序 1200.0 MHz:          12-14-14-27
  支持的内存模块时序 1066.7 MHz:          11-12-12-24
  支持的内存模块时序 933.3 MHz:           10-11-11-21
  Minimum Active to Active/Refresh Time (tRCmin): 45.750 ns
  Minimum Refresh Recovery Time Delay (tRFC1min): 350.000 ns
  Minimum Refresh Recovery Time Delay (tRFC2min): 260.000 ns
  Minimum Refresh Recovery Time Delay (tRFC4min): 160.000 ns
  Minimum Four Activate Window Delay Time (tFAWmin): 21.000 ns
  Minimum Active to Active Delay Time - Different Bank Group (tRRD_Smin): 4.375 ns
  Minimum Active to Active Delay Time - Same Bank Group (tRRD_Lmin): 5.625 ns
[极限配置文件 [启用]]
  内存模块 VDD 电压等级:                  1.35 V
  最小 SDRAM 周期时间 (tCKAVGmin):        0.66600 ns (1500 MHz)
  支持的 CAS# 延迟:                       9, 10, 11, 12, 13, 14, 15, 16, 17, 18
  最小 CAS# 延迟时间 (tAAmin):            9.990 ns
  最小 RAS# 到 CAS# 迟延 (tRCDmin):       11.322 ns
  Minimum Row Precharge Time (tRPmin):    11.322 ns
  Minimum Active to Precharge Time (tRASmin): 23.875 ns
  支持的内存模块时序 1500.0 MHz:          15-17-17-36
  支持的内存模块时序 1466.7 MHz:          15-17-17-35
  支持的内存模块时序 1333.3 MHz:          14-16-16-32
  支持的内存模块时序 1200.0 MHz:          12-14-14-29
  支持的内存模块时序 1066.7 MHz:          11-13-13-26
  支持的内存模块时序 933.3 MHz:           10-11-11-23
  Minimum Active to Active/Refresh Time (tRCmin): 45.750 ns
  Minimum Refresh Recovery Time Delay (tRFC1min): 350.000 ns
  Minimum Refresh Recovery Time Delay (tRFC2min): 260.000 ns
  Minimum Refresh Recovery Time Delay (tRFC4min): 160.000 ns
  Minimum Four Activate Window Delay Time (tFAWmin): 21.000 ns
  Minimum Active to Active Delay Time - Different Bank Group (tRRD_Smin): 4.662 ns
  Minimum Active to Active Delay Time - Same Bank Group (tRRD_Lmin): 4.662 ns
图钉鱼
 楼主| 发表于 2025-12-23 17:35:52 来自手机 | 显示全部楼层
wowocock 发表于 2025-12-23 16:15
HWiNFO? 64 Version 8.34-5870

DESKTOP-KTQB45Q -------------------------------------------------- ...

你内存没开xmp,现在是2400mhz低频率运行。开了xmp可以跑3200mhz。
但是问题不是这个,因为2400mhz的性能也远超这个数值。如果是虚拟机那很合理,但实机的话,就是另一个可能了。你用的应该是使用PCIe 3.0 x4 通道的 NVMe 固态硬盘,系统启用了虚拟内存。
然后从我的程序日志中:
[2025-12-23 13:57:27] [警告] 内存读写预检警告: 未能启用SeLockMemoryPrivilege(锁定内存页) WinErr=1300
[2025-12-23 13:57:30] ... 未能启用SeLockMemoryPrivilege(锁定内存页) WinErr=1300

程序没有权限锁定物理内存,系统调度直接分配了一部分物理内存和虚拟内存混合使用,所以测试测到了固态硬盘的速度和混合的延迟(物理内存拉高了平均延迟)。

很可能情况:
一部分访问命中真实内存,
一部分访问触发page fault,走 SSD。

你用选项6,提权下,注销当前用户再进入测试下。看下有没有权限锁定物理内存没。
wowocock
发表于 2025-12-23 17:56:51 | 显示全部楼层
图钉鱼 发表于 2025-12-23 17:35
你内存没开xmp,现在是2400mhz低频率运行。开了xmp可以跑3200mhz。
但是问题不是这个,因为2400mhz的性 ...

BIOS里打开了XMP,貌似没啥区别
2025-12-23 17:53:37] 日志系统初始化成功
[2025-12-23 17:53:37] [信息] 控制台编码诊断: OutputCP=65001, InputCP=65001, Font=新宋体, Elevated=true
[2025-12-23 17:53:37] [信息] 内存诊断工具启动
[2025-12-23 17:53:37] [信息] Windows安全/虚拟化状态: 未检测到会显著干扰测试的特性 (RegErr=2)
[2025-12-23 17:53:46] [信息] 用户确认开始稳定性测试
[2025-12-23 17:53:53] [警告] 内存性能不正常: 读取 2644.198963 MB/s,写入 1093.052405 MB/s
[2025-12-23 17:53:53] [警告] 内存读取延迟过高: 104.666667 ns
[2025-12-23 17:53:53] [警告] 内存写入延迟过高: 96.333333 ns
[2025-12-23 17:53:56] [警告] 检测到信号干扰,可能影响内存稳定性
[2025-12-23 17:53:56] [信息] 内存诊断工具结束
[2025-12-23 17:54:05] 日志系统关闭
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2026-3-7 08:46 , Processed in 0.095330 second(s), 4 queries , Redis On.

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表