news 2026/4/23 18:57:46

Windows虚拟内存不足

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Windows虚拟内存不足

检查能分配的最大内存

import numpy as np import psutil import sys import time import gc def get_system_memory_info(): """获取系统内存信息""" mem = psutil.virtual_memory() swap = psutil.swap_memory() print("\n=== 系统内存状态 ===") print(f"物理内存总量: {mem.total / (1024**3):.2f} GB") print(f"可用物理内存: {mem.available / (1024**3):.2f} GB") print(f"内存使用率: {mem.percent}%") print(f"\n页面文件总量: {swap.total / (1024**3):.2f} GB") print(f"页面文件可用: {swap.free / (1024**3):.2f} GB") def test_max_contiguous_allocation(): """测试最大连续内存分配能力""" print("\n=== 最大连续内存测试 ===") # 测试不同大小的内存分配 test_sizes = [1, 2, 4, 8, 12, 16, 20, 24, 28, 32] # GB max_successful = 0 for size_gb in test_sizes: try: # 计算需要分配的元素数量 (float32占4字节) elements = int(size_gb * 1024**3 / 4) # 测试分配 print(f"尝试分配 {size_gb:2d} GB... ", end="", flush=True) start_time = time.time() test_array = np.zeros(elements, dtype=np.float32) end_time = time.time() # 验证分配大小 allocated_gb = test_array.nbytes / (1024**3) print(f"✓ 成功分配 {allocated_gb:.2f} GB (耗时: {end_time-start_time:.3f}秒)") # 验证数据可访问 test_array[0] = 1.0 test_array[-1] = 1.0 max_successful = size_gb del test_array gc.collect() except MemoryError: print(f"✗ 分配失败") break print(f"\n最大可分配连续内存: {max_successful} GB") def memory_fragmentation_test(): """内存碎片化测试""" print("\n=== 内存碎片化测试 ===") # 创建多个小内存块模拟碎片 fragments = [] chunk_size_gb = 0.5 # 每个块0.5GB chunk_elements = int(chunk_size_gb * 1024**3 / 4) print(f"创建多个 {chunk_size_gb} GB 的小内存块...") for i in range(20): try: frag = np.zeros(chunk_elements, dtype=np.float32) fragments.append(frag) total_allocated = len(fragments) * chunk_size_gb print(f"已分配 {len(fragments)} 个块,总计: {total_allocated:.1f} GB") except MemoryError: print(f"无法继续分配 (已分配: {len(fragments)} 个块)") break # 测试碎片化后的大内存分配 test_size = 12 # GB print(f"\n碎片化后尝试分配 {test_size} GB...") try: elements = int(test_size * 1024**3 / 4) large_array = np.zeros(elements, dtype=np.float32) print(f"✓ 成功分配 {test_size} GB 连续内存") del large_array except MemoryError: print(f"✗ 无法分配 {test_size} GB (内存碎片化)") # 清理碎片 print("\n清理内存碎片...") for frag in fragments: del frag gc.collect() print("清理完成") if __name__ == "__main__": print("=== 内存容量测试工具 ===") print(f"Python位数: {'64位' if sys.maxsize > 2**32 else '32位'}") print(f"NumPy版本: {np.__version__}") get_system_memory_info() test_max_contiguous_allocation() memory_fragmentation_test() input("\n测试完成,按回车键退出...")
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/22 14:35:23

【开题答辩全过程】以 基于Python的街区医院管理系统的设计与实现为例,包含答辩的问题和答案

个人简介一名14年经验的资深毕设内行人,语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。感谢大家的…

作者头像 李华
网站建设 2026/4/18 17:26:38

【MySQL性能优化】MySQL8.0定时删除数据

在Java开发中,日志表、流水表等业务表会随时间快速膨胀,定期清理过期数据(如删除30天前数据)是保障数据库性能的常规操作。本文针对MySQL8.0环境,详细讲解两种定时删除方案——MySQL内置事件调度器、Windows任务计划程…

作者头像 李华
网站建设 2026/4/18 22:23:48

LT6911UXC 与 LT9611UXC 视频桥接芯片固件架构与功能详解

龙讯lt6911uxc,lt9611uxc资料,有源码固件,支持4k60,支持对接海思3519a和3559a,hdmi转mipi,双通道4k60摘要 本文深入剖析龙讯半导体(Lontium)两款主流视频桥接芯片 LT6911UXC 与 LT9611UXC 的参考…

作者头像 李华
网站建设 2026/4/18 14:05:36

人脸核身技术的应用,实现电信行业实名制从“被动合规”转向“主动风控”

在数字经济高速发展与“断卡行动”持续深化的双轨背景下,电信运营商正面临着前所未有的实名制合规压力。代理商渠道作为业务拓展的毛细血管,其核验能力直接关系到运营商的合规底线与安全防线。传统的人工肉眼比对模式,在精准度、效率与防欺诈…

作者头像 李华
网站建设 2026/4/19 22:15:26

人群仿真软件:AnyLogic_(8).数据分析与结果呈现

数据分析与结果呈现 在人群仿真软件AnyLogic中,数据分析与结果呈现是仿真建模的重要环节。通过有效的数据分析和结果呈现,可以更好地理解仿真模型的行为、验证模型的正确性,并为决策提供依据。本节将详细介绍如何在AnyLogic中进行数据收集、分…

作者头像 李华