问题标签 [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 - 如何获取使用 ProcessBuilder 执行的进程的内存使用情况和 cpu 时间?
我正在使用 processBuilder 在 java 上执行 python/perl 脚本。我想知道执行的进程的内存使用情况和 CPU 时间。Java mx bean 仅限于 jvm。因此,我认为它不能用于脚本执行。请帮忙。
performance - 如何输出诊断工具分析的内存使用情况?
Microsoft Visual Studio 2017 提供诊断工具。使用这个工具,我们可以随时读取程序运行过程中使用的内存,非常有用。然而,这个读数必须是手动的。
我要解决的原始问题是在单个进程中获取每个实例的峰值内存使用量。如果我可以从诊断工具中输出内存使用量和时间,那么我可以编写一个程序来找到一个时间间隔内的峰值内存使用量,其中记录每个时间间隔以解决一个实例。
我知道诊断工具测量的内存实际上PeakPagedMemorySize64
是类的Process
,而我真正想知道的是 的值PeakWorkingSet64
。尽管如此,这是可以接受的,因为这两个值非常接近(例如PeakPagedMemorySize64 = 1,272,377,344 bytes
和PeakWorkingSet64 = 1,225,867,264 bytes
)。
multithreading - 从其他线程连接时的 Sqlite 高内存使用率
我发现了 sqlite 的一个问题,我现在几天都无法解决。问题是,当我尝试从其他线程创建新数据库(新连接)然后是 main(具有 main 方法的线程)时,sqlite 将分配比平常更多的内存。
这是我正在尝试做的非常简单的示例。
从主线程打开数据库时,会出现内存使用结果(来自 proc/pid/status)。
从其他线程打开sqlite时有结果
最显着的区别是 VmData,如果启动另一个线程,它就像 80MB。有什么原因,为什么 sqlite 从其他线程启动时会消耗这么多内存?还是我的申请中有任何错误?
python-3.x - Python 3.x 中函数的内存使用情况
是否有任何特定的 Python 库通过提供 avg/max/min 统计信息来量化Python 3.x 中特定函数的空间(内存消耗)和时间复杂度(时间消耗)?
postgresql - 为什么 PostgreSQL 不完全使用共享缓冲区
我在 94 GB 内存服务器上安装了 Postgres 9.3,120GB 数据库,shared_buffers=1GB。Linux 显示我有 88GB 内存可用(没关系,图表非常稳定),但共享缓冲区缓存未命中率约为 10%。
所以我改变了 shared_buffers=16GB 并且我认为可用内存大约是 88G-15GB = 73GB。相反,可用内存在 85GB-77GB 范围内移动,因此共享缓冲区会以某种方式被无缘无故地驱逐。缓存未命中率约为 5%,仍然很糟糕。可用内存图表: 内存消耗
我无权安装 pg_buffercache 扩展来澄清任何缓冲区都是空的。
为什么 Postgress 不使用所有共享内存和驱逐缓冲区有什么想法吗?
UPD。可用内存增长与检查点限制启动的检查点之间存在相关性 - 图表上的所有高峰值都是检查点。尚不清楚为什么 postgress 在检查点保存到磁盘后会释放脏缓冲区
c# - 在 ASP.NET Web API 中缓存单个键与缓存键字典
我需要在 ASP.NET Web API 中缓存有关用户角色的信息。我决定使用System.Web.Helpers.WebCache
类。角色是纯字符串,大约 40 个字符长。每个用户可能有 1-10 个角色。
我正在考虑两种方法来做到这一点:
- 使用
WebCache.Set(UserID, List<String>).
使用用户 ID 作为键并将角色列表(字符串)存储为值。它很容易检索。 - 使用字典,我将使用 userId 作为键,使用角色列表作为值,然后缓存字典。这样我只用一个键进行缓存。当我检索此信息时,我首先检索字典,然后使用用户 ID 获取角色信息。
问题:
- 哪种方法更好?我喜欢方法一,因为它易于使用。它有什么缺点吗?
- 我计算用于将这些键保存到缓存中的内存使用的方法是将相同数量的数据(存储 10 个字符串类型的角色)添加到记事本中,然后计算记事本的大小(使用 UTF-8 编码)。大小约为
500 bytes
,磁盘大小为4 KB
. 然后如果我有 200 个用户,我将乘以 200 * 500 字节来计算内存使用量。这是正确的(如果近似关闭,我可以)计算方式吗?
ios - 在 iPhone Xs 上使用更多内存的样式传输模型
我正在使用 Core ML 模型进行图像风格转换。在 iOS 12 中的 iPhone X 上,初始化模型占用约 60 MB 内存。但是,在 iPhone Xs (Max) 消费者上加载相同模型的内存超过 700 MB。
在仪器中,我可以看到运行时分配了 38 个 IOSurfaces,每个具有高达 54 MB 的内存 foodprint 以及许多其他 Core ML (Espresso) 相关对象。iPhone X 上没有这些。
我的猜测是 Core ML 运行时为了利用 A12 的强大功能做了一些不同的事情。但是,由于内存压力,我的应用程序崩溃了。
我已经尝试使用最新版本的coremltools
. 但是,它们是相同的。
我错过了什么?
c# - Image<,> 不会使用 EmguCV 处理
这个问题被问了很多,但没有人回答!我正在使用 EmguCV,它是 .NET 的 OpenCV 包装器。我正在处理所有创建的对象,但我的应用程序仍在使用越来越多的内存,直到它崩溃。我几乎尝试了一切,包括:.Dispose()
=null
using()
甚至 GC 几乎每半秒运行一次,但没有任何效果!这是我的代码:
(我选择了 100 张扫描图像,所有 JPG 类型和 300dpi)其中一张图像上传到 DropBox 以保持质量: https ://www.dropbox.com/s/tsbe8pesbxk7dsz/Example.jpg?dl=0
我还尝试将ProcessImage
Function 中的代码更新为以下代码,但我的程序冻结并崩溃!
重要更新: 如果函数在我的程序崩溃之前完成,令人惊讶的是它会释放所有内存。这是一个图表。
我正在使用 VS 2017-Community,Win10 64 位,都是最新的,并且是 EmguCV 3.4.3 的最后一个稳定版本
c# - Dotnet Core - 如何在我编译的应用程序中链接包(dll)
我正在创建一个新的 dotnet core ASP Web API(dotnet core 2.2),我注意到的一件事是它引用了一个名为Microsoft.AspNetCore.App
.
当我查看这个包的内部时,它实际上是对微软默认的一堆其他包的引用,以便您构建所有唱歌和所有跳舞的 Web 应用程序。
我在其中注意到的一件事是对包的引用(例如),例如身份验证或实体框架。我不需要这些(我有一个非常简单的 API)。
我的问题
引用未使用的包会影响应用程序的整体编译输出吗?它是否节省内存消耗(如果不再链接 dll,则不会实例化对象)。
我想对未使用的包的引用仍然在您的应用程序上有一个“足迹”(整体编译大小输出),其中包含指向正在设置的包的链接和正在实例化的包中的对象(我可能对此完全错误- 所以任何澄清都会很棒!)。
我在 UI 世界中使用了类似于 WebPack 的摇树概念。我看过这篇文章,看起来 dotnet 有类似的东西:
https://ianqvist.blogspot.com/2018/01/reducing-size-of-self-contained-net.html
提前感谢您的任何建议!
c# - EmguCV.Stitching 类的内存泄漏
我目前正在编写一个使用 EmguCV 拼接图像的程序。我使用 Emgu.CV.Stiching 类进行拼接算法,尽管我尝试正确处理资源,但我得到了巨大的内存泄漏,具体取决于我使用的图像的数量和大小。
这是我的代码的最小可复制示例
我正在使用 VS 2015 和 EmguCV 版本 4.1.0.3420 并运行调试构建。
她是一个示例图像,因此您可以重现该问题:
只需将图像放入文件夹并将文件夹路径粘贴到预期的代码行中即可。您可以使用 NuGet 安装我在代码中使用的 EmguCV 版本。