LINUX.ORG.RU

Есть ли сейчас в смысл заниматься тонкой оптимизацией сборки программ?

 , , ,


0

1

Раньше, когда еще не было столько виртулизации в ПО, различного рода абстракций и наслоений в архитектуре, а программисты пытались как можно лучше адаптировать код к производительности, такой подход, как оптимизация CFLAGS флагов сборки под конкретный процессор оправдывал себя и задавало соотвествующий выхлоп. А сейчас?! Хороших программистов стало крайне мало, количество различного рода микроархитектур стремится к бесконечности, а на задействующие ресурсы, при использование ПО на стороне пользователя - плевать, как снежный ком нарастает зависимость пакетов при сборки и тд. Стоит ли вообще этим заниматься?!

Перемещено hobbit из general


Ответ на: комментарий от LamerOk

И ты можешь привести дампы падений, произошедших по причине багов в коде ОС, а не драйверов / железа, м-м-м?

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

Да, ресурсов NT жрала заметно больше. Но давай посмотрим правде в глаза: на тот момент с технической стороны это была самая развитая многопользовательская ОС в индустрии, ну может быть вторая после солярки. 95/98 — это скорее костыли поверх доса.

byko3y ★★★★
()

SSE и AVR gcc за тебя не вставит. Да и openmp тоже!

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

anonymous
()
Ответ на: комментарий от byko3y

Там «защищенный режим» защищает только от порядочных программ

Да. К 9x-ой были требования совместимости с программами и драйверами под DOS. Они им соответствуют? Соответствуют. В чём претензии-то?

95/98 — это скорее костыли поверх доса.

«Костыли» с публичным апи для драйверов видео-, сетевых и аудио-карт? С публичным стабильным апи для прикладных программ для работы с графическими виджетами, мультмимедия и графическим 2D/3D ускорением? Эх-х-х, лунуксу бы таких костылей…

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

SSE и AVX за тебя LLVM вставит. Не может быть что бы GCC этого не делал. А AVR то тут при чём?

anonymous-angler ★☆
()

Оптимизация - это не только CFLAGS, но и выбор подходящих структур данных и алгоритмов для работы с ними. Пример: игры, которые сейчас уже по 4Гб видеопамяти кушают и под 100 Гб на диске занимают только потому, что кто-то не удосужился прочитать про сжатие текстур и прочее.

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

падения, плохая ФС, отсутвие безопасности, системные вызовы чтобы полностью спрятать приложение, плохая многозадачность.

MS DOS.

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

Он может даже не уметь код писать

Он должен уметь писать код, иначе как он поймет, что его не обманывают?

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

Ага, NT4 без PnP по сравнению с Win95

И много пользы pnp в ш95 принесла лично вам? Насколько меньше дискет/сд дисков пришлось скормить при установке?

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

Ага, NT4 без PnP по сравнению с Win95

Ага, и сильно вам это пнп в 95-ой помогало? Сикоко устройств без дровов запустило? Разница между nt4 и 95 была только в том, что у одной булочки с семечками устройствам дрова в одном месте скармливаем, а у другой булочки без семечек в разных местах подпихиваем.

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

Вы про RegisterServiceProcess ? Ну во-первых не ей единой 1-ое апреля отмечали. А во-вторых в NT процесс тоже можно было спрятать из списка процессов. Да, кода больше, но и не простыня на 100500 строк.

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

Windows 98?
И ты можешь привести дампы падений, произошедших по причине багов в коде ОС, а не драйверов / железа, м-м-м?

Вах, Зачем падения? Зачем драйвера, шмайвера? Ну вызови апишную функцию с чутка не теми параметрами и наслаждайся синим экраном.

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

1. Что за бред я прочитал?
2. Где конкретные строчки кода, к которому есть претензии?

Что за бред прочитал сейчас я? Какие строчки кода, весь код 98-ой шинды? По пунктам:
1. отсутвие безопасности - там ничего намекающего на неё нет.
2. системные вызовы чтобы полностью спрятать приложение - RegisterServiceProcess
3. плохая многозадачность. - while(1) { fscanf... fprintf...

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

Ну вызови апишную функцию с чутка не теми параметрами

Приведи.

Какие строчки кода

Те, к которым претензии.

По пунктам:

Что за бред я сейчас прочитал? Где претензии к коду?

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

чтобы полностью спрятать приложение - RegisterServiceProcess

Но этот вызов не «прячет» приложение. Ты же матчасти в упор не знаешь. Куда ты лезешь-то?

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

сильно вам это пнп в 95-ой помогало? Сикоко устройств без дровов запустило?

Норкоман, иди в кликинку, прокапайся.

PnP не про отсутствие драйверов. PnP - про самонастройку ресурсов устройств, разрешение конфликтов между ними и их программный автодетект. И да, помогло - из необходимых для ручного тыканья перемычек остался только пин мастер/слейв на IDE-диске, а ручной ввод irq и портов ввода-вывода остался только в DOS-приложениях.

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

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

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

На мой взгляд, программа, разрабатываемая для десктопа, по-хорошему обязана отзывчиво работать на Raspberry Pi 3.

Вы забыли маленький нюанс, ОС под которой будет выполняться эта программа тоже должна отзывчиво работать на RPI и если речь про гуй, гуй также. И да, речь не про софт ворочающий тонны данных.

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

Ой, не знаю как современные ОС живут без этой говно функции и даже в Винде ее выпилили

Её не выпиливали. Её не запилили в NT линейку :)

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

Но давай посмотрим правде в глаза: на тот момент с технической стороны это была самая развитая многопользовательская ОС в индустрии

Нет. Полумух был лучше.

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

95/98 — это скорее костыли поверх доса.

«Костыли» с публичным апи для драйверов видео-, сетевых и аудио-карт? С публичным стабильным апи для прикладных программ для работы с графическими виджетами, мультмимедия и графическим 2D/3D ускорением?

- Папа, покажи мне многозадачность шиндоус95
- Погоди сынок, сейчас дискетка отформатируется.

Да, да. Именно такой «многозадачной» была оболочка. А вы продолжайте читать рекламные буклеты 26-ти летней давности и верить им.

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

Первая копия «послания богов» жрала раза в два больше ресурсов и тормозила на играх до двух раз в сравнении с 95/98. Вторая копия умудрялась тормозить и без игр на обычном GDI-интерфейсе.

в 98 ошибки в разрабатываемом софте (в МС студио 2.0 если чо) приводили к зависанию оси с завидной регулярностью.

в NT 3.51 только падал процесс, но всё остальное продолжало работать нормально. В то время это воспринималось как откровение, оказывается ось может и не виснуть по каждому пустяку.

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

чтобы полностью спрятать приложение - RegisterServiceProcess

Но этот вызов не «прячет» приложение. Ты же матчасти в упор не знаешь. Куда ты лезешь-то?

Тааааа... А мужики-то не в курсе. Тоже мне, знаток «мат» её «части» выискался.
Что бы два раза не вставать. Я не повторял название этой функции каждый день на протяжении 25-ти лет дабы не забыть, взято из рабочей софтинки.

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

И да, помогло - из необходимых для ручного тыканья перемычек остался только пин мастер/слейв на IDE-диске, а ручной ввод irq и портов ввода-вывода остался только в DOS-приложениях.

Ну да. Вы только забыли упомянуть про подбор слотов для устройств на мамке, что бы irq никем другим занято не было. А то была мода, расшарить слот например вместе с компортом или со вторым каналом ide. И вот бывало играешь в тетрис, что бы и платы разместить и irq всем хватило. Иногда в бивисе можно было гвоздями прибить, тогда проще. А иногда и нет.

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

Я не повторял название этой функции

Короче, свои фантазии подтвердить тебе нечем?

Так и запишем - любитель 4.2

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

в 98 ошибки в разрабатываемом софте (в МС студио 2.0 если чо) приводили к зависанию оси с завидной регулярностью.

В 9х ошибки программиста, если чо, приводили к «заморозке» интерфейса. Которое 1) не «зависание оси» и 2) вина исключительно программиста.

9х не безбажные идеальные софтины, но 99% проблем у программистов что тогда, что сейчас - от собственной тупизны, невнимательности и неспособности осилить матчасть. Которую недоучки-криворучки любят свалить на кого-нибудь другого - на компилятор, на библиотеки, на ОС, на железо в конце концов.

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

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

Так и запишем - любитель 4.2

Так и запишем, полностью соответствует своему нику.

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

её же родимую даже со ссылкой привели

К сокрытию процессов-то она какое отношение имеет? Или ты из тех малограмотных, кто думает, что 1) task manager показывает все процессы в системе, и 2) если там процесса нет, то нет нигде больше?

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

В 9х ошибки программиста, если чо, приводили к «заморозке» интерфейса. Которое 1) не «зависание оси» и

Кхе-кхе... аж поперхнулся. Ну если остановку всех процессов считать «заморозкой интерфейса»... то наверное вы правы.

2) вина исключительно программиста.

Вот как вы верно подметили, вот прямо в глаз. Погромист ваяет юзерспэйсную софтинку и она такая хренак, ставит раком всю систему. Безусловно, вина полностью на погромисте. Никто же не обещал, что из юзерспейса низя поставить раком систему. Не, а что? Вам напомнить что значит буковки O и S в названии DOS ? Operating System. Там зависало? Зависало. У нас тоже есть букавки O и S, мы тоже Operating System, так что же мы по вашему, хуже DOS ?

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

Вы через три поста читаете что ли? Устало. Она имеет отношение только к сокрытию процесса в списке задач в линейке 9х.

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

остановку всех процессов считать «заморозкой интерфейса».

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

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

Именно. И мало того, что не обещали, ещё и русско-английским языком предупреждали о таких последствиях. В 3.х вообще все программы сидели в одном адресном пространстве. И ничего - работали, потому что программисты были грамотными. Первая цива и колонизация под венду, сделанная еще в 91-ом, может даже в FullHD: https://www.youtube.com/watch?v=eVfpkzb_C3g

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

Она имеет отношение только к сокрытию процесса в списке задач в линейке 9х.

Нет, не имеет. Эта функция не скрывает процесс в списке задач операционной системы, а скрывает имя процесса конкретно в вендовом «диспетчере задач». Но, чтобы понимать разницу, нужно быть мало-мальски образованным человеком в IT.

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

И ничего - работали, потому что

1. ctrl-s нажималось на уровне инстинктов
2. перезагружалось быстро.

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

Эта функция не скрывает процесс в списке задач операционной системы

Что такое «список задач операционной системы» windows 95 ?

а скрывает имя процесса конкретно в вендовом «диспетчере задач»

Дядя ты за хлебом? Тебе об этом две страницы пишут.

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

Что такое «список задач операционной системы» windows 95 ?

В рамках 9х - перечень виртуальных адресных пространств. Которые ты и твои коллеги по палате в силу своей астрономической безграмотности и не меньшего скудоумия путаете с содержимом диалогового окна «task list», вызываемого по ctrl-alt-del типа такого.

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

В 3.х вообще все программы сидели в одном адресном пространстве

А Murray Sargen, которого наняли специально, чтобы сделать в винде 3.0 процессы изолированными, в отличии от 2.0, об этом знает?

Первая цива и колонизация под венду, сделанная еще в 91-ом

А Сид Мейер, выпустивший виндовый порт в 1993, об этом в курсе?

И ничего - работали, потому что программисты были грамотными

Лооол.

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

Мда. Дядя, ты все-таки за хлебом.

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

В 9х ошибки программиста, если чо, приводили к «заморозке» интерфейса. Которое 1) не «зависание оси»

Именно глухое зависание. Или уход в перезагрузку.

  1. вина исключительно программиста.

Ну еще бы. Речь идет о разработке софта, в процессе которого, естественно, возникают ошибки, а их, в свою очередь, нужно выявить и исправить. Но в 98 ошибки в разрабатываемой программе утягивали за собой всю ось, а в NT 3.51 падал процесс, а ось работала стабильно.

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

Когда программы будет писать ии

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

Oberstserj ★★
()

Да. Стоит.

В одном случае – если Вы знаете что именно и зачем именно Вы делаете. Т.е., если Вам не хочется тратить вычислительные ресурсы система попусту и оптимизация системы не займёт у Вас непозволительно долго времени (т.е., тут работать надо, а Вы окошки перекрашиваете (привет от GNOME KDE)).

Для такого рода пользователей-программистов есть Gentoo. Там сразу без оптимизаций никуда. И никого не волнует что бинари от одной машины могут не подходить для другой. В случае Gentoo все (все ли?) понимают что сборка из исходников это сборка из исходников. Надо софт? Собирайте. Rolling release и не… «волнует». Не хотите? Ну есть прекрасные бинарные дистрибы, Вам тогда туда.

Второй момент с Gentoo это USE-flags. Если Вам не нужны, например, питоновские версии библиотек, или ещё что, то просто ставите «-флаг» (для случая с питоном «-python»), тогда то, что под этим флагом, собираться не будет. Например, есть libsomething. Она предоставляет интерфейсы для С (дефолт, да), С++, python, perl. В случае, если Вы указали в USE="...-python -perl ...", и части для python и части для perl собираться не будут. Сами по себе perl и python в системе будут, но так, чисто для галочки. Вообще, FEATURES, USE это довольно мощные вещи, позволяющие реально гибко собирать свою систему, а не систему, которую захотел собрать дисторостроитель. Например, на сервере, стоящим в боевом режиме, можно в FEATURES="... noman nodoc noinfo ..." и тогда не будет на сервере ни manов, ни doc, ни info-pages. Мне одному кажется что если мы добрались до «установки на сервер», то маны читать как-то поздновато? =)

Или другой пример – есть пакет. Использует СУБД. Например, berkeleydb, sqlite, mysql, postgresql. Какой нужен Вам? На вот этой конкретной машине? Дистростроитель этого не знает, поэтому Вам прилетит бинарный пакет, поддерживающий все 4 варианта. Вам надо будет установить и сконфигурировать нужную СУБД или набор библиотек. В случае с Gentoo у Вам просто в USE-флагах (не важно – локальных или глобальных) уже всё Выставлено Вами лично. И, если Вы используете локально berkeleydb или sqlite, то нафиг Вам локально mysql или postgresql?

Вы сами рулите своей системой. Не всё ровно и гладко, но я альтернатив с 2001г. не вижу. Если кто-то захочет предложить Linux from scratch, спасибо, я в курсе что это и как это, но мне ещё и систему иной раз обслуживать надо. Софт там подновить, то-сё, а на скриптах чисто (без portage) это не очень удобно. Хотя, да, LFS я так же пользовался.

Да, «обслуживание системы» занимает какое-то время, но это как правило, в фоне. Постоянный надзор как правило ненужен.

==================

По поводу разгоревшегося спора Win9x vs. 2000/NT 3.5 и выше. Win9x это из линейки MS DOS->Win3.11->Windows 3.11 for Workgroups->Win95->Win98->Windows Millenuim. По сути, это нашлёпка над MS DOS. Там всё было довольно плохо именно из-за этой «родовой травмы».

Чуть лучше всё было в OS/2. Да, «лучше чем Windows, лучше чем DOS», к тому же были свои WorkPlace Shell & Presentation Manager, специфичные именно что для OS/2. Из-за того, что кривой код от MS там был использован по минимуму, процессы в системе имели большую защиту друг от друга, чем в «родном» MS. Собственно, DOS и Windows подсистемы были реализованы как набор API (примерно как сейчас это сделано в Wine) и находились под контролем более-менее вменяемой OS/2. Но не судьба, не взлетело.

Семейство Windows NT. Это 3.5, 3.51, 2000 и до тех пор, пока в районе 2000г. не пришибли уродца в виде Windows линолиум Millenium, оставив одни NT-based системы отличалось большей защитой и более стабильной работой просто потому, что там использовались идеи от UNIX-систем. Надеюсь, не секрет что MS в своё время разработали такую систему как Xenix/386 (да, без многозадачности, на 386 особо было не разогнаться, но всё же ядро там было именно UNIX/POSIX compatible)? Позже Xenix продали SCO (Santa-Cruz Operations UNIX это продолжение всё этой же линейки, начавшейся в Microsoft Xenix/386). Ну вот и использовали наработки из Xenix для создания более стабильной чем DOS-ветка операционной системы.

Правда, MS да, всегда «славились» своим API, но это уже другой вопрос. Современный оффтопик это наследник UNIX, пусть даже и весьма-весьма отдалённый, а не MS DOS. =)

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

Ух ты. Значит когда самолёты не летают над Европой, это у тебя пукан горит? Буду знать, а то про всякие Эйяфьядлайёкюдльи рассказывают. А оно вон как, тебе просто бан тогда на ЛОР-е влепили.

peregrine ★★★★★
()

Оптимизация. 2 мега на диске игры про фашистов? Завидуйте.

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