小编DoS*_*ver的帖子

MethodHandle性能

我写了一个小的基准测试性能java.lang.invoke.MethodHandle,java.lang.reflect.Method和方法的直接调用.

我读到的MethodHandle.invoke()表现几乎与直接通话相同.但我的测试结果显示另一个:MethodHandle调用比反射慢大约三倍.我的问题是什么?可能这是一些JIT优化的结果?

public class Main {
    public static final int COUNT = 100000000;
    static TestInstance test = new TestInstance();

    static void testInvokeDynamic() throws NoSuchMethodException, IllegalAccessException {
        int [] ar = new int[COUNT];

        MethodHandles.Lookup lookup = MethodHandles.lookup();
        MethodType mt = MethodType.methodType(int.class);

        MethodHandle handle = lookup.findStatic(TestInstance.class, "publicStaticMethod", mt) ;

        try {
            long start = System.currentTimeMillis();

            for (int i=0; i<COUNT; i++) {
                ar[i] = (int)handle.invokeExact();
            }

            long stop = System.currentTimeMillis();

            System.out.println(ar);

            System.out.println("InvokeDynamic time: " + …
Run Code Online (Sandbox Code Playgroud)

java performance methodhandle

18
推荐指数
2
解决办法
5688
查看次数

Scala,模式匹配,字符串

有没有办法匹配scala中的字符串,如下所示:

  def matcher(arg: String) : Expr = {
    case left :: '*' :: right => new Binary("*", left, right)
    case left :: '+' :: right => new Binary("+", left, right)
  }
Run Code Online (Sandbox Code Playgroud)

哪里左右都有String类型?

string scala pattern-matching

5
推荐指数
2
解决办法
531
查看次数

用另一个数组scala填充数组的最佳方法

我有两个字符数组,看起来像这样:

a,b,c,d,e,f,g

k,e,y

我需要将第一个数组中的每个元素与第二个元素相关联,如下所示:

A-> K,

B-> E,

C-> Y,

D-> K,

E-> E,

F-> Y,

G->ķ

但不知道如何在功能风格中实现这一点.任何帮助将不胜感激!

arrays functional-programming scala

0
推荐指数
1
解决办法
213
查看次数