LINUX.ORG.RU
ФорумTalks

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

 , , , сырцы


1

2

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

★☆

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

ну вырежи ты комменты и отступы, ну совершит процессор на 2000kkk тактов меньше, ну скомпилется мой хромиум не за 6 часов, как обычно а за 5ч 58мин, мне то что от этого? А вот читабельность код потеряет. Не то нынче время и не те технологии, да бы экономить на спичках.

comp00 ★★★★
()
Последнее исправление: comp00 (всего исправлений: 2)
Ответ на: комментарий от MiniRoboDancer

Везде по дефолту таб в 8 пробелов, иногда в 4.

Везде по дефолту таб это таб, и его абсолютная длина — 1 символ. Для этого и делают именно табы, что бы по 100 раз не тыкать пробел и что бы отступ занимал 1 единицу инф-ции, а не 4ре или 8

comp00 ★★★★
()
Последнее исправление: comp00 (всего исправлений: 1)
Ответ на: комментарий от true_admin

Табами питонокод

Так то в питоне. Я про языки с C-like синтаксисом говорю.

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

Не то нынче время и не те технологии

ДСовцы зажрались. Многие ещё до сих пор образы по GPRS выкачивают, и ещё лет пять качать будут, пока до них 3G, оптоволокно или хотя бы ADSL доберётся. Впрочем, и с Гентой и Арчем они не связываются, ну кроме особо клинических случаев.

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

Но много его обычно не бывает

иногда из него состоит вся программа. Какой-нибудь расчет звездчатых форм многогранников по собственному алгоритму - тому пример

cvs-255 ★★★★★
()
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от comp00

А знаешь сколько детей в Африке голодает?

Людей с плохим интернетом в процентном соотношении, имхо, больше, чем голодающих детей в Африке.

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

Ну это специфическая маргинальщина, для серьёзных задач (иногда несерьёзных, типа заставок), среди широкоиспользуемого софта такое почти не встречается.

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

для серьёзных задач

вполне себе серьезная задача демонстрации школьникам физмат школы звездчатых форм

cvs-255 ★★★★★
()
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от Legioner

Чем больше комментариев, тем лучше код.

Вот так бывает: падает тебе на поддержку проект, тебе надо в нём разобраться ASAP, а ты листаешь его, листаешь, а там одни каменты и ты такой кулаком об стол: «БЛДЖАД! НУ ГДЕ УЖЕ ТВОЮ МАТЬ КОД?!». Этим всякие doxygen'утые проекты страдают особенно.

DELIRIUM ☆☆☆☆☆
()

у вас пипхол оптимизация не в том месте

чиста «а где же то »?

Go- создатели например заменили текстовые #include на компиляцию модуля при первом его упоминании(точнее использовании его сервиса)

в отличии от С/С++ где парсинг идёт каждый раз при вставке(ибо если прекомпилированы то нужно гарантировать , что мы не используем инклюды в необычном(меняющем семантику имён внутри) окружении)

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

почему вспомнил Go?

в беллабовском предшественике- а именно и внутренем С конца 80-начала90 целенаправленно была реаргонизована вся стандартная библиотека для «уплощение»(сведение вложености hников к «0») - для для уменьшения компиляции дало эффект в разы больший чем хранение сырцов в ничетаемом для невооружённого человеческого глаза виде

qulinxao ★★☆
()

вообще никак не повлияет. отступ должен быть - значит затратный кол функции будет полюбому. скорость выкашивания лишних пробельных символов по циклу будет адовая. выкашивание всех лишних пробелов из либреофиса vs без выкашивания будет 0.000001 сек. нетуда батя вы лыжи навострили

punya ★★
()
Последнее исправление: punya (всего исправлений: 1)
Ответ на: комментарий от cvs-255

как человек ....

зависит от числа проходов и организации вообще интерпретатора

интерпретатор на «сопрограммах» вообще «жадный» т.е как только может сразу исполняет.

т.е если уходить в теорию ведёт себя подобно LL-языку(тем и замечательно , что теоритические именна ) как только набрали понятную фразу - сразу её исполнили.

qulinxao ★★☆
()
Последнее исправление: qulinxao (всего исправлений: 1)
Ответ на: комментарий от cvs-255

и не только.

во временна «оныё»

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

это критично когда ввод с медленых устройств.

т.е речь про большее разнообразие.

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

Особенно прикольно, когда эти пачки комментариев все в разных кодировках, ага.

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

людей вообще без интернета(включая сюда «голодающих») .... больше.

ты так не шути.

телефонами(мобилами) вроде ща всё ещё меньше 2ух милиардов владеют не?

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

если некоторые имена будут легко отображаемые урли по которым вся дока такое решение будет вам опровержением?

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

А бывает, когда падает тебе на поддержку проект, а там одни код. На 1200 строк. В одном методе. Без комментариев.

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

В смысле - дока хранится не в исходных файлах? Дурацкое решение, но лучше, чем ничего.

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

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

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

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

-rwxr--r-- 1 neko neko 492332032 May 27 02:04 facepalm.tar.gz

спасибо капитан.

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

Есть несколько систем. Ебилды - сырцы, поэтому пойдут на все независимо от архитектуры. На фига качать на каждую отдельно, если можно скачать на одну, а на остальные перекинуть?

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

А где ты в простейших звонилках интернет нашёл? Они как минимум четверть всех аппаратов до сих пор занимают. Да и там, где есть GPRS/EDGE/3G, далеко не всегда есть вафля, а за мобильный интернет ОПСоСы почти везде загибают слишком высокие для нищебродов цены. И в конце концов, до многих людей, в особенности старшего поколения, плохо доходит, что с телефона, оказывается, ещё в интернете сидеть можно.

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

а). перекидывать по libastal будешь?

б). кто сказал, что хосты в одной сети?

данное утверждение верно только для систем в виртуалках/контейнерах.

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

ох жеж.

ты это всё таки вспомни про пирамиду маслоу и прекрати

считать более значимым доступность высокоскоростного интернета в сравнении с наличием еды.

qulinxao ★★☆
()

Ман байткод. А вообще, берись за ассемблер — вовсе затраты на трансляцию мизерны.

tides
()
Последнее исправление: tides (всего исправлений: 2)
Ответ на: комментарий от qulinxao

В современном обществе (а оно и до африканских стран, по крайней мере, до крупных поселений, добралось) концепция пирамиды Маслоу постепенно перестаёт работать. Ибо если у тебя нет хотя бы мобильного телефона, любая более-менее нормальная работа превращается в нервотрёпку из-за отстутствия удалённой связи с работодателем; те, кто его имеет, получают преимущество как минимум во времени. Вспомни анекдот про человека, которого не взяли в Microsoft, потому что у него не было электронной почты.

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

Это почему ещё бред? Ты хочешь сказать, что скорость обмена данными с флешкой, делённая на два, меньше, чем средняя скорость Интернет-соединения?

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

у тебя какой-то однобокий взгляд на мир.. попробуй подумать почему формула «скорость обмена между флешкой/2 (сравнить с) средня скорость интернет соединения» неверна.

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

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

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

плохо. Ищи дальше. У меня была такая программа лет 15 назад. Для C.

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

если рядовой юзер (не программист) собирает софт из сырцов, то он задрот, которому нефиг делать (see also rule 34).

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

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

покажи мне человека, который спорил с этим утверждением.

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

ДСовцы зажрались. Многие ещё до сих пор образы по GPRS выкачивают

это ты упоролся. Ты когда-нить выкачивал НЕ сжатый код? А вот теперь попробуй сжать код с 8ю пробелами отступов, и вообще БЕЗ отступов. И удивись.

ЗЫЖ если не понял, сжатый код с отступами практически равен по весу коду без отступов. Эти отступы НЕ несут информации, и потому архиватор их выкидывает.

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

попробуй подумать почему формула «скорость обмена между флешкой/2 (сравнить с) средня скорость интернет соединения» неверна

То, что в ДС/ДС2 уже давным-давно везде оптоволокно, не значит, что оно везде так.

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

то он задрот, которому нефиг делать

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

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

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

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

Т.е. ты хочешь сказать, что source-based дистры - только для задротов и для серьёзных вещей их не используют?

в продакшене не используют практически. Если и используют, то это скорее такой самодельный бинарный дистр, но на основе скажем gentoo.

А софт, которого ещё нет для package_manager_name, а при сборке пакета с помощью специальных тулз вываливаются ошибки, автоматически становится ненужным?

ну если его не программист собирает, а сами пользователи — да, не нужен. Иначе почему его не собрали майнтейнеры или автор?

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

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

вот откуда ты такой умный-то? С чего ты взял, что в комментах текст более рандомный? IRL всё с точностью до наоборот. Комменты пишутся на естественном языке, и даже в олбанском правила куда как строже, чем в именах переменных. Кто мешает обзывать переменные «hjfdjkbvh»? ИЧСХ — называют.

Да и не важно всё это, на самом деле. Нет никакой разницы, сжатый текст, или не сжатый, или с отступами. Займись чем-нить полезным.

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

Иначе почему его не собрали майнтейнеры или автор?

Мейнтейнеры не собрали, потому что сырой/конфликтует с другими пакетами. Автор не собрал, потому что не осилил/не пользуется этим ПМ/вообще не знает о его существовании.

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

И обоснуй своё видение утопического «глобального быстрого интернета».

его нет, но это никак не относится к обсуждаемой проблеме.

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

ты упоролся.

мой поинт , что число людей в мире вообще без интернета до сих пор больше чем людей с интернетом.

и считать проблему «голодающих детей в африке» менее значимым чем проблемы некоторых сидящих на gprs(evdo) - это даже не цинизм .

ибо если «принимающим решения» пофиг на «голодающих детей в африке» но с чего им не пофиг на нищебродов на gprs?

а если им равнопополамно то считать твои личные страдания на gprs значимее «ну ты понял в африке» это блин нужно в палату мер и весов .

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

чем в именах переменных

А код состоит только из имён переменных?

Кто мешает обзывать переменные «hjfdjkbvh»?

Это говнокод, которому без комментариев вообще не обойтись.

Да и не важно всё это, на самом деле.

Всё тлен...

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