Я проходил через Красноречивый JavaScript (снова) и наткнулся на упражнение "Шахматная доска" главы 2. У меня была моя одна достойная версия решения, написанная в тот же день, когда я впервые ее читал, а другая версия решения была представлена в Веб-сайт Elequent Javascript. Я один из новичков, которые хотят быть суперэффективными программистами с одним вопросом в голове: "Могу ли я заставить его работать чуть быстрее или меньше?"
Итак, во время моего поиска в Интернете несколько месяцев назад я встретил вопрос о переполнении стека, в отношении цикла for
loop vs while
на основе производительности. Поскольку в этом потоке упоминалось for
, циклы медленнее, чем while
, а циклы с декрементирующим итератором быстрее, поэтому я переписал код для лучшей производительности.
Здесь новая версия с for
заменена на while
и условия, отредактированные для декрементизации:
console.time("looping");
var gridSize = 5000, str = '', i = gridSize, j;
while (i--) {
j = gridSize;
while (j--) {
if ((i - j) % 2 === 0)
str += " ";
else
str += "#";
}
str += "\n";
}
//console.log(str);
console.timeEnd("looping");