...或者必须抛出异常才能影响性能?
引用已接受的答案here .这是我想要实现的东西,如果以这种方式创建实例不会使事情变得非常慢的话。 (我每秒要创建数千个对象,粒子系统等。所以不,考虑到在 Java 中使用检查异常时存在的性能影响,这不是过早的优化。谢谢。)
最佳答案
您每秒可以创建数千万个对象。除非您在分析器中发现问题,否则我不会担心性能问题。我也会担心首先使代码清晰和正确,然后再考虑对其进行分析。
在您的代码中加入异常几乎没有任何影响(除了让您的代码稍微变大)抛出异常代价高昂,但您每秒可以抛出数千个异常,并且仍然不会严重影响您的应用程序性能。 (有问题的代码也不是什么好事)
public static void main(String... args) {
long start = System.nanoTime();
int runs = 10000000;
for (int i = 0; i < runs; i++) {
try {
throwsException();
} catch (Exception ignored) {
}
}
long time = System.nanoTime() - start;
System.out.printf("Took an average of %.3f micro-second per exception%n", time / runs / 1e3);
}
private static void throwsException() throws Exception {
throw new Exception("Ignored");
}
此测试每秒抛出超过一百万个新异常
Took an average of 0.744 micro-second per exception
关于Java:抛出已检查异常的*能力*会减慢速度吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14147530/