问题标签 [memory-consumption]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 越来越消耗内存的简单 Java 程序
我有这个简单的 Java 代码,它创建一个 JFrame 实例并显示它。此链接包含 jconsole 拍摄的内存消耗图的屏幕截图
让我担心的是,任务管理器中的 java.exe 显示内存使用量以每 8-9 秒 4-5 kbs 的速度持续增加。需要帮忙
hadoop - hadoop的namenode的内存消耗?
谁能详细分析一下namenode的内存消耗?或者有什么参考资料吗?在网络上找不到资料。谢谢!
c++ - 按值传递的参数 Vs 的内存消耗。引用
可能重复:
按引用传递与按值传递有什么区别?
我知道标题可以代表许多其他已回答的问题,我相信我的非常具体的问题没有在其他线程中得到回答(我已经搜索过,如果它是重复的,抱歉)。
对企业:考虑下一个签名:
A:
乙:
和下一个用法:
我的问题与MyFunction的内存堆栈帧中参数的内存消耗有关。
情况A,参数是传值的,是不是会消耗sizeof(short int)个字节?
在情况 B 中,参数通过引用传递,假设编译器将使用指针实现它,这是否意味着它将消耗 sizeof( pointer_type ) 字节 - 这可能比 short int 更多?(曾经有人告诉我,在使用引用时,它可能会消耗 64 位,具体取决于平台)
请注意,该函数接收 long int 类型,因为我想知道它在这两种情况下是否有任何影响。
还有另一个小问题 - 任何人都可以发布一个编译器不会使用指针实现按引用传递参数的示例吗?
谢谢,阿萨夫。
c# - 使用反射来确定哪些字段是属性的支持字段
我正在使用反射来映射对象。这些对象在托管代码中,但除了通过反射之外,我无法看到它们的源代码、底层结构等。所有这一切的首要目标是对象的基本内存映射(在功能上类似于 SOS.dllDumpObject
和!ObjSize
命令)。因此,我试图确定哪些成员被“双重计算”为字段和属性。
例如:
映射时显示:
- 字段
- 天
- k__BackingField
- 特性
- 日期
像这样的班级:
映射时显示:
- 字段
- 天
- 日期
- 特性
- 日期
乍一看,没有什么可以告诉您该Date
属性的“支持字段”是名为 的字段date
。在这种情况下,我试图避免两次计算日期,因为这会给我一个糟糕的内存大小近似值。
更令人困惑/复杂的是,我遇到了属性并不总是具有将通过该Type.GetFields()
方法列出的相应字段的情况,因此我不能完全忽略所有属性。
关于如何确定从返回的集合中的字段Type.GetFields()
是否本质上是从返回的某些相应属性的支持字段的任何想法Type.GetProperties()
?
编辑-我无法确定属性在从返回的集合中没有列出的相应字段的条件Type.GetFields()
。有人熟悉这种情况吗?
编辑 2- 我找到了一个很好的例子,说明属性的支持字段何时不会包含在从Type.GetFields()
. 在查看 String 的引擎盖时,您有以下内容:
- 对象包含名为 FirstChar 的属性
- 对象包含名为 Chars 的属性
- 对象包含名为 Length 的属性
- 对象包含名为 m_stringLength 的字段
- 对象包含名为 m_firstChar 的字段
- 对象包含名为 Empty 的字段
- 对象包含名为 TrimHead 的字段
- 对象包含名为 TrimTail 的字段
- 对象包含名为 TrimBoth 的字段
- 对象包含名为 charPtrAlignConst 的字段
- 对象包含名为 alignConst 的字段
m_firstChar
和m_stringLength
是属性的支持字段,但FirstChar
字符串Length
的实际内容保存在字符属性中。这是一个索引属性,可以对其进行索引以返回字符串中的所有字符,但我找不到保存字符串字符的相应字段。关于为什么会这样的任何想法?或者如何获取索引属性的支持字段?
memory-management - Go 内存消耗管理
我是 Go 新手,并试图弄清楚它是如何管理内存消耗的。
在我的一个测试项目中,我的记忆力有问题。我不明白为什么当我的程序运行很长时间时,Go 会使用越来越多的内存(从不释放它)。
我正在运行下面提供的测试用例。第一次分配后,程序使用了近 350 MB 的内存(根据 ActivityMonitor)。然后我尝试释放它,ActivityMonitor 显示内存消耗翻了一番。为什么?
我正在使用 Go 1.0.3 在 OS X 上运行此代码。
这段代码有什么问题?在 Go 程序中管理大变量的正确方法是什么?
在实现一个使用大量时间和内存的算法时,我遇到了另一个与内存管理相关的问题。运行一段时间后,它会引发“内存不足”异常。
c - 如何减少 SQLite 内存消耗?
我正在寻找在我的应用程序中减少 SQLite3 内存消耗的方法。
在每次执行时,它都会创建一个具有以下架构的表:
之后,数据库每秒填充 50k 次操作。只写。
当一个项目已经存在时,它会使用更新查询更新“计数”(我认为这称为 UPSERT)。这些是我的疑问:
这样,每个事务有 500 万次操作,我可以非常快速地写入数据库。
我真的不关心这个问题的磁盘空间,但我的 RAM 空间非常有限。因此,我不能浪费太多的内存。
sqlite3_user_memory() 通知它的内存消耗在执行期间增长到几乎 3GB。如果我通过 sqlite3_soft_heap_limit64() 将其限制为 2GB,那么当达到 2GB 时,数据库操作的性能几乎下降到零。
我必须将缓存大小提高到 1M(默认页面大小)才能达到理想的性能。
我可以做些什么来减少内存消耗?
android - Android 解压 PNG,会导致潜在的内存不足错误
我在我的应用程序中使用一些 png 图像作为活动的背景。这些 png 文件大多是非常小的图像。例如,我正在使用大小为 768x1024 的磁盘,它实际上是 29.6KB 的磁盘。当我在我的三星 Note 1 上运行该应用程序时,我意识到图像实际上消耗了大约 10 分钟。3MB 内存。因此,Android 似乎将 PNG 文件解压缩为完整的 ARGB 位图(768x1024x4 字节)。我认为这可能是 Android 需要重新采样/调整图像大小并将 PNG 文件放入 drawable-nodpi 文件夹的结果,但这会导致相同数量的内存消耗。
那么,在这种情况下我应该怎么做,我能以某种方式阻止这种减压行为吗?我必须为这个项目中的许多活动放置许多不同的图像,所以似乎在某种程度上这会导致内存不足错误。我是 Android 的初学者,我不知道系统如何处理图像资源,所以我可能会在这里遗漏一些东西。
performance - 删除和添加层时 KineticJS 的高内存消耗
我正在构建一个应用程序,我想在其中重播多个用户(最多 20 个)的移动。每个用户都有一个 X、Y 位置列表(范围从 20 到 400 个位置)。重播时间为 1-10 分钟。
回放以 8 FPS 绘制,这就是我所需要的。在每一帧,我删除显示用户移动的图层,并将所有内容重新绘制到下一个时间点。
此应用程序使用大量内存,如果我重新运行重播,内存消耗会不断增加(高达 8 GB)。我曾尝试在 Google Chrome(第 27 版)中使用 Profiler,但似乎内存中存在层的堆积,即使我经常remove()
使用旧层。
以下代码显示了应用程序功能的快速模型。
我的问题是,stage.removeChildren()
他们Kinetic.Layer().remove()
不会从内存中删除图层吗?还是我需要以完全不同的方式处理这个问题?
php - 为什么在一个foreach循环中内存消耗越来越大?
我有大量数据正在使用 CLI 进行处理。
在 scipt 中,数据经过一个 foreach 循环。
但是在每次迭代中,内存消耗都越来越大。
为什么会这样?每个 var 都在循环中被重新分配,所以不能有内存泄漏。尽管我尝试在每次迭代结束时设置一个 var null ,但这并没有帮助。
在循环中,我使用对象(ActiveRecord)并使用数据库。
一开始脚本运行得非常快(大约每秒 10 次迭代),到最后它的性能低于每秒 1 次迭代。
谢谢。
c# - DataTable内存消耗巨大
我正在将文件中的 csv 数据加载到数据表中进行处理。
问题是,我想处理几个文件,我对数据表的测试显示我使用 37MB csv 文件测试的巨大内存消耗,内存增长到 240MB,恕我直言。我读到,数据表中有开销,我可以忍受大约 70MB 的大小,但不是 240MB,这意味着它是原始大小的六倍。我在这里读到,数据表需要比 POCO 更多的内存,但差别太大了。
我戴上内存分析器并查看是否有内存泄漏以及内存在哪里。我发现,datatablecolumns 有 6MB 到 19MB 的空间填充了字符串,并且 datatable 有大约 20 列。值是否存储在列中?为什么要占用这么多内存,我该怎么做才能减少内存消耗。有了这种内存消耗,数据表似乎无法使用。
有其他人对数据表有这样的问题,还是我做错了什么?
PS:我尝试了一个70MB的文件,数据表增长到了500MB!
好的,这是一个小测试用例:37MB 的 csv 文件(21 列)让内存增长到 179MB。