LINUX.ORG.RU
ФорумTalks

Насколько форматирование кода и комментарии влияют на скорость его компиляции?

 , , , сырцы


1

2

Каждый пробел/таб/перенос строки - это как минимум одна примитивная операция, а то и несколько (тут всё зависит от компилятора и его реализации). Учитывая, что их в исходном коде, в особенности в хорошем, довольно много, тормоз довольно значителен. Комментарии тоже надо обойти - как минимум на каждый символ до его конца - условие и переход. При чём тут Linux? А при том, что в source-based дистрах компиляция тяжелого софта (ядро, либра, кеды) длится довольно долго. То есть профит от компрессии исходников очевиден. Почему же это не принято даже в ебилдах, хотя уже давно считается хорошим тоном для скриптовых языков (например, JS)? У сообщества же нету особого смысла вынуждать пользователей покупать более мощное железо. Компиляторы совершенствуются и вылизываются, а такие глобальные вещи не учитываются.

★☆

Последнее исправление: CYB3R (всего исправлений: 1)

Никак не вляют. Даже если ты подождешь на 10 секунд дольше при размере исходников в 2 килобайта - это тебя убьет? Я сказал бы, что скорее уж качество кода влияет, а не стиль. Но это всё забей.

coderage
()
Ответ на: комментарий от MiniRoboDancer

не путаю. В кеше далеко не все может оказаться, терять людей которым надоело ждать не каждый хочет. Да и вообще задачи разные.

qnikst ★★★★★
()
Ответ на: комментарий от MiniRoboDancer

Хороший код в комментариях почти не нуждается.

Не видел ни одного некомментированного кода, с которым было бы приятно работать. Кроме собственного, если не слишком давно писал.

Legioner ★★★★★
()
Ответ на: комментарий от nanoolinux

И зачем он нужен? Почему не сложить сразу на месте?

Кроме того одна функция никому не нужна. Покажи библиотеку тысяч на 20 строк хотя бы, в которой легко разобраться и использовать. Без комментариев.

Legioner ★★★★★
()
Ответ на: комментарий от qnikst

не путаю

Бедные среднестатистические гентушники... И ещё более бедные та половина, которая качает чаще раза в день...

MiniRoboDancer ★☆
() автор топика
Ответ на: комментарий от Legioner

Хороший код, понятный.

А ты представь такой килобайт на 900. В котором 99% занимают комментарии. Диагноз: его писали гуманитарии.

MiniRoboDancer ★☆
() автор топика
Ответ на: комментарий от nanoolinux

чё?

Те, кто хорошо владеют разговорным языком, с литературным часто испытывают проблемы. Особенно если он не родной. Обратное тоже справделиво, но реже.

MiniRoboDancer ★☆
() автор топика
Ответ на: комментарий от MiniRoboDancer

Да, читаю мало в последнее время. Последние пару лет ничего на английском не читал.

nanoolinux ★★★★
()
Ответ на: комментарий от Legioner

Покажи библиотеку

Ты уже сам опеределись, ладно? Тебе надо задокументированый код, или задокументированное апи для библиотеки? Это как бы разные вещи.

nanoolinux ★★★★
()
Последнее исправление: nanoolinux (всего исправлений: 1)

Каждый пробел/таб/перенос строки - это как минимум одна примитивная операция, а то и несколько (тут всё зависит от компилятора и его реализации). Учитывая, что их в исходном коде, в особенности в хорошем, довольно много, тормоз довольно значителен.

нет. Что-бы убедиться, возьми ядро, всё повырезай (программы есть в сети), и собери.

drBatty ★★
()
Ответ на: комментарий от MiniRoboDancer

А ебилды по сети не передаются, что ли?

только у 3.5 задротов с гентой передаются. Но и то в сжатом виде, с вырезанными пробелами.

drBatty ★★
()
Ответ на: комментарий от MiniRoboDancer

Вообще, в идеале для кроссплатформенной сборки нужен некий промежуточный байткод, более компактный, чем человекопонятный код

блин, разбанься в гугле, и скачай ПО для этого! Потом нам расскажешь о результатах.

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

ВНЕЗАПНО: _хороший_ программист намного больше читает кода, чем пишет.

drBatty ★★
()
Ответ на: комментарий от true_admin

дык никто не мешает писать без отступов

даже Гвидо?!

drBatty ★★
()
Ответ на: комментарий от nanoolinux

{ return a+b;}

это пример плохого кода. И плохого комментария, ибо в данном комментарии должно писать не всякую ***, а то, зачем автору упёрлость сувать a+b в отдельную функцию.

drBatty ★★
()
Ответ на: комментарий от drBatty

Это вообще не код. Это попытка довести до абсурда утверждение «чем больше коментариев, тем лучше».

Коментарии в коде не нужны. Достаточно адекватно называть сущности, которыми оперирует язык. А то, для чего была введена та или иная фича надо писать в коммитмесседж, а не в код.

nanoolinux ★★★★
()
Ответ на: комментарий от nanoolinux

Это вообще не код. Это попытка довести до абсурда утверждение «чем больше коментариев, тем лучше».

fail.

Коментарии в коде не нужны. Достаточно адекватно называть сущности, которыми оперирует язык.

Комментарии нужны, и твой пример это наглядно доказывает: я вот например не очень представляю, ЗАЧЕМ такая функция может понадобится. И это при том, что сам лично такое использовал, и не раз. Например часто это работает как затычка, и там нужен не просто комментарий, а TODO. Но возможно, это не затычка, а действительно какая-то любопытная фича. Но вот из кода я не пойму, какая.

А то, что вместо коммента можно засунуть ненужное говно, ты доказал.

А то, для чего была введена та или иная фича надо писать в коммитмесседж, а не в код.

в коммите надо писать ЧТО было введено, а вот в комментарии надо писать то, что будет тебе непонятно, если ты полезешь разбираться. Да, часто кажется, что и так всё понятно, но ты видимо никогда не правил свой код через месяц. Про чужой я вообще умолчу.

drBatty ★★
()
Ответ на: комментарий от drBatty

fail.

о_О очень голословно.

ЗАЧЕМ такая функция может понадобится

Насколько форматирование кода и комментарии влияют на скорость его компиляции? (комментарий)

Но вот из кода я не пойму, какая.

Значит это говнокод.

нужен не просто комментарий, а TODO

Туду и фиксми это не коментарии. В моём коде их овер9000 обычно.

никогда не правил свой код через месяц

на прошлой неделе успешно допилил програмку написаную мной же два года назад.

Про чужой я вообще умолчу.

голословнее некуда.

nanoolinux ★★★★
()
Ответ на: комментарий от nanoolinux

очень голословно.

попытка не удалась. Так лучше?

Насколько форматирование кода и комментарии влияют на скорость его компиляции? (комментарий)

Насколько форматирование кода и комментарии влияют на скорость его компиляции? (комментарий)

Но вот из кода я не пойму, какая.

Значит это говнокод.

а если нужен именно _такой_ говнокод?

Туду и фиксми это не коментарии. В моём коде их овер9000 обычно.

дык и пиши. А то тоже «правило 34».

на прошлой неделе успешно допилил програмку написаную мной же два года назад.

дык с твоими Over9000 туду и фиксми и комменты не нужны.

голословнее некуда.

что поделать? Встретишь код без комментов — поймёшь.

drBatty ★★
()
Ответ на: комментарий от drBatty

только у 3.5 задротов с гентой передаются

А остальные где берут, сами пишут или «Gentoo ZverCD купить в ближайшем киоске без регистрации»?

MiniRoboDancer ★☆
() автор топика
Ответ на: комментарий от true_admin

Я вот не понимаю, почему отступы принято табами делать. При более-менее высокой глубине вложенности код разъезжается на весь моник, а то и шире. Для чего оно надо? Для повышения читабельности? Разве приятно читать код, который ездиет туда-сюда? Почему нельзя вместо таба один пробел сделать?

//Можно, конечно, табуляцию в один-два пробела выставить, но это костыль. Везде по дефолту таб в 8 пробелов, иногда в 4.

MiniRoboDancer ★☆
() автор топика
Ответ на: комментарий от drBatty

и скачай ПО для этого!

Не нашёл я ничего подобного. Может, плохо искал.

_хороший_ программист

Сырцы, внезапно, не только для программистов нужны. Под этими вашими Линупсами из них и рядовые пользователи любят софт собирать (а иногда у них и выбора нет, доступен только тарболл).

MiniRoboDancer ★☆
() автор топика
Ответ на: комментарий от nanoolinux
int do_sum(int a, int b) {
  return a+b;
}

Тут скорее не с комментариями проблемы :)

KennyMinigun ★★★★★
()
Ответ на: комментарий от nanoolinux

Ну удачи, чо.

Мсье не знаком со словом «оптимизация»? Иногда для неё приходится прибегать к не совсем интуитивно понятным вещам. Хардкорщик ещё, допустим, поймёт, если сам такое использовал, а вот не особо профессиональный может при виде такого кода выпасть в осадок.

MiniRoboDancer ★☆
() автор топика
Ответ на: комментарий от nanoolinux

Это попытка довести до абсурда утверждение «чем больше коментариев, тем лучше».

Утверждение итак абсурдно. Тут важно качество, а не количество.

KennyMinigun ★★★★★
()

Как человек, писавший в школе интерпретатор, могу сказать, что сперва текст парсится, а потом уже делается всё остальное. И это остальное гораздо дольше

cvs-255 ★★★★★
()
Ответ на: комментарий от Manhunt

Комментариев в хорошем коде очень мало.

но зато тогда выходит длинный отдельный файл с описанием алгоритма.

cvs-255 ★★★★★
()
Ответ на: комментарий от MiniRoboDancer

Если алгоритм нетривиальный (какой нибудь хитрый обход графа), то без комментариев совсем грустно..

cvs-255 ★★★★★
()
Ответ на: комментарий от nanoolinux

Значит это говнокод.

обходим граф точек в пространстве, и в одних местах поворачиваем налево по отношению к некоторому направлению, а в неких местах направо. А рассуждения, обосновывающие поворот, были расписаны на бумажке и неочевидны. Ты считаешь, что если я эти обоснования просто выкину, вместо того, чтобы написать комментарий, то я поступлю хорошо?

cvs-255 ★★★★★
()
Ответ на: комментарий от cvs-255

но зато тогда выходит длинный отдельный файл с описанием алгоритма.

<prepod_mode>Перед написанием кода нужно нарисовать схему алгоритма и приложить её к документации ПП.</prepod_mode>

MiniRoboDancer ★☆
() автор топика
Ответ на: комментарий от cvs-255

какой нибудь хитрый обход графа

О хитром и неочевидном коде я писал выше. Но много его обычно не бывает. Лепить огромные комментарии по всему коду на случай, если его будет читать полный дурак, который не может напрячь мозг и подумать, что делает этот код, нет смысла.

MiniRoboDancer ★☆
() автор топика
Ответ на: комментарий от MiniRoboDancer

Почему нельзя вместо таба один пробел сделать?

так и делают, два-четыре пробела. Табами питонокод не форматируют, это антипаттерн.

true_admin ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.