有没有办法找出我的Java线程在虚拟机中占用多少内存?
例如,使用堆栈跟踪转储或其他某种方式。
java中一个普通线程需要多少内存。假设没有与之关联的对象。
当我研究线程及其占用的内存(线程堆栈)时,我决定做一个简单的负载测试,看看线程的数量如何影响我的计算机上的RAM。 所以,在测试中,我使用了Tomcat,在设置中。xml将最小和最大web容器线程池设置为200。在那之后,我在将pool设置为2000时也做了同样的操作。我很震惊,因为内存占用没有差异(通过Windows任务管理器进行检查),而且几乎是一样的。所以我认为这些线程可能必须处于运行状态,
问题内容: 我最近继承了一个小型Java程序,该程序从大型数据库中获取信息,进行一些处理并生成有关该信息的详细图像。原始作者使用单个线程编写了代码,然后对其进行了修改,以使其可以使用多个线程。 他在代码中定义了一个常量; 然后,它设置用于创建映像的线程数。 我理解他的理由,即线程数不能大于可用处理器的数目,因此将其设置为可以充分发挥处理器潜力的数量。这样对吗?还是有更好的方法来充分利用处理器的潜力
嗨,我对java编程还比较陌生。我编写的下面的程序似乎占用了很多内存(大约240 MB,正常吗?-我不这么认为!)请建议一些方法来优化这个程序,以便减少内存存储。 程序-- 代码-
为什么我的java PID占用更多内存。目前我有24GB ram和max-xmx=15G。所以java PID的解决方案是占用更少的内存。 23794 root 0 22.2g 16.5g 13416 s 100.070.42980:54上面的java是我的最高命令结果。任何人都知道如何重新关注这个问题。
首先,我的问题是,为什么编译线程占用大量的CPU,以及如何最小化这一点,以便我们可以将CPU分配给其他线程。 提前感谢!