LINUX.ORG.RU

Баг или фича?

 ,


0

1

jshell> long start = System.currentTimeMillis(); System.out.println(start); System.out.println(System.currentTimeMillis()-start)

1622496579940
94

// 50 ;

jshell> long start = System.currentTimeMillis(); System.out.println(start); ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;System.out.println(System.currentTimeMillis()-start)
start ==> 1622496766057
1622496766057
2119

// 100 ;

jshell> long start = System.currentTimeMillis(); System.out.println(start); ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;System.out.println(System.currentTimeMillis()-start)
start ==> 1622496927754
1622496927754
4144

40 миллисекунд уходит на «;» ? На что?

★★

Потому что это jshell и там может быть отключена оптимизация?

in_dance ()

отсюда https://stackoverflow.com/a/52529029:

import jdk.jshell.JShell;
import java.lang.StringBuilder;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Eval {
    public static void main(String[] args) throws IOException {
        try(JShell js = JShell.create(); BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {

            js.onSnippetEvent(snip -> {
                if (snip.status() == jdk.jshell.Snippet.Status.VALID) {
                    System.out.println("➜ " + snip.value());
                }
            });

            System.out.print("> ");
            for (String line = br.readLine(); line != null; line = br.readLine()) {
                js.eval(js.sourceCodeAnalysis().analyzeCompletion(line).source());
                System.out.print("> ");
            }
        }
    }
}
drsm ★★ ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.