问题标签 [allocation]

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 投票
9 回答
988 浏览

c# - “新”还是“新”

new声明对象时何时使用关键字,何时不使用,是否有一个经验法则?

或者

0 投票
3 回答
17261 浏览

java - Java中的逃逸分析

据我所知,JVM 使用逃逸分析来进行一些性能优化,例如锁粗化和锁省略。如果 JVM 有可能决定任何特定对象可以使用转义分析在堆栈上分配,我很感兴趣。

一些资源让我认为我是对的。有没有真正做到这一点的JVM?

0 投票
8 回答
450 浏览

c++ - 在 C 中返回堆栈数据;它是否正确取消分配?

我正在查看朋友的代码,并就 C/C++ 如何在堆栈上分配内存并管理其释放进行了有趣的辩论。如果我要在一个函数中创建一个包含 10 个对象的数组,但返回该数组,它是在函数弹出时释放(因此使给定数据无效)还是放入堆中(这引发了我们如何释放它?)。

示例代码如下:

非常感谢任何帮助,这变成了一个非常有趣的问题,我的朋友们,我无法回答。

0 投票
2 回答
1918 浏览

android - Android:跟踪创建的对象数

我正在将游戏移植到 Android(有很多代码,而我的代码很少),DalvikVM 正在(通过 LogCat)告诉我所有关于垃圾收集的信息。在代码中的某个时刻,我收到一条“GC 释放 x 个对象 / x 毫秒”消息流,基本上是通知我刚刚删除了大约 150,000 个对象,这需要整整一秒钟。

我想知道这些是从哪里来的!我很确定我不是故意创建那么多对象。

那么,有没有办法得到......基本上与该消息相反?创建任何对象时打印日志消息的东西?

这样我就可以跳过代码,检查生成了多少消息,并查看代码的哪些部分正在生成对象。我怀疑在循环的一部分中创建了某种形式的对象,但如果可能的话,这将是一种确定的简单方法。

我正在使用Eclipse 3.4.2,如果那是相关的。

有任何想法吗?

0 投票
4 回答
1193 浏览

c - 为什么这段代码不在 C 中分配内存?

更新的问题在这里

HashTable中的内存分配问题

我正在用 C 制作一个 HashTable。这就是我所做的。我想我正走在正确的道路上,但是当我试图

主程序

哈希表.c

ListPtr 是一个 LinkedList ptr

列表.h

哈希表.h

当我运行调试器时,我看到没有分配给 myList 的内存。在上面的示例中,我的尝试是使其成为 10 个列表的数组。

请帮我解决这个问题。

如果有帮助的话,我不是 C 方面的专家。

0 投票
2 回答
305 浏览

dll - 跨dll分配可以吗?

如果我有一个使用至少两个 dll 的应用程序,在一个 dll 中分配资源并在另一个 dll 中释放它们通常是否安全?

我正在考虑在不同的 dll 中调用 fopen 和 fclose,但我也想知道它对其他资源(内存指针、句柄等)是安全的。

我认为只要所有东西都是用相同的开关编译的,它应该可以工作。

谢谢,科里

0 投票
1 回答
200 浏览

c++ - 托管 C++ 中托管对象的分配

使用 gcnew 分配对象后是否需要检查 nullptr?

0 投票
9 回答
1890 浏览

algorithm - 可能的NP完全问题?

我只是希望有人验证以下问题是否是 NP 完全的,或者实际上是否有比简单的蛮力组合检查更好/更容易的解决方案。

我们的软件中存在某种资源分配问题,我将用一个例子来解释它。

假设我们需要 4 个人在白班期间工作。这个数字,以及它是“白班”的事实都记录在我们的数据库中。

但是,我们不要求任何人来填补这些空缺,为了满足要求,需要满足一些要求。

在这 4 人中,假设其中 2 人必须是护士,其中 1 人必须是医生。

其中一名医生还必须作为特定团队的一员工作。

所以我们有这组信息:

白班:4
   1医生
   1医生,需要在A组工作
   1护士

以上不是问题。当我们开始挑选人员进行白班工作并试图弄清楚我们迄今为止挑选的人员是否真的能够满足标准时,问题就出现了。

例如,假设我们选择 James、John、Ursula 和 Mary 工作,其中 James 和 Ursula 是医生,John 和 Mary 是护士。

Ursula 也在 A 队工作。

现在,根据我们尝试满足要求的顺序,我们最终可能会推断出我们是否有合适的人,除非我们开始尝试不同的组合。

例如,如果从列表中首先选择 Ursula,我们可以将她与“1 位医生”标准进行匹配。然后我们到了 James,我们注意到,由于他不在 A 队工作,所以关于“1 位医生,需要在 A 队工作”的其他条件,不能由他填写。由于另外两个人是护士,他们也不符合这个标准。

所以我们回溯并首先尝试詹姆斯,他也可以满足第一个标准,然后厄休拉可以满足需要该团队的标准。

所以问题对我们来说是因为我们需要尝试不同的组合,直到我们全部尝试过,在这种情况下,我们有一些标准尚未满足,即使工作的正面总数与总数相同需要的磁头数量,或者我们找到了一个有效的组合。

这是唯一的解决方案,有人能想到更好的解决方案吗?


编辑:一些澄清。

对这个问题的评论提到,对于这几个人,我们应该使用蛮力,我同意,这可能是我们可以做的,我们甚至可以这样做,在同一条车道上,某种优化着眼于如果数据量小,则选择不同的排序算法,初始开销较小。

但问题是,这是一个名册规划系统的一部分,其中可能有很多人参与其中,既是“我们需要 X 人上白班”,又是“我们有这个 Y 人池那将是这样做的”,以及一个大型“我们为那些必须以某种方式与这些 Y 人匹配的那些 X 人的 Z 标准列表”,然后你补充说我们将拥有当领导者调整花名册时,需要在几天内实时进行相同的计算,然后就需要快速解决方案。

基本上,领导者会在屏幕上看到一个实时总和信息,说明还有多少人仍然失踪,无论是在整个白班,还有多少人符合各种标准,以及我们实际上有多少人除了我们拥有的那些。当领导者用“如果詹姆斯上白班而不是乌苏拉,乌苏拉上夜班怎么办”来调整名单时,这个显示将不得不更新半直播。

但是非常感谢到目前为止已经回答这个问题的人,约束满足问题听起来像是我们需要走的路,但我们肯定会仔细研究这里的所有链接和算法名称。

这就是我喜欢 StackOverflow 的原因 :)

0 投票
2 回答
2766 浏览

iphone - iphone sqlite3 对象分配内存增加但没有泄漏

我一直在试图弄清楚wh。每次我调用这个函数时,我的对象分配都会保持正确,仪器报告没有泄漏,但我得到了很多来自的对象

我尝试按照此处发布的建议解决它:http ://www.iphonedevsdk.com/forum/iphone-sdk-development/7092-sqlite3-database-gobbling-up-memory.html但无法修复它

感谢任何帮助,我的代码如下

0 投票
24 回答
161517 浏览

c - 为什么使用 alloca() 不被认为是好的做法?

alloca()在堆栈上而不是在堆上分配内存,如malloc(). 因此,当我从例程返回时,内存被释放。所以,实际上这解决了我释放动态分配内存的问题。释放通过分配的内存malloc()是一个令人头疼的问题,如果以某种方式错过会导致各种内存问题。

alloca()尽管有上述功能,为什么不鼓励使用?