社区
Java SE
帖子详情
如何知道线程占用了多少内存
elune
2006-01-09 03:04:18
如何知道线程占用了多少内存,或者问题可以扩展到一个对象实例占用了多少内存?
由单例的RunTime类可以知道虚拟机环境里的占用内存总量,剩余多少内存.但是如果能够监控某个实例内存占用量无疑对优化系统有巨大的好处.
...全文
649
9
打赏
收藏
如何知道线程占用了多少内存
如何知道线程占用了多少内存,或者问题可以扩展到一个对象实例占用了多少内存? 由单例的RunTime类可以知道虚拟机环境里的占用内存总量,剩余多少内存.但是如果能够监控某个实例内存占用量无疑对优化系统有巨大的好处.
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yuzl32
2006-01-10
打赏
举报
回复
做了个小测试,不知道准确否.
几次运行均同一结果.
class Ems
{
private String[] strArr;
public Ems()
{
strArr = new String[10000];
for (int i = 0; i < strArr.length; i ++)
strArr[i] = new String("Hello World! i="+i);
}
}
public class MemTest
{
public static void main(String[] args)
{
long start,end;
Runtime rt = Runtime.getRuntime();
rt.gc(); // 垃圾回收
start = rt.freeMemory();
System.out.println("start="+start);
Ems ems = new Ems();
end = rt.freeMemory();
System.out.println("end ="+end);
System.out.println("end - start=" + (start - end));
System.out.println("单个String对象占的内存为:"+((start - end)/10000.0));
}
}
F:\>javac MemTest.java
F:\>java MemTest
start=1936472
end =762120
end - start=1174352
单个String对象占的内存为:117.4352
F:\>java MemTest
start=1936472
end =762120
end - start=1174352
单个String对象占的内存为:117.4352
F:\>
crazycy
2006-01-10
打赏
举报
回复
如果是编码中这个...java本身似乎没有,第三方的暂时没有使用过
jingweicool
2006-01-10
打赏
举报
回复
学习啊
elune
2006-01-10
打赏
举报
回复
谢谢各位大虾的关注。这两天我也在baidu上爬了很久没有一个确切的答案
yuzl32(Hello!有酒醉)的例子中JVM只main一个线程.到了复杂的系统里就不准确了.我们是否可以对线程内所有基本数据求和得到内存占用的近似值呢?比如 字符串占内存是 str.length*8;整型占内存32b(这由平台决定)。
benq998
2006-01-09
打赏
举报
回复
在java中向达到这个目的好像很难啊。真的找找第三方类库了。
elune
2006-01-09
打赏
举报
回复
谢谢 crazycy(代言人)大虾的热心回复,但是我问的是编码中如何输出线程占用的内存.如果java标准类库中不能支持,是否有免费的第三方类库? 国内能用的起JB的人不多,我还是用记事本(开玩笑,起码也是eclipse)编码.而且Optimize Suite对于web应用开发进行调试也不方便.
crazycy
2006-01-09
打赏
举报
回复
使用JB带的Optimize.Suite组件的Thread Debugger功能可以做到这个目标
flysky1112
2006-01-09
打赏
举报
回复
学习!
superslash
2006-01-09
打赏
举报
回复
mark
win7 java如何 查看
内存
占用
_java获取JVM的CPU
占用
率、
内存
占用
率、
线程
数及服务器的网口吞吐率、磁盘读写速率...
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.LineNumberReader;import java.lang.management.ManagementFactory;impor...
Linux下创建一个
线程
占用
多少
内存
在前面的博客进程分配资源中,我们了解到,在32位平台下,系统会给一个进程分配4G的虚拟
内存
供进程使用。 因此,我们
知道
,一个进程被创建时将被分配有4G的虚拟
内存
。事实上,并不是每次都会用完这4G
内存
的,下面的例子可以看到。 #include <stdio.h> #include <unistd.h> int main(){ while(1){ ...
java
线程
占用
内存
_Java 进程
占用
内存
过多,幕后元凶原来是
线程
太多
那天中午吃饭,一个同事说,那个项目组的人快气死我了,程序有问题,早晨在群里@了他们,到中午才回消息,然后竟然还说他们的程序没有问题,是我们这边调用的太频繁了。简直想笑。背景说明我们当前这个系统和很多的第三方系统做了集成,出问题的就是其中一个三方系统。其实很简单,他们的系统会产生一些个人待办任务,然后待办任务的个数需要推送到我们的 APP 上,作为图标的角标显示。用户数据已经打通,其实很简单的需求,...
Linux 查看进程和
线程
CPU和
内存
占用
情况
(1)ps -p {pid} -T 可以得到该进程里面运行的各
线程
的id(表现出来是spid)、对应的
线程
名称(不超过16字符)、运行时间等;你可以把这个目录下的信息理解为Linux内核在执行你写的程序时所打印的Log。下,因此你可以通过查看这个目录下的信息来或者进程的运行时行为,这对于那些好奇内核是如何运行程序的同学是非常重要的。下记录了每个进程运行时的所有关键信息,那这些信息是谁来生成的呢,答案是Linux内核。Linux内核在执行你写的程序时,将所有关键信息写到了。
windows查询每个
线程
占用
的
内存
_C#多
线程
一、基本概念1、进程首先打开任务管理器,查看当前运行的进程:从任务管理器里面可以看到当前所有正在运行的进程。那么究竟什么是进程呢?进程(Process)是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源。一个正在运行的应用程序在操作系统中被视为一个进程,进程可以包括一个或多个
线程
。
线程
是操作系统分配处理器时间的基本单元,在进程中可以有多个
线程
同时执行代码。进程之间是相对独立的,...
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章