Сотрудник МЦСТ отвечает на насущные вопросы https://geektimes.ru/post/271974/
Линукс тут при том что в статье рассказывают и про ОС Эльбрус и про планы вовсе слиться с пакетной базой дебиан.
Так же в статье есть и про двоичный транслятор, как он работает и немного устных рекомендаций про написание кода под архитектуры с широким коммандным словом:
Избавляться от лишних зависимостей между итерациями цикла и между отдельными шагами одной итерации, — тогда у компилятора появляется шанс ещё и утрамбовать широкие команды, а также заменить скалярные вычисления на векторные. (Этот совет справедлив в любой ситуации, но в случае с циклами зачастую вмешивается ограничение на количество анализируемых итераций.)
И есть вот такой вот пример: До / После
В сваязи с чем у меня тогда есть вопрос - если у меня на каждой итерации цыкла парсится текст, то есть строка разбивается на несколько частей и обрабатывается, например:
var textMatches = {
lines: [],
words: [],
chars: {}
}
for (var i = 0, lm = someText.match(/.+/g); i < lm.length; i++) {
textMatches.lines.push(lm[i])
for (var j = 0, wm = lm[i].match(/[A-zА-я]+/g); j < wm.length; j++) {
textMatches.words.push(wm[j]);
for (var y = 0, cm = wm[j]; y < cm.length; y++) {
if (cm[y] in textMatches.chars) {
textMatches.chars[cm[y]] += 1;
} else {
textMatches.chars[cm[y]] = 1;
}
}
}
}
Как это вот оптимизовать что бы то же в один цикл уместить? Просто частенько такое вот писать приходится, а это даже наверно для штеуда дико не оптимально с его то векторными инструкциями которые к каждому поколению процессоров новые (зачем то) приделывают.