memory-management相关内容

如何从 Linux 内核模块中的逻辑地址获取物理地址?

除了手动遍历页面目录条目之外,是否有任何合适的方法可以通过逻辑地址获取物理地址?我在内核的源代码中寻找了这个功能,发现有一个 follow_page 函数可以很好地使用内置的巨大和透明巨大的页面支持.但它没有导出到内核模块(为什么???)... 所以,我不想发明轮子,我认为手动重新实现 follow_page 功能不是很好. 解决方案 好吧,它可能看起来像这样(从虚拟地址跟随 PTE ..
发布时间:2022-01-04 22:15:36 服务器开发

编译时什么时候分配内存?

当我写 int main(){国际 j;} j的内存是在编译的时候分配的,但是在编译的时候呢? 将内存分配给变量时,编译的各个阶段是什么? 如果 j 是全局的会怎样? 解决方案 我猜你把事情搞混了. 编译器不会为变量分配内存——它生成的代码在运行时为变量分配内存.对于全局变量,将添加到程序启动代码中. ..
发布时间:2022-01-04 21:44:29 其他开发

脚本语言中变量的内存分配是如何进行的?

例如,在javascript中 我可以说 var x = 5; 以后我可以做 x = 'a'; 然后 x = "你好"; 那么,如何为变量分配内存?事实上,所有变量都有一个共同的类型“var",变量的值可以在运行时改变,如上所示.为这些变量分配和管理内存不是一项艰巨的任务吗?到底是怎么做的? 解决方案 Python 使用一种称为 引用计数的技术,它基本上在值中放置了一个计 ..
发布时间:2022-01-04 10:17:31 前端开发

.Net 为什么我不能在 x64 进程中获得超过 11GB 的分配内存?

我认为 64 位进程的最大用户空间是 8TB,但我做了一个小测试,我能得到的最大值是 10-11GB. 注意:我在一个过程中不需要那么多内存,我只是出于好奇想了解为什么. 这是我的测试程序: static void Main(string[] args){列表list = new List();而(真){Console.WriteLine("按任意键再分配 1 GB");Consol ..
发布时间:2022-01-02 19:33:20 C#/.NET

平面内存模型和受保护内存模型之间的区别?

平面内存模型和受保护内存模型的区别?VxWorks 支持扁平内存模型,Linux 是否也支持扁平内存模型? 解决方案 为了给出一个有意义的答案,让我们先回顾一些概念. 大多数现代处理器都有一个用于多种用途的内存管理单元 (MMU). 一个目的是在虚拟地址(CPU“看到"的地址)和物理地址(芯片实际连接的地方)之间进行映射.这称为地址转换. 另一个目的是为某些虚拟内存位置设 ..
发布时间:2022-01-02 09:28:22 服务器开发

使用 Requests HTTP 库了解 Python 中的内存消耗增加

我正在使用 python v2.7 和 请求 HTTP 库.我使用的是 Windows 7 操作系统. 我不明白为什么下面的代码在执行时会消耗越来越多的内存?我使用任务管理器观察了内存消耗.如果有人能指出可能的原因以及如何避免它,那就太好了?如果有人可以在他/她的系统上对此进行测试并确认不仅仅是我或我的系统面临这个问题,那也会很棒.:) 虽然内存消耗会以少量增加,但我认为在某些时候,当没有更 ..
发布时间:2021-12-31 20:26:58 Python

Three.js 中的内存泄漏

我们正在尝试创建一个单页应用程序,用户可以在其中在多个 Three.js 应用程序之间切换.但是,我们注意到选项卡的内存使用量不断增加.我们的应用程序中没有内存泄漏,并且似乎 Three.js 变量没有从 RAM 中清除. 重新创建的步骤 访问 http://threejs.org/examples/ 并在 Google Chrome 中打开任务管理器以注意内存相关标签的使用情况. ..
发布时间:2021-12-31 18:43:32 前端开发

在 valgrind 中仍然可以访问

虽然在 valgrind 中搜索仍然可达,但有人说这不是问题.我们不需要修复它.有人说它需要修复.如果有人能明确解释我这背后的逻辑是什么,我会更好.是否必须修复此问题? [编辑] 我的 C 程序有以下 valgrind 输出.我需要修复它吗? 泄漏摘要:==27333== 肯定丢失了:0 个块中的 0 个字节.==27333== 可能丢失:0 个块中的 0 个字节.==27333= ..

内存使用,如何释放内存

我正在使用 python 并且在索引文档(用于搜索引擎)时需要大量 RAM,在我停止索引过程后,内存仍然已满(例如 8GB 的​​ RAM).这很糟糕,因为我需要我的搜索引擎一直工作,而不是在我完成索引后重置操作系统.有没有什么有效的方法来管理庞大的数组、字典和列表,以及如何释放它们.有什么想法吗? 我在 stackoverflow 上也看到了一些关于它的问题,但它们已经过时了: Py ..
发布时间:2021-12-31 08:18:06 Python

为什么包装 Data.Binary.Put monad 会造成内存泄漏?

我正在尝试将 Data.Binary.Put monad 包装到另一个中,以便稍后我可以问它诸如“它将要写入多少字节"或“文件中的当前位置"之类的问题.但即使是非常琐碎的包装,例如: data Writer1M a = Writer1M { write :: P.PutM a }或者数据 Writer2M a = Writer2M { write :: (a, P.Put) } 造成巨大的空间 ..
发布时间:2021-12-31 08:15:55 其他开发

异常代码 C++ 中的泄漏

我一直在处理一个学校项目,其中一项任务是确保它完全不泄漏.所以,我通过 valgrind 运行了我的程序,因为我没有使用任何动态内存分配,所以我认为我找不到任何东西. 糟糕,我做到了.Valgrind 给了我这个: ==22107== 1 个块中的 16 个字节在丢失记录 1 of 4 中肯定丢失==22107== 在 0x100038915:malloc (vg_replace_mall ..

不释放内存是否可以接受

我正在处理一个应该从命令行使用以下语法的项目: 程序名输入文件 程序应该处理输入,计算一些东西并在标准输出上输出结果. 我选择的语言是 C++,有几个原因我不愿意争论.计算阶段将是高度象征性的(想想编译器),并将使用非常复杂的动态分配的数据结构.特别是,它不适合 RAII 风格的编程. 我想知道忘记释放内存是否可以接受,因为我希望整个计算消耗的内存少于可用内存,并且操作系统可以在程 ..
发布时间:2021-12-31 08:13:27 C/C++开发

如何解决较早启动但“由于内存压力而终止"的应用程序?现在?

我正在 Xcode 中开发 iOS 应用程序.早些时候我让它启动和运行,直到功能有限.然后是编译失败,声称未触及的样板生成的代码有语法错误.将源代码复制到新项目中会遇到不同的问题. 现在,我可以编译并开始运行,但它甚至在启动图像出现之前就指出应用程序由于内存压力而关闭.总视觉资产约为 272M,可以在不损害图形丰富性的情况下进行一些优化,并且是迄今为止该程序唯一预计较大的区域.(资产可能会或 ..
发布时间:2021-12-31 08:12:35 移动开发

Python 无法使用 multiprocessing.pool 分配内存

我的代码(遗传优化算法的一部分)并行运行几个进程,等待所有进程完成,读取输出,然后用不同的输入重复.当我重复 60 次测试时,一切正常.由于它有效,我决定使用更实际的重复次数,200.我收到了这个错误: 文件“/usr/lib/python2.7/threading.py",第 551 行,在 __bootstrap_inner 中self.run()运行中的文件“/usr/lib/python ..

UIWebView 内存管理

我的内存管理有问题. 我正在开发一个大量使用 UIWebView 的应用程序.这个应用程序在从我的服务器加载内容时动态生成大量 UIWebViews.其中一些 UIWebViews 非常大并且有很多图片. 如果我使用仪器检测泄漏,我不会检测到任何泄漏.但是,分配了很多对象,我怀疑这与 UIWebViews 相关. 当webviews因为不再需要而释放时,似乎并不是所有的内存都被释 ..
发布时间:2021-12-31 08:09:03 移动开发

C - 检查当前可用的可用 RAM?

我知道如何使用 malloc() 和 free() 来分配内存,但是是否也有一个标准的 C 函数来检查剩余多少内存,所以我可以定期调用它以确保我的代码没有内存泄漏? 我唯一能想到的就是在无限循环中调用 malloc(1) 直到它返回错误,但不应该有更有效的方法吗? 解决方案 不,没有标准的 C 函数可以做到这一点.您可以使用一些特定于平台的函数来执行某些类型的查询(例如工作集大小), ..
发布时间:2021-12-31 08:08:50 其他开发