标签: memory-consumption

IE 11(更新版本:11.0.24)内存消耗问题

安装Windows更新后,我的IE版本更新到11.0.9600.18059(更新版:11.0.24),我发现它消耗太多内存,当我打开3-4标签和冲浪10-15分钟,内存筹集最多1300-1500 MB,我必须重新启动它.

那么有没有可用的解决方案或补丁?

internet-explorer memory-leaks memory-consumption

8
推荐指数
3
解决办法
1万
查看次数

关于CouchDB的内存消耗

我最近对CouchDB进行了一些评估.我发现视图构建(map&reduce)的内存消耗非常高,以及将更大的JSON文档导入CouchDB.我评估了Ubuntu系统上的视图构造功能(4核,Intel®Xeon®CPUE3-1240 v5 @ 3.50GHz).结果如下:

  1. 400个100KB的数据集将花费大约683 MB的内存;
  2. 一个80 MB的数据集将花费大约2.5 GB的内存;
  3. 四个80 MB的数据集将花费大约10 GB的内存.

内存消耗似乎是原始JSON数据集的数百倍.如果我们使用1 GB数据集,那么CouchDB就会耗尽内存.有谁知道内存消耗如此巨大的原因?非常感谢!

couchdb memory-consumption

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

衡量Java程序内存使用情况的最佳方法?

我目前正在使用VisualVM,但我遇到的问题是我无法保存它生成的图形.我需要报告一些有关其内存使用情况和运行时间的数据,但运行时间很容易System.nanoTime().我也尝试过NetBeans探查器,但它不是我想要的,因为我不是在寻找那些会减慢速度的特定部件,所以这样就太过分了.最大的问题是它占用了太多的处理时间.另外,我不能像VisualVM一样轻松捕获/传输数据,至少就我所知.

理想情况下,最好的方法是调用一些方法,因为我可以更容易地获取信息,但是像VisualVM这样的任何实际上让我保存图形的东西都可以.与NetBeans分析器相比,VisualVM的性能也相当不错,但我认为这是因为我没有使用它的分析器.

我目前正在使用Ubuntu,但Windows 7很好.我宁愿有一个专门做这个的程序,因为那些没有的程序得到的信息很可能包含JVM和其他更好的东西.

好吧,显然,您可以保存当前会话的快照并最大化VisualVM中的窗口,这样您就可以使图表更大,拍摄快照并剪切它们......但这是一种黑客行为.更好的建议欢迎.

java profiler visualvm measurement memory-consumption

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

我可以在1GB内存中创建多少个整数?

在Robert Sedgewick在第200页的Algorithms第四版中,它说"例如,如果你的计算机上有1GB内存(10亿字节),你就不能超过大约3200万个int值."

在计算之后我感到困惑:1,000,000,000字节/ 4字节= 2.5亿

作者如何获得3200万?

这本书描述如下:

在此输入图像描述

language-agnostic integer memory-consumption data-structures

6
推荐指数
2
解决办法
4214
查看次数

Numpy重塑到位

有没有办法在numpy数组上进行重构,但是就地.我的问题是我的阵列非常大,所以任何不必要的副本都不会给内存带来压力.

我目前的做法是这样的:

train_x = train_x.reshape(n,32*32*3)
Run Code Online (Sandbox Code Playgroud)

这并没有完全解决问题,因为它创建了一个新数组,然后将标签train_x赋予新数组.

在正常情况下这可以,因为垃圾收集器很快就会收集原始数组.

问题是我有这样的事情:

train_x, train_y = train_set
train_x = train_x.reshape(n,32*32*3)
Run Code Online (Sandbox Code Playgroud)

所以在这种情况下,即使train_x不再指向原始数组,仍然有一个指向原始数组的指针train_set.

我想要一种方法将前一个数组的所有指针更改为这个新数组.有办法吗?

或许还有其他一些方法来处理这个/

numpy in-place memory-consumption reshape

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

Java和对象,数组和基元类型的精确引用大小

我想知道在内存中为对象分配的真实空间.

我尝试用一​​些例子来解释:使用64位JVM,指针大小应该是8个字节,所以:

  • Object singletest = new Object(); 将占用8个字节来引用Object加上Object的大小
  • Object arraytest = new Object[10]; 将需要8个字节来引用存储数组的位置加上8*10个字节来存储数组加上每个Object的大小
  • int singleint = new int; 将只占用2个字节,因为int是基本类型
  • int[] arrayint = new int[10]; 将占用8个字节来引用位置,并将10*2个字节用于元素

而且,这就是Java允许编写这样的代码的原因:

int[][] doublearray = new int[2][];
int[0][] = new int[5];
int[1][] = new int[10];
Run Code Online (Sandbox Code Playgroud)

真正发生的是一个数组会产生一个像对象一样的引用(也就是指针),因此在声明时它并不重要第二维的大小(维度可能不同,它们之间没有链接).然后所采用的空间将是:对doublearray(8字节)的引用,第一维只是对第二维的引用,所以其他8字节*2(第一维尺寸),最后2字节*5加2字节*10 .

所以,最后,如果有这样一个真正的类:

class Test {
   int a, b;
   int getA() {return A};
   void setA(int a) {this.a = a;}
   int getB() {return B};
   void setB(int b) {this.b = b;}
}
Run Code Online (Sandbox Code Playgroud)

当我调用new来实例化时,将使用8字节的指针(或它引用的名称,因为它是Java)加上2 + 2bytes来将整数存储到类中.

问题是:我是对的,还是我写完废话?此外,当我没有实例化一个对象但我只是声明它时,将分配8个字节以供进一步使用?如果我指定一个空值怎么办?

同时对于原始类型我很确定只是声明它将分配所请求的空间(如果我声明一个"int i"然后我可以立即调用i ++因为没有使用引用,只有一部分内存被设置为"0" ). …

java memory arrays pointers memory-consumption

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

DataTable内存消耗巨大

我正在将csv数据从文件加载到数据表中进行处理。

问题是,我要处理多个文件,而对数据表的测试显示了我对37MB的csv文件进行测试所消耗的大量内存,并且内存增长到了240MB,这对许多恕我直言都是如此。我读到,数据表中有开销,我可以承受大约70MB的大小,而不是240MB,这意味着它是原始大小的六倍。我在这里读到,数据表比POCO需要更多的内存,但是差异太大了。

我戴上内存分析器,看一下是否有内存泄漏以及内存在哪里。我发现,数据表列的字符串填充在6MB到19MB之间,数据表约有20列。值存储在列中吗?为什么要占用这么多内存,我该怎么做以减少内存消耗。由于这种内存消耗,数据表似乎无法使用。

有人是否对数据表有这样的问题,或者我做错了什么?

PS:我尝试了一个70MB的文件,数据表增长到了500MB!

好的,这里有个小测试用例:37MB的csv文件(21列)使内存增长到179MB。

    private static DataTable ReadCsv()
    {
        DataTable table = new DataTable();
        table.BeginLoadData();

        using (var reader = new StreamReader(File.OpenRead(@"C:\Develop\Tests\csv-Data\testdaten\test.csv")))
        {               
            int y = 0;
            int columnsCount = 0;
            while (!reader.EndOfStream)
            {
                var line = reader.ReadLine();
                var values = line.Split(',');

                if (y == 0)
                {
                    columnsCount = values.Count();
                    // create columns
                    for (int x = 0; x < columnsCount; x++)
                    {
                        table.Columns.Add(new DataColumn(values[x], typeof(string)));
                    }
                }
                else
                {
                    if (values.Length == columnsCount)
                    {
                        // add the data …
Run Code Online (Sandbox Code Playgroud)

c# memory csv datatable memory-consumption

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

Node.js中稀疏数组的内存消耗

我写了一个小程序,生成数组,运行时间很长(几乎永远;-)):

var results = [];
var i = 1;

while (true) {
  console.log(i++);
  results.push([]);
}
Run Code Online (Sandbox Code Playgroud)

当我创建一个长度稀疏的数组而不是空数组时,i程序崩溃得非常快:

var results = [];
var i = 1;

while (true) {
  console.log(i);
  results.push(new Array(i++));
}
Run Code Online (Sandbox Code Playgroud)

实际上我起床i等于17424,然后我收到一条错误消息告诉我

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory
Abort trap: 6
Run Code Online (Sandbox Code Playgroud)

和Node.js带我回到控制台.由于唯一的区别是第二个产生比前一个更大的"空"数组,这意味着一个空的稀疏长度数组n占用了n具有长度的空数组的空间1.

我是对的(特别是Node.js)吗?

还有一个问题:如果我跑了

var results = [];
var i = 1;

while (true) {
  console.log(i);
  var temp = [];
  temp[i++] = i;
  results.push(temp);
}
Run Code Online (Sandbox Code Playgroud)

然后我起床到1286175,然后再次崩溃: …

javascript arrays sparse-array memory-consumption node.js

5
推荐指数
2
解决办法
1083
查看次数

在列表中查找项目并返回其索引-OCaml

我编写了以下函数,以在给定列表“ lst”中找到给定项“ x”,并在找到后返回其索引,否则将返回错误:

exception Failure of string

let rec func x lst c = match lst with
    | [] -> raise(Failure "Not Found")
    | hd::tl -> if (hd=x) then c else func x tl (c+1)


let find x lst = func x lst 0
Run Code Online (Sandbox Code Playgroud)

该功能可以正常使用,我只是想知道它的内存消耗是多少?这意味着内存消耗是否取决于列表的长度?还是O(1)?

如果不是O(1),有人可以让我知道该怎么做吗?

谢谢

ocaml list ml find memory-consumption

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

docker cadvisor中的内存和CPU使用率定义

您如何定义docker中google cadvisor提供的内存使用率指标?它是动态堆栈大小,堆需求,高速缓存未命中,代码大小,交换内存还是RAM内存?以及cpu的累计使用量,以哪个度量单位计算?您如何定义它?是否有任何文档?

注意:我记得cadvisor容器将资源使用情况数据导出到influxDB。他要导出的指标包括:memory_usage,cpu_cumulative_usage等。

谢谢

memory cpu-usage memory-consumption docker cadvisor

5
推荐指数
0
解决办法
855
查看次数