问题标签 [memory]

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.

0 投票
3 回答
1323 浏览

.net - Visual C++ 内存是否由 Dot Net 框架管理

最近,我一直在处理通过 .NET 框架访问 MAPI 的错误(如本文所述)。我现在留下了一系列内存访问冲突错误。

为了解决这些问题,我一直在尝试使用这个具有 Visual C++ 核心的第 3 方组件。不幸的是 - 我们仍然有同样的错误。

我个人从未使用过 Visual C++,但我的问题是:如果 C++ 库是使用 Visual Studio 2005 编译的,使用 Visual C++ - 项目的内存是否也由 .NET 框架管理,因此会使它与我们正在使用的 .NET 库有相同的问题吗?还是我在叫错树?

0 投票
10 回答
5071 浏览

c++ - memset() 导致数据中止

在调用memset(). 问题是,除非代码运行几天,否则通常不会发生这种情况,因此很难在实际中捕捉到它。

我正在使用以下代码:

如您所见,我并没有尝试使用大小比最初分配的更大的 memsetmalloc()

有人看到这可能有什么问题吗?

0 投票
5 回答
2570 浏览

actionscript-3 - FLVPlayback 组件内存问题

我的网站完全基于 Flash,它围绕一个 3D 模型移动,该模型是作为视频块提供给我的,我已将其转换为 FLV 文件。我正在使用 FLVPlayback 组件来控制我的程序中的视频。在使用 System.totalMemory 运行内存检查时,我注意到每当加载视频时,它都会占用大量内存,即使我从中删除所有事件侦听器(它们都是弱引用),从它的父级,停止视频并使组件实例为空,它仍然不会归还该内存。

自从我开始从事这个项目以来,这一直困扰着我,因为用户可能会实例化和加载大量视频。目前,每个视频在需要时都会加载到一个新的 FLVPlayback 实例中,但我已经读到,解决这个问题的最佳方法可能是简单地拥有一个全局 FLVPlayback 实例,然后将新视频重新加载到旧实例中,这样应用程序的内存中只有一个 FLVPlayback 组件。

有没有其他人也遇到过这个问题?您是否找到了比使用为每个新视频重复使用的全局实例更好的解决方案?

0 投票
6 回答
2975 浏览

.net - .net 托管内存如何处理对象内的值类型?

据我了解,以下情况属实:

  1. 引用 m 存在于堆栈中,并且在 MyMethod() 退出时超出范围。
  2. 值类型 newID 存在于堆栈中,并在 MyMethod() 退出时超出范围。
  3. 由 new 运算符创建的对象存在于堆中,并在 MyMethod() 退出时由 GC 回收,假设不存在对该对象的其他引用。

这是我的问题:

  1. 对象中的值类型是存在于栈上还是堆上?
  2. 对象中的装箱/拆箱值类型是否值得关注?
  3. 是否有关于此主题的详细但易于理解的资源?

从逻辑上讲,我认为类中的值类型会在堆中,但我不确定它们是否必须装箱才能到达那里。

编辑:

本主题推荐阅读:

  1. CLR 通过 C# 由 Jeffrey Richter
  2. Don Box 的 Essential .NET
0 投票
12 回答
47105 浏览

c - C 内存管理

我一直听说,在 C 语言中,您必须真正注意如何管理内存。而且我还在开始学习 C,但到目前为止,我根本不需要做任何与内存管理相关的活动。我一直想象着必须释放变量并做各种丑陋的事情。但情况似乎并非如此。

有人可以向我展示(带有代码示例)一个您何时必须进行“内存管理”的示例吗?

0 投票
16 回答
245821 浏览

java - 获取操作系统级别的系统信息

我目前正在构建一个 Java 应用程序,它最终可以在许多不同的平台上运行,但主要是 Solaris、Linux 和 Windows 的变体。

有没有人能够成功提取信息,例如当前使用的磁盘空间、CPU 利用率和底层操作系统中使用的内存?Java 应用程序本身正在消耗什么?

最好我想在不使用 JNI 的情况下获取这些信息。

0 投票
9 回答
112441 浏览

memory - “堆栈溢出”是如何发生的以及如何防止它?

堆栈溢出是如何发生的,确保它不会发生的最佳方法是什么,或者防止发生的方法是什么,特别是在 Web 服务器上,但其他示例也会很有趣?

0 投票
2 回答
857 浏览

php - 使用 MySQLi - 更适合关闭查询

我习惯于将变量使用量保持在最低限度。所以我想知道以下是否有任何优势:

现在,如果我是对的,示例 1 应该更有效,因为$queryunset我重新分配它应该释放与之相关的任何内存时。但是有一种方法 ( MySQLi_Result::free()) 可以释放相关的内存 - 这是同一件事吗?

如果我不调用::free()以释放与结果相关的任何内存,而是unset通过重新分配变量来释放我做同样的事情吗?我不知道如何记录这种事情 - 有人有什么想法吗?

0 投票
8 回答
6229 浏览

c++ - C++ 内存管理

我在大学里了解到,你总是必须释放你未使用的对象,而不是你实际上是如何做的。例如,正确地构建您的代码等等。是否有关于如何在 C++ 中处理指针的一般规则?

我目前不允许使用 boost。我必须坚持使用纯 C++,因为我使用的框架禁止使用任何泛型。

0 投票
7 回答
16803 浏览

c# - 进程内存大小 - 不同的计数器

我试图找出我自己的 .Net 服务器进程正在使用多少内存(用于监视和记录目的)。

我正在使用:

但是,Process 对象有几个不同的属性可以让我读取使用的内存空间:Paged、NonPaged、PagedSystem、NonPagedSystem、Private、Virtual、WorkingSet

然后是“峰值”:我猜它只是存储这些最后一个所取的最大值。

阅读每个属性的 MSDN 定义对我来说并没有太大帮助。我不得不承认我对内存管理方式的了解(就分页和虚拟而言)非常有限。

所以我的问题显然是“我应该使用哪一个?”,我知道答案是“这取决于”。

这个进程基本上会保存一堆列表来记忆正在发生的事情,而其他进程与之通信并查询它的东西。我预计将在其中运行的服务器需要大量 RAM,因此我会随着时间的推移查询这些数据,以便与它保存在其中的列表的大小相比能够估计 RAM 需求。

所以......我应该使用哪一个,为什么?