出于好奇,我测量了静态块和静态方法初始化器之间的性能.首先,我在两个独立的java类中实现了上述方法,如下所示:
第一:
class Dummy {
static java.util.List<Integer> lista = new java.util.ArrayList<Integer>();
static {
for(int i=0; i < 1000000; ++i) {
lista.add(new Integer(i));
}
}
}
public class First {
public static void main(String[] args) {
long st = System.currentTimeMillis();
Dummy d = new Dummy();
long end = System.currentTimeMillis() - st;
System.out.println(end);
}
}
Run Code Online (Sandbox Code Playgroud)
第二:
class Muddy {
static java.util.List<Integer> lista = new java.util.ArrayList<Integer>();
public static void initList() {
for(int i=0; i < 1000000; ++i) {
lista.add(new Integer(i));
}
}
} …Run Code Online (Sandbox Code Playgroud) 我用Selenium Webdriver在C#上编写了测试.现在我需要测试应用程序的性能.我使用FiddlerCore,但它没有页面渲染时间或动态内容的时间(ajax,js等).
有人知道像FiddlerCore这样的库,但是有更多的功能,比如dynatrace Ajax版或者是C#的browsermob-proxy吗?
编辑1:我不需要任何解决方案.我想仅使用WebDriver进行测试.
我正在对一个asp.net Web应用程序进行性能分析,每秒负载20个用户.20个用户基本上削弱了应用程序,并没有加载它.
我正在使用RedGate性能分析器,我不知道该怎么做.
12%的时间花在我的代码上(我可以深入研究和改进),但88%的时间花在了我的代码上
System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr rootedObjectsPointer,IntPtr nativeRequestContext,IntPtr moduleData,int flags)
..我不知道这是什么(好吧,我很确定它与IIS7有关...),并且解决了一个无法每秒处理20个用户的网站,占88%的所花的时间,这似乎是一个好的开始.
任何人的想法?
我已经看到了这个问题,它有点类似.我想知道它是否真的是影响我的应用程序性能的一个重要因素.这是我的情景.
我有这个Java webapp,它可以从电子表格上传数千个数据,每个行从上到下读取.我正在使用System.out.println()在服务器端显示应用程序当前正在读取的行.
- 我知道创建一个日志文件.实际上,我正在创建一个日志文件,同时在服务器的提示符下显示日志.
有没有其他方法在提示符上打印当前数据?
我最近开始阅读基准测试并为Android编写它们(用Java编写).我知道像热身,垃圾收集器和编译器优化这样的问题,但不知道我面临的问题是否可能是由任何问题引起的.
在我的基准测试应用程序中,我创建了一个包含10,000个浮点变量的数组,并使用随机值对其进 运行基准代码时:
private void runMinorBenchmarkFloat (float[] array) {
float sum = 0;
long startTime;
long endTime;
/* Fast warm-up */
startTime = System.nanoTime();
for(int i=0; i<SMALL_LOOP_ITERATION_COUNT; i++)
for(int j=0; j<TAB_SIZE; j++)
sum += array[j];
endTime = System.nanoTime() - startTime;
postMessage("Warm-up for FLOAT finished in: " + endTime/1000000 + "ms.\n");
/* Main benchmark loop */
startTime = System.nanoTime();
for(int i=0; i<BIG_LOOP_ITERATION_COUNT; i++)
{
sum = 0;
for(int j=0; j<TAB_SIZE; j++)
sum += array[j];
}
endTime = System.nanoTime() - startTime;
postMessage("Benchmark …Run Code Online (Sandbox Code Playgroud) 我的目标是使用工具测试(AndroidJUnitRunner)为Android CPU密集型代码编写自动性能测试.
我很惊讶地发现测试结果不可靠,模拟CPU密集型代码,我想测试一下,我写了下面的循环
for(int i=0;i<1000000;i++){
Math.pow(2,i);
}
Run Code Online (Sandbox Code Playgroud)
该代码在Android应用程序中作为工具测试进行了测试
我得到的结果如下:
仪器测试显示〜230ms完成循环,而同一设备(G5)上的相同代码耗时约600ms
我将非常感谢为什么AndroidJUnitRunner上相同代码的执行时间比真实设备少三倍,而它们最终都在同一台设备上执行
注意:这与性能问题无关.我只观察到无法解释/理解的性能差异.
在对一些针对Java 9的新开发的代码进行基准测试时,我发现了一些奇怪的东西.HashMap带有5个密钥的(非常)简单基准测试表明,Java 9比Java 8慢得多.这可以解释一下,还是我的(基准)代码完全错误?
码:
@Fork(
jvmArgsAppend = {"-Xmx512M", "-disablesystemassertions"}
)
public class JsonBenchmark {
@State(Scope.Thread)
public static class Data {
final static Locale RUSSIAN = new Locale("ru");
final static Locale DUTCH = new Locale("nl");
final Map<Locale, String> hashmap = new HashMap<>();
public Data() {
hashmap.put(Locale.ENGLISH, "Flat flashing adjustable for flat angled roof with swivel");
hashmap.put(Locale.FRENCH, "Solin pour toit plat inclinée");
hashmap.put(Locale.GERMAN, "Flachdachkragen Flach Schrägdach");
hashmap.put(DUTCH, "Plakplaat vlak/hellend dak inclusief glijschaal");
hashmap.put(RUSSIAN, "?????? ????? ??????? …Run Code Online (Sandbox Code Playgroud) 我们已经为小型服务开发了一个 PHP 网站。在生产之前,我们必须从服务器端(即 Apache)和客户端进行性能和负载测试。
从客户端,我想知道整体和每个对象等的平均响应时间是多少。对于后端(apache web-server),我想知道它在性能开始之前可以处理多少请求(客户端)降级。
为此,是否有像我们在 Linux 平台上那样的开源工具。或者是否有任何网站(免费)可以进行所有这些测试。我们更关心负载测试,我们希望同时向我们的网站请求 1000 个用户(例如),并希望检查客户端和服务器端的不同性能指标。
我想加载/性能测试使用angular 6+作为前端框架的Web应用程序。该应用程序很大,并使用了许多向导/模态等。我想做一些“真正的” e2e前端测试(不仅测试API调用,还测试js渲染等)。
目前有什么最新的方法和工具来测试这样的应用程序?
为了明确起见,我想进行一些真正的端到端性能测试,例如以无头模式打开浏览器,打开向导并获取向导出现之前所花费的时间。就像使用硒进行前端测试一样。我也可以用硒来做,但我不知道它是否合适。
testing performance load-testing performance-testing angular
正如此答案中所建议的,我在运行性能测试时使用以下标志。
-XX:+PrintCompilation
-verbose:gc
Run Code Online (Sandbox Code Playgroud)
这对于调试计时阶段发生的 JVM 活动非常有用,但是当我只是计算统计信息并打印有关刚刚运行的基准测试的输出时,输出就没那么有用了。
有没有办法在运行时禁用这些标志中的一个或两个,以便我可以在计时阶段后关闭它们?
java ×4
performance ×4
load-testing ×3
android ×2
c# ×2
.net ×1
angular ×1
apache ×1
asp.net ×1
fiddler ×1
iis-7 ×1
iis-7.5 ×1
java-9 ×1
jmh ×1
jvm ×1
jvm-hotspot ×1
outputstream ×1
php ×1
testing ×1