Здравствуйте, Философ, Вы писали:
Ф>·>...В общем, неважно, мой поинт в том, что очень часто необходимость выравнивать код по вертикали говорит о том, что code smells и его можно улучшить. Ф>Давай начнём с того, что это не необходимость!? Адекватное форматирование кода просто улучшает читабельность, ВСЕГДА. Притом не важно, форматируешь ли ты код в соотвествии с корпоративным кодстайлом, либо даже вот такое, табличкой.
Вертикальное выравнивание создаёт свои проблемы. Так что адекватность конкретно вертикального выравнивания вещь очень сильно спорная.
Ф>Далее, здесь ты читаешь оптимизированный код.
Оппа. Т.е. в качестве док-ва ненужности автоформаттеров ты приводишь кусок оптимизированного кода... Ты не чувствуешь, что адекватность таких аргументов вещь тоже очень сильно спорная?
Ф>Обрати внимание на скип 2-х и 4-х байт в зависимости от размера операнда. Можно было бы написать руками инкремент ESP, и описать функцию POP(). Но в конечном машинном коде тоже был бы инкремент, а в данном месте это КРИТИЧНОЕ замедление: вместо семи операций с индексной адресацией в конечном коде было бы 7 операций с индексной адресацией + один лишний инкремент. Учитывая, что топовые современные камни едва тянут эмуляцию i486['*], такие замедления неприемлимы.
Честно говоря слабо верится, современные компиляторы творят чудеса, код, наверное, очень старый или заточен под какие-то старые/слабые компиляторы. Но проверять лень.
В любом случае, доля сильно оптимизированного кода (читабельность и поддержка которого имеет приоритет меньший, чем быстродействие и заточка под конкретную платформу) составляет доли процентов, для остального кода нет никаких причин не использовать кодстайл и автоформат.
Ф>Если не гнаться за каждой наносекундой, то можно было бы напихать регистры в список — кода было бы меньше, читалось бы замечательно. Однако эмулятор работал бы ещё медленнее.
Если ты гоняешься за наносекундами во всём своём коде, то у тебя скорее всего какие-то очень особые проекты.
Ф>Покажи потом что получилось.
Лень. В лучшем случае, если руки дойдут, я попробую позагонять фрагменыт кода в онлайн-компилятор какой-нибудь...
Ф>·>Какой необычный форматтер вы используете? Ф>Лично я ничего не использую. В этом проекте я вообще код в FAR'е пишу, потому что так и не осилил настроить ни одну из сред разрабоки. Честное слово, крыл благим матом все IDE, которые пытался приспособить для этого проекта. А так — кто во что горазд.
Причём тут тогда форматтеры?
Ф>Как запретить автоматическое форматирование в VS (не VS Code) не знаю.
Для C++ в смысле? Не знаю точно. Но как минимум можноформаттить выбранные куски, это точно.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай