草庐IT

pairing-heap

全部标签

java : Get heap dump without jmap or without hanging the application

在少数情况下,我们的应用程序使用了大约12GB的内存。我们尝试使用jmap实用程序获取堆转储。由于应用程序正在使用一些GB的内存,它会导致应用程序停止响应并导致生产出现问题。在我们的例子中,堆使用量在6小时内突然从2-3GB增加到12GB。为了找出内存使用趋势,我们尝试在重新启动应用程序后每隔一小时收集一次堆转储。但如前所述,由于使用jmap会导致应用程序挂起,我们需要重新启动它,并且我们无法获得内存使用的趋势。有没有办法在不挂起应用程序的情况下获取堆转储,或者是否有除jmap之外的实用程序来收集堆转储。对此的想法非常感谢,因为如果不了解内存使用趋势,则很难解决此问题。注意:我们的应用

c -/proc/pid/maps 中缺少 [heap] 部分

我正在试验一个不断分配内存的简单C程序:for(i=0;i此处粘贴完整代码:http://tny.cz/2d9cb3df但是,当我cat/proc/pid/maps时,我没有得到[heap]部分。为什么?08048000-08049000r-xp0000000008:1117/data/a.out08049000-0804a000r--p0000000008:1117/data/a.out0804a000-0804b000rw-p0000100008:1117/data/a.out0804b000-0805e000rw-p0000000000:000b74c6000-b75c8000r

java - Tomcat内存消耗大于heap + permgen空间

我观察到操作系统所说的和jVisualVM所说的TomcatRAM消耗不匹配。从htop来看,TomcatJVM有993MB的常驻内存来自jVisualVM,TomcatJVM正在使用堆最大值:1,070,399,488B堆大小:298.438.656B使用的堆:变量,介于170MB和270MB之间最大永久代数:268,435,456B永久代大小:248,872,960B使用的PermGen:略有变化,大约150MB据我了解,操作系统内存消耗应该是堆大小+PermGen大小~=522MB。但这比我观察到的要少471MB。有人知道我在这里缺少什么吗?PS:我知道我的最大堆比使用的要高得多

ios - 没有 Heap shot 分析

我正在尝试找出我的应用程序在哪里放弃了内存以及我看到的所有资源都说标记了heapshot。但是我只有一个标记生成按钮。我应该在哪里找到堆射击按钮?或者它只是改变了。抱歉,我是iOS新手。 最佳答案 MarkGeneration按钮是heapshot按钮。在Xcode5和Xcode6中,Allocations工具的HeapshotAnalysis部分已重命名为Generations。 关于ios-没有Heapshot分析,我们在StackOverflow上找到一个类似的问题:

c++ - 什么时候使用 std::pair 比较好?

我的印象是定义自己的结构总是更好,这样我就可以使用有意义的字段名称而不是first和second。标准使用std::pair的一个地方是访问std::map的元素。first是键,second是值。拥有一个特定的key_value_pair模板,并将其字段称为key和value而不是first和second?在我看来,它可以免费使代码更具可读性。 最佳答案 当我需要包含2个或更多对象的本地包时,我通常使用对(和元组)。主要用例是函数的返回类型:C++不允许返回多个值,但允许返回具有多个字段的结构。我更喜欢使用一对或元组,而不是使用输

c++ - 从 std::heap 中间移除一个元素

我正在使用优先级队列作为调度程序,但有一个额外的要求。我需要能够取消预定的项目。这相当于从优先级队列的中间移除一个项目。我不能使用std::priority_queue因为对除top之外的任何元素的访问是protected。我正在尝试使用algorithm的堆函数。但我仍然缺少我需要的那block。当我从堆中间删除一个元素时,我希望它能够有效地重建自己。C++提供了这些堆函数:std::make_heapO(3n)std::push_heapO(lg(n))std::pop_heapO(2lg(n))我想要一个像std::repair_heap这样的新函数,带有一个big-O3n。我会

c++ - 文学编码与。 std::pair,解决方案?

作为大多数程序员,我钦佩并尝试遵循Literate编程的原则,但在C++中,我经常发现自己使用std::pair来完成大量常见任务。但是std::pair是,恕我直言,文学编程的邪恶敌人......我的意思是,当我回到一两天前编写的代码时,我看到了对std::pair的操作(通常作为迭代器),我不禁想知道“iter->first和iter->second是什么意思???".我猜其他人在查看他们的std::pair代码时也会有同样的疑问,所以我想知道,有没有人想出一些好的解决方案来恢复使用时的读写能力std::pair? 最佳答案 s

c++ - 如何初始化 const std::pair?

假设我有一个:#includeusingnamespacestd;typedefpairmy_pair;如何初始化constmy_pair? 最佳答案 使用它的构造函数:constmy_pairp(1,2); 关于c++-如何初始化conststd::pair?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1231788/

c++ - 为什么 std::pair<A,B> 与 std::tuple<A,B> 不同? (真的没有办法吗?)

为什么是std::pair与std::tuple不同?不能只用一个代替另一个总是感觉很奇怪。它们在某种程度上是可转换的,但有一些限制。我知道std::pair需要有两个数据成员Afirst和Bsecond,所以它不能只是std::tuple的类型别名.但我的直觉说我们可以专攻std::tuple,即正好有两个元素的元组,等于标准要求的定义std::pair成为。然后将其别名为std::pair.我想这是不可能的,因为它太简单了以至于没有想到,但是例如在g++的libstdc++中并没有这样做(我没有查看其他库的源代码)。这个定义的问题是什么?是否“只是”会破坏标准库的二进制兼容性?

c++ - std::pair: 过于严格的构造函数?

我偶然发现了新的std::pair的一个令人惊讶的行为。构造函数,它是在C++11中引入的。我在使用std::pair>时发现了这个问题,它发生了,因为std::atomic既不能复制也不能移动。在下面的代码中,我替换了std::atomic与foobar为了简化。以下代码编译良好,使用GCC-4.9和Clang-3.5(有和没有libc++):structfoobar{foobar(int){}//implicitconversion//foobar(constfoobar&)=delete;};std::pairp{1,2};这种行为是预期的。但是,当我删除foobar的复制构造函