MAT(1) 小样

一、内存溢出时生成hprof文件

运行参数:

-Xms40m -Xmx40m -Xmn20m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=E:\Java\dump

package cn.zno.outofmomery;

import java.util.ArrayList;
import java.util.List;

public class Main {

    void h() {
        List<byte[]> list = new ArrayList<byte[]>();
        while (true) {
            list.add(new byte[1024 * 1024]);
        }
    }

    public static void main(String[] args) {
        new Main().h();
    }
}

Console:

java.lang.OutOfMemoryError: Java heap space
Dumping heap to E:\Java\dump\java_pid5032.hprof ...
Heap dump file created [40841151 bytes in 0.271 secs]
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    at cn.zno.outofmomery.Main.h(Main.java:11)
    at cn.zno.outofmomery.Main.main(Main.java:16)

二、打开文件

获取帮助信息:

注:-XX:HeapDumpPath指定的路径必须存在

时间: 2024-11-29 02:23:32

MAT(1) 小样的相关文章

OpenCV中对Mat的遍历访问与赋值

一.访问 对于Mat的访问有两种方式 第一种,利用Mat::at进行访问 //读取3通道彩色图像 Mat img = imread("图片地址"); int px; //读取图像中第一行第一列,Blue通道数据 int px = img.at<Vec3b>(0, 0)[0]; 第二种,利用Mat的成员ptr指针进行访问 //读取3通道彩色图像 Mat img = imread("图片地址"); //将Mat中的第一行地址赋予pxVec uchar* px

python读取mat文件

一.mat文件 mat数据格式是Matlab的数据存储的标准格式.在Matlab中主要使用load()函数导入一个mat文件,使用save()函数保存一个mat文件.对于文件 load('data.mat') save('data_1.mat','A') 其中,'A'表示要保存的内容. 二.python中读取mat文件 在python中可以使用scipy.io中的函数loadmat()读取mat文件,函数savemat保存文件. 1.读取文件 如上例: #coding:UTF-8 import

OpenCV 访问Mat 像素

场景 在进行烟雾检测的过程中,需要访问Mat指定区域的像素值,然后判断是否符合烟雾的像素特征(当然,在网上查询到的烟雾像素特征,实际上,并没有正确识别出烟雾),可通过如下的方式进行操作 int  similarDegree = 0; int channel = srcMat.channels(); for (int i=info.smokeLeftTopPos.y; i<maxHeight; i++) { for (int j=info.smokeLeftTopPos.x; j<maxWidt

OpenCV参考手册之Mat类详解(二)

转自 http://blog.csdn.net/giantchen547792075/article/details/7169255 Mat::~Mat Mat的析构函数. C++: Mat::~Mat() 析构函数调用Mat::release(). Mat::operator = 提供矩阵赋值操作. C++: Mat& Mat::operator=(const Mat& m) C++: Mat& Mat::operator=(const MatExpr_Base& exp

selective search生成.mat文件

https://github.com/sergeyk/selective_search_ijcv_with_python 里的selective_search.py是python接口 import tempfile import subprocess import shlex import os import numpy as np import scipy.io script_dirname = os.path.abspath(os.path.dirname(__file__)) def ge

Mat类

1.Mat类 早期的opencv中,使用IplImage和CvMat数据结构来表示图像.IplImage和 CvMat 都是c语言的结构.使用这两个结构的问题是内存需要手动管理,开发者必须清楚的知道何时需要申请内存,何时需要释放内存.这个开发者带来了一定的负担,开发者应该将更多精力用于算法设计,因此在新版本的 OpenCV 中引入了 Mat 类. 新加入的 Mat 类能够自动管理内存.使用 Mat 类,你不再需要花费大量精力在内存管理上.但 C++接口唯一的不足是当前一些嵌入式开发系统可能只支持

Mat转化为IplImage类型和CvMat类型

cv::Mat img; CvMat  cvMatImg = img; IplImage IpImage = img; 转化后传递的是矩阵头. IplImage类型转化为Mat和CvMat类型 IplImage *IpImage = cvLoadImage("*.jpg"): Mat img(IpImage,true):

使用Mat分析大堆信息

在定位一线问题时经常碰测试中出现Out Of Memory的问题, 通过jmap查看,发现JVM heap全用满了.有很多工具可以查看JVM堆的信息, 收费的比如JProfiler, YourKit,免费的如Oracle JDK自带的visualvm, jhat和Eclipse MAT.这个应用安装在一台AWS上,没有图形界面, 内存也比较小,想通过VNC远程桌面启动visualvm或者MAT不可能,通过jhat分析dump出来的snapshot(大约4.3G)也很慢,半天没有分析完毕,这种办法

访问Mat矩阵中的元素并为其赋值

在OpenCV中有三种方式访问矩阵中的数据元素:容易的方式,困难的方式,以及正确的方式.今天主要讲容易方式: 最容易的方式是使用宏CV_MAT_ELEM( matrix, elemtype, row, col ),输入参数是矩阵,不是指针,网上有很多人说是指针,矩阵元素类型,行,列,返回值是相应行,列的矩阵元素.CV_MAT_ELEM可以给矩阵赋值,也可以访问矩阵元素. CV_MAT_ELEM宏实际上会调用CV_MAT_ELEM_PTR(matrix,row,col)宏来完成任务. CV_MAT