Почему печать «B» значительно медленнее, чем печать «#»?

Если вы используете powershell, вы также можете просто сделать:

cmd /c "git diff > patch.diff"

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

2628
задан cнŝdk 6 April 2018 в 08:01
поделиться

1 ответ

Да преступник является определенно переходом на новую строку. Когда я протестировал Ваши две программы, NetBeans IDE 8.2 дал мне следующий результат.

  1. Первая Матрица: O и # = 6,03 секунд
  2. Вторая Матрица: O и B = 50,97 секунды

Рассмотрение Вашего кода тесно Вы использовали разрыв строки в конце первого цикла. Но Вы не использовали разрыва строки во втором цикле. Таким образом, Вы собираетесь распечатать слово с 1 000 символов во втором цикле. Это вызывает проблему перехода на новую строку. Если мы используем несловесный символ "" после B, он берет только [1 118] 5,35 секунд для компиляции программы. И Если мы используем разрыв строки во втором цикле после передачи 100 значений или 50 значений, это берет только [1 119] 8,56 секунд и 7,05 секунд соответственно.

Random r = new Random();
for (int i = 0; i < 1000; i++) {
        for (int j = 0; j < 1000; j++) {
            if(r.nextInt(4) == 0) {
                System.out.print("O");
            } else {
                System.out.print("B");
            }
            if(j%100==0){               //Adding a line break in second loop      
                System.out.println();
            }                    
        }
System.out.println("");                
}

Другой совет состоит в том что изменить настройки NetBeans IDE. В первую очередь, перейдите к инструментам NetBeans и нажмите Options. После того, как это нажимает Editor и переходит в [1 124] вкладка Formatting . Тогда выберите Где угодно в [1 125] Обертка Строки Опция. Потребуется времени почти на 6,24% меньше для компиляции программы.

NetBeans Editor Settings

1
ответ дан Abdul Alim Shakir 14 September 2019 в 15:59
поделиться
  • 1
    Не все рекурсивные блоки повторно используемы. На некоторых 8x51 компиляторы, локальные переменные хранятся в статических адресах. Стандартные программы, которые можно назвать рекурсивно, имеют " в use"пометить; если стандартная программа входит когда " в use" флаг установлен, он скопирует свои переменные в стек и очистит флаг. Прежде чем стандартная программа звонит, который мог рекурсивно вызвать, она устанавливает " in-use"пометить; как только тот вызов возвращается, если флаг не установлен, стандартная программа перезагружает свои переменные от стека. Стандартные программы кодировали этот путь рекурсия поддержки, но не повторно используемы. – supercat 15 May 2012 в 15:38
Другие вопросы по тегам:

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