标签: heap

BodyContentImpl jsp标签内存泄漏问题

我使用的是 Tomcat 5.0.28 版,我正在分析堆转储。它显示内存泄漏是由于 BodyContentImpl 对象造成的,这似乎(不确定)它在标签之间缓存了 jsp 的内容。我还发现该版本存在问题,它不会重置内部用于保存数据的缓冲区。在更高版本的 tomcat 中有限制缓冲区的选项。

我想知道的是,BodyContentImpl 实际上是做什么的,是缓存标签还是数据。它在动态变化的 jsp 中将如何有用。

heap tomcat caching memory-leaks jsp-tags

1
推荐指数
1
解决办法
2740
查看次数

什么是隐式数据结构?堆是实现优先级队列的隐式数据结构吗?

我的问题可能看起来很幼稚,但我真的不明白这个问题,因为我只是数据结构课程的新手。我知道最大和最小堆是如何工作的,但我不确定堆是否是实现优先级队列的隐式数据结构。

language-agnostic heap priority-queue data-structures

1
推荐指数
1
解决办法
1643
查看次数

监控堆使用

我想监视在我的程序执行期间从 HEAP 使用了多少内存空间,其中 C++ 对象根据需要构造和销毁。

收集这些信息的方法是什么?

我觉得应该以某种方式在全局范围内使用覆盖 new 和 delete 运算符,但我不知道如何执行此操作。

有什么帮助吗?

c++ heap memory-management

1
推荐指数
1
解决办法
2968
查看次数

堆与二叉搜索树(当它比另一个更好时?)

在什么情况下使用最小堆比使用二叉搜索树更有效?在二叉搜索树中找到最小值的时间是否等于在最小堆中找到最小值 - O(1)?

algorithm heap binary-search-tree data-structures

1
推荐指数
1
解决办法
1323
查看次数

GoLang Heap和Heapsort

所以我正在尝试为练习实现最大堆,这样我就可以熟悉Go了.

type MaxHeap struct {
    slice []int
    heapSize int
}
func BuildMaxHeap(slice []int) MaxHeap{
    h := MaxHeap{slice: slice, heapSize: len(slice)}
    for i := len(slice)/2; i >= 0; i-- {
        h.MaxHeapify(i)
    }
    return h
}

func (h MaxHeap) MaxHeapify(i int) {
    left := 2*i
    right := 2*i + 1
    largest := i
    slice := h.slice

    if left < h.size() {
        if slice[left] > slice[i] {
            largest = left
        } else {
            largest = i
        }
    }
    if right < h.size() { …
Run Code Online (Sandbox Code Playgroud)

algorithm heap go data-structures max-heap

1
推荐指数
1
解决办法
2353
查看次数

最小堆是否按“默认”排序

我刚拿起“算法简介”,我开始在 c# 中实现堆和堆排序算法。

实现一个从双精度数组构造最小/最大堆的函数,我注意到构造的堆有一些有趣的属性。

可以从左到右,从上到下(从根到叶,按级别)读取构建的最小堆,并将对其进行排序。

这是 minheap 的属性,还是我只是无法获得此属性不适用的情况。最大堆不能这样工作,至少我在这里得到了什么。

输出:

2345 7 34 6 3 5 4 5 1 2 3 2 1 3 1 3 2 1 (maxheap)

1 1 1 1 2 2 2 3 3 3 3 4 5 5 6 7 34 2345 (minheap)

感谢您提前回复!

c# sorting algorithm heap min-heap

1
推荐指数
1
解决办法
833
查看次数

在运行时在堆上分配缓冲区

我正在通过编写简单的二进制解码器来学习 Rust。

我正在使用BufferedReader带有byteorder crate 的 a来读取数字,但是我在读取字节缓冲区时遇到了问题。

我想将字节数据读入在运行时分配的缓冲区中。然后我想将此缓冲区的所有权传递给一个结构。当 struct 不再使用时,应释放缓冲区。

除了一些Vec::with_capacity()hacks之外,似乎没有办法在堆上分配运行时确定的大小的数组。任何想法如何使用适当的 Rust 语义来实现它?

heap memory-management ownership rust

1
推荐指数
2
解决办法
2465
查看次数

从堆弹出异常结果?

我有一个定义为列表列表的简单堆。我使用来自heapq模块的heapop来提取具有最小键的列表(据我所知,它隐式是内部列表的第一个元素)。但是在以下情况下,弹出操作似乎给出了异常的结果。

有人可以解释为什么吗?

堆= [[0,0,0],[inf,1,1],[inf,2,2],[5,3,3],[inf,4,4]]

heapq.heappop(堆)

[0,0,0]

heapq.heappop(堆)

[inf,1,1]

heapq.heappop(堆)

[5、3、3]

heapq.heappop(堆)

[inf,2,2]

heapq.heappop(堆)

[inf,4,4]

python heap python-2.7

1
推荐指数
1
解决办法
164
查看次数

为什么这段代码不打印"20"?

void fun(int* x){
    x=(int*)malloc(sizeof(int));
    *x = 20;
}

int main(){
    int y=31;
    fun(&y);
    printf(%d,y);
}
Run Code Online (Sandbox Code Playgroud)

为什么这段代码能够成功编译?

评论:它是在Eclipse上编译的我在线看到问题:x =(int*)malloc(sizeof(int));

为什么这个程序没有在运行时崩溃?

c heap malloc stack memory-management

1
推荐指数
1
解决办法
122
查看次数

如何声明可以在整个程序中使用的全局2d 3d 4d ...数组(堆版本)变量?

class1.cpp

int a=10; int b=5; int c=2;
//for this array[a][b][c]

int*** array=new int**[a];


for(int i =0; i<a; i++)
{ 
    array[i] = new int*[b];        
    for(int k =0; k<b; k++) 
    {
       array[i][k] = new int[c];
    }  
}
Run Code Online (Sandbox Code Playgroud)

我如何在其他.cpp文件中使用此数组?

c++ heap

1
推荐指数
1
解决办法
67
查看次数