Java 在Runnable类之外的Runnable中声明使用的函数能否产生更高的性能?
我有一段代码需要在单独的线程上运行以提高性能。 Runnable要使用的所有方法都在Runnable类之外的示例:Java 在Runnable类之外的Runnable中声明使用的函数能否产生更高的性能?,java,performance,Java,Performance,我有一段代码需要在单独的线程上运行以提高性能。 Runnable要使用的所有方法都在Runnable类之外的示例: public class MyClass{ public void myMethod() { new Runnable(){ @Override public void run() { task1(); task2();
public class MyClass{
public void myMethod() {
new Runnable(){
@Override
public void run() {
task1();
task2();
task3();
}
}
}
public void task1(){
}
public void task2(){
}
public void task3(){
}
}
public class MyClass{
public void myMethod() {
new Runnable(){
@Override
public void run() {
task1();
task2();
task3();
}
public void task1(){
}
public void task2(){
}
public void task3(){
}
}
}
}
Runnable要使用的所有方法都在Runnable类内的示例:
public class MyClass{
public void myMethod() {
new Runnable(){
@Override
public void run() {
task1();
task2();
task3();
}
}
}
public void task1(){
}
public void task2(){
}
public void task3(){
}
}
public class MyClass{
public void myMethod() {
new Runnable(){
@Override
public void run() {
task1();
task2();
task3();
}
public void task1(){
}
public void task2(){
}
public void task3(){
}
}
}
}
我所处的情况是,性能的任何微小改进都会带来显著的改进。不,java会在调用任务的代码部分复制
任务的代码。不要猜测,使用基准测试。看看JavaJMH。@MutaiMwiti你很不可能从这样的微优化中得到任何好处。你需要关心这些方法中发生的事情。@LucaNicoletti你错了两倍。Java编译器什么都不做。JIT可以内联方法,但这不是您所描述的。@LucaNicoletti Java编译器是javac
。JIT
是一个不同的编译器。它们之间有很大的区别。不,java会复制任务
中你调用它们的代码部分。不要猜测,使用基准测试。看看JavaJMH。@MutaiMwiti你很不可能从这样的微优化中得到任何好处。你需要关心这些方法中发生的事情。@LucaNicoletti你错了两倍。Java编译器什么都不做。JIT可以内联方法,但这不是您所描述的。@LucaNicoletti Java编译器是javac
。JIT
是一个不同的编译器。他们之间有很大的区别。