NodeJS - Почему циклы for быстрее, если они заключены в функцию, а не в нее?

Вместо этого используйте FileFilter , так как он даст вам доступ к фактическому файлу, затем включите проверку для File#isFile

File testDirectory = new File("C://rootDir//");
File[] files = testDirectory.listFiles(new FileFilter() {
    @Override
    public boolean accept(File pathname) {
        String name = pathname.getName().toLowerCase();
        return name.endsWith(".xml") && pathname.isFile();
    }
});

1
задан Code Maniac 23 February 2019 в 17:40
поделиться

1 ответ

Если вы попытаетесь сначала запустить функцию, вы увидите, что цикл внутри функции теперь занимает больше времени.

Это связано с тем, как работает механизм V8, который компилирует JavaScript, а не только с кодом.

Под покровами сделано много оптимизации, чтобы сделать код javascript быстрее. Одним из них является оптимизирующий компилятор .

  • Поскольку JS-компилятор является компилятором «JUST IN TIME», он компилирует первый фрагмент кода, а затем переходит ко второму фрагменту кода.
  • Оптимизирующий компилятор находит аналогичные объявления переменных и т. Д. Из предыдущих результатов. Если он находит похожую информацию, он использует ее, а затем перекомпилирует.

Это изображение может помочь вам понять, как работает рекомпилятор: enter image description here

Изображение из видео: https: // www. youtube.com/watch?v=p-iiEDtpy6I&t

0
ответ дан P.B.UDAY 23 February 2019 в 17:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: