我想为我的网站为1000万用户进行负载测试.该站点是基于Java的Web应用程序.我的方法是为所有链接创建一个Jmeter测试计划,然后为1000万用户报告.然后使用jvisualVM进行分析并检查是否存在任何瓶颈.
有没有更好的方法来做到这一点?这样做有没有现成的演示?我这是第一次这样做,所以任何帮助都会非常有帮助.
我正在运行Java 1.6_21 SDK构建应用程序.它是在Eclipse中构建的,我正在使用VistualVM eclipse插件在应用程序启动时启动VisualVM.
当我转到Profile选项卡并单击CPU profiling时,它只显示正在运行的THREADS,但它不显示任何METHOD调用.相当没有,没有.我搜索了很多东西,但似乎没有任何东西适合.有没有人见过这个问题?有解决方案吗?
环境:来自SDK 1.6_21的Windows XP 32位"Classic"Eclipse SDK 3.7.0 VisualVM
这对我没有任何意义.我可以获取内存堆信息,但零成员调用信息.
非常感谢任何帮助.
我认为这个问题与这个问题密切相关,但它已经关闭,解决方案对我来说似乎并不清楚.
我正在尝试使用VisualVM来配置我的控制台Scala应用程序.我这样做是通过启动VisualVM,启动我的Scala应用程序,在VisualVM中打开它的节点,转到"Profiler"选项卡并单击"CPU".按钮变为灰色一段时间(状态永远不会变为"分析非活动"),然后返回活动状态,但不显示任何分析数据.
该应用程序执行一些文件读取,数据处理(大约需要一分钟),stdout数据输出和退出.我还尝试添加Thread.sleep(60000)到程序的开头和结尾,以确保有足够的时间让VisualVM捕获它并完成工作,但没有任何改变.
与我链接到的相关问题不同,我没有从Eclipse或其他任何东西启动我的应用程序 - 我使用以下命令行启动它:
java -classpath myapp.jar:lib/* MyApp.Main
Run Code Online (Sandbox Code Playgroud)
所有库(包括scala-library.jar)都放入了lib/.该应用程序按预期工作.
更新:
AttachNotSupportedException.使用的软件版本:
我VisualVM用来看看我的应用程序运行缓慢.但它没有显示所有方法,可能没有显示延迟应用程序的所有方法.
我有一个实时应用程序(声音处理),并有几百微秒的时间缺陷.
是否有可能VisualVM隐藏自己快速的方法?
更新1
我通过采样器和猜测发现了慢速方法.这是toString()方法将其从中断开调试日志记录调用,但耗时.
Settings帮助,现在我知道怎么看:它取决于Start profiling from选项.
我试图了解Java中对象的内存占用量.我在Java中阅读了关于对象和内存的这个和其他文档.
但是,当我使用sizeof Java库或visualvm时,我会得到两个不同的结果,根据之前的参考文献(http://www.javamex.com),这些结果都不会超出我的预期.
对于我的测试中,我使用Java SE 7 Developer Preview一个64-bits Mac带有java.sizeof 0.2.1和visualvm 1.3.5.
我有三个班,TestObject,TestObject2,TestObject3.
public class TestObject
{
}
public class TestObject2 extends TestObject
{
int a = 3;
}
public class TestObject3 extends TestObject2
{
int b = 4;
int c = 5;
}
Run Code Online (Sandbox Code Playgroud)
我的主要课程:
public class memoryTester
{
public static void main(String[] args) throws Throwable
{
TestObject object1 = new …Run Code Online (Sandbox Code Playgroud) 我正在写一个(简单!)线性代数库.在执行矩阵乘法,一个VisualVM的性能样品是告诉我,该算法在下面的方法乘以大矩阵(5K X 120K)时花费的它的时间为85%("自我时间",具体地):
public double next() {
double result;
if(hasNext())
result = vis[i++].next();
else
throw new IllegalStateException("No next value");
return result;
}
Run Code Online (Sandbox Code Playgroud)
没有太多细节(抱歉,我不能共享更多代码),这个方法是next()矩阵的"迭代器" 的方法.(你可以把这个方法住在如由单独的列迭代器,这都存放在一排迭代器之类的vis).我并不感到惊讶,这种方法被调用了很多,因为它是一个迭代器,但我感到惊讶的是,该程序花了很多时间在这个方法上.这种方法做得不多,为什么要花时间在这里呢?
以下是我要问的具体问题:
vis阵列要小于乘以矩阵的数据.如果它有用,这里是我上面粘贴的方法的jad反汇编:
public double next()
{
double result;
if(hasNext())
//* 0 0:aload_0
//* 1 1:invokevirtual #88 <Method boolean hasNext()>
//* 2 4:ifeq 32
result = vis[i++].next();
// 3 7:aload_0
// 4 8:getfield #42 <Field VectorIterator[] vis>
// 5 …Run Code Online (Sandbox Code Playgroud) 我正在运行JDK 1.8.0_66 JVisualVM实用程序,并希望使用MBean浏览器来监视我的Coherence应用程序.根据Oracle教程,我必须首先安装MBeans插件.所以我去了Tools-Plugins-Available插件,没有任何可用的插件.我检查了我的JDK安装*.nbm文件,什么也没找到.
为JVisualVM安装MBeans插件需要做什么?先感谢您.
我正在尝试优化应用程序的内存使用情况.不幸的是,使用-Dcom.sun.management.jmxremote运行我的应用程序并通过VisualVM连接它对堆使用产生了很大的影响.起初我认为这是我的应用程序问题,直到我写了一个非常简单的程序来确认它确实是JMX的开销.以下是活动的图像.
阅读本文之后,我开始明白这是由于VisualVM检索数据的方式,即通过连续轮询连接的应用程序.我通过查看VisualVM的内存采样器来证实了这一点.的RMI TCP连接(n)的螺纹被分配180KB /秒.
我的问题是,有没有办法减少VisualVM的堆使用影响?更改轮询间隔可能不是更好,因为我对堆信息感兴趣.如果这不可能,我们可以排除用于VisualVM的数据吗?至少我想更专注于我的应用程序.
运行代码
Object object = new Object();
synchronized (object) {
object.wait();
}
Run Code Online (Sandbox Code Playgroud)
VisualVM的堆监视器活动

我有远程JBoss 7.1服务器,我想通过使用VisualVM或JConsole连接到此服务器.
我google了一下,发现了几个关于如何使用VisualVM或JCoonsole连接JBoss 7.1的线程/教程,例如:
不幸的是,我没有通过JMX连接到我的JBoss 7.1.
您对如何使用VisualVM连接JBoss 7.1有什么想法吗?
编辑:我将-Dcom.sun.management.jmxremote.port = 1090 -Dcom.sun.management.jmxremote.authenticate = false添加到standalone.conf.bat,但我得到了一个异常:引起:java.lang.IllegalStateException: LogManager未正确安装(必须将"java.util.logging.manager"系统属性设置为"org.jboss.logmanager.LogManager").
所以,我为JAVA_OPTS添加了另一个选项:-Dcom.sun.management.jmxremote.port = 1090 -Dcom.sun.management.jmxremote.authenticate = false -Djava.util.logging.manager = org.jboss.logmanager.LogManager但是我收到的例外是:
Could not load Logmanager "org.jboss.logmanager.LogManager"
java.lang.ClassNotFoundException: org.jboss.logmanager.LogManager
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
Run Code Online (Sandbox Code Playgroud) visualvm ×10
java ×7
performance ×3
jmx ×2
jvm ×2
profiling ×2
jboss7.x ×1
jmeter ×1
jvisualvm ×1
load-testing ×1
memory ×1
object ×1
optimization ×1
real-time ×1
scala ×1