news 2026/4/16 18:05:27

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/16 7:21:02

小程序计算机毕设之基于django+微信小程序的考研信息查询系统基于微信小程序的考研资源共享平台的设计与实现(完整前后端代码+说明文档+LW,调试定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/16 7:29:24

保姆级教程:25个降AI提示词大全,手把手教你去AI味

保姆级教程:25个降AI提示词大全,手把手教你去AI味 TL;DR:本文整理了25个实测有效的降AI提示词,涵盖角色设定法、语义重构法、口语化改写法等多种技巧,配合嘎嘎降AI等专业工具使用,可以把AI率从92%降到5%以下…

作者头像 李华