小编Joh*_*röm的帖子

Lambda性能改进,Java 8 vs 11

我在lambda vs方法参考上运行了一些JMH测试,看起来类似于:

IntStream......reduce(Integer::max)
vs.
IntSream.......reduce((i1, i2) -> Integer.max(i1, i2))
Run Code Online (Sandbox Code Playgroud)

我注意到的是,与Java中的lambda相比,方法引用的执行速度大约是lambda的5倍。当我在Java 11中运行测试时,两种方法的执行时间都与Java中方法引用的执行速度差不多。 8.因此,Java 11中的lambda和方法引用之间在性能上没有重大区别。

我的问题是:从Java 8到11进行了哪些改进以提高性能?我正在使用OpenJDK。

编辑我的基准:

@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.MILLISECONDS)
@State(Scope.Benchmark)
@Fork(value = 1, jvmArgs = {"-XX:CompileThreshold=5000"})
@Warmup(iterations = 2)
public class FindMaxInt {

@Param({"10000", "1000000", "10000000"})
private int n;

private List<Integer> data;

@Setup
public void setup(){
    data = createData();
}

@Benchmark
public void streamWithMethodReference(final Blackhole blackhole){
    int max = data.stream().mapToInt(Integer::intValue).reduce(Integer.MIN_VALUE, Integer::max);
    blackhole.consume(max);
}

@Benchmark
public void streamWithLambda(final Blackhole blackhole){
    int max = data.stream().mapToInt(Integer::intValue).reduce(Integer.MIN_VALUE, (i1, i2) -> Integer.max(i1, i2));
    blackhole.consume(max);
}
Run Code Online (Sandbox Code Playgroud)

java performance lambda jvm java-stream

9
推荐指数
1
解决办法
1120
查看次数

使用CTCallCenter(Swift)检测iOS上的电话

我想尝试在我的应用中检测来电.我从头开始创建一个新的Swift项目,只是为了尝试一些代码.我唯一做的就是在每个新项目创建的ViewController中导入CoreTelephony,我还将viewDidLoad()更改为:

    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    let callCenter = CTCallCenter()
    NSLog("start")

    callCenter.callEventHandler = {[weak self] (call: CTCall) -> () in

        self?.label.text = call.callState
        NSLog("Call state")
        NSLog(call.callState)

    }
Run Code Online (Sandbox Code Playgroud)

我也尝试过没有[弱自我],因为我是新手,并且不确定它需要什么.

当我通过手机上的XCode运行我的新小应用程序时,收到呼叫,断开连接或其他任何事情都没有任何反应.什么都没有错误.为了使用CoreTelephony框架和CTCallCenter,我还需要做些什么吗?

关心约翰

phone-call ios core-telephony swift

7
推荐指数
2
解决办法
7650
查看次数

标签 统计

core-telephony ×1

ios ×1

java ×1

java-stream ×1

jvm ×1

lambda ×1

performance ×1

phone-call ×1

swift ×1