Перейти к содержанию
    

7 hours ago, Forger said:

(С) "Каждый дрочит, как хочет" 

@Forger, что же с вами? Ну совсем как-то не камильфо...

1 hour ago, ViKo said:

Это возможно? 

Чисто технически - да. Я не пользуюсь Кейлом, поэтому не могу точно сказать где какие галочки поставить, или какие ключики прописать) Я также давно не пишу на Си, поэтому не в курсе что там с областью видимости. Наверно нужно что-то типа extern "C" использовать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 часа назад, ViKo сказал:

Я предпочитаю C++, если после него получится библиотека, которую можно включить в проект на любом языке. Это возможно? 

Смотря как написано. Если это библиотека шаблонных классов, то она существует в виде заголовочных файлов. Там нечего инстанцировать  в .lib

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

22 часа назад, Forger сказал:
Это НУЖНО ДЕЛАТЬ не только библиотеках, но в самих проектах, очень сокращает объем прошивки,

Или наоборот - увеличивает :wink:

20 часов назад, mdmitry сказал:

Разделение на файлы упрощает портируемость (если есть необходимость функция->файл).

Портируемость может и да, но вот читаемость/редактируемость такого проекта - скорее наоборот. Так что - ну его в пень! :wink:

07.07.2020 в 14:18, ViKo сказал:

Спросить - еще быстрее.
Удивляюсь, когда посылают в Гугл за ответами. Здесь и есть форум вопросов и ответов. Специальный! :hi:

Тут вспоминается анекдот:

Молодой гусар спрашивает у поручика Ржевского, как это ему удается пользоваться таким успехом у женщин.
- Очень просто, - отвечает он, - нужно подойти к женщине и сказать:
"Мадам, позвольте вам вдуть!"
- Поручик! Но ведь за такое можно и по морде!
- Можно и по морде. Но можно и вдуть.

:biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 минут назад, jcxz сказал:

Или наоборот - увеличивает

Судя по описанию, уменьшает объём. Но увеличивает время компиляции. Хотя, кого волнует время компиляции?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 minutes ago, jcxz said:

Или наоборот - увеличивает :wink:

С какого перепуга?

Эта галка или не дает разницы (если все функции и методы используются в проекте) или сокращает финальную прошивку, вырезая неиспользуемые функции/методы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 минут назад, jcxz сказал:

Тут вспоминается анекдот

Помню, помню... Только в варианте "... но обычно впендюриваю". А также "за спрос не бьют в нос".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 minutes ago, ViKo said:

Но увеличивает время компиляции.

Время компиляции сокращается применением нормального компа с современным процом.

К слову, недавно перешел на бюджетный ryzen 5 3600, keil компилит одновременно 12 файлов :dance2:

Если бы был ryzen 7 а то и 9, то вообще ракета. Жду 4000 поколения ряженок. При случае обновлю.

В сравнении с античными компами разница колоссальная.

И лишне говорить, что keil и проект должны быть обязательно на ssd

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 минуты назад, Forger сказал:

Недавно перешел на бюджетный ryzen 5 3600

Я, как эстет, предпочитаю Intel. (и мобильник у меня - Sony :biggrin:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 minutes ago, ViKo said:

Я, как эстет, предпочитаю Intel. (и мобильник у меня - Sony :biggrin:)

Пофиг, главное - много-много-многопоточный.

Интел интелу рознь. Современные ряженки амд сильно уделывают интел при равной цене, раньше было наоборот.

Хорошо, когда конкуренция начинает реально работать ))

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

25 minutes ago, Forger said:

Интел интелу рознь. Современные ряженки амд сильно уделывают интел при равной цене, раньше было наоборот.

Я тоже так считал... но побоялся брать АМД. В итоге остался верным Интелу. Вот мой недавний приобретённый друг https://market.yandex.ru/product--protsessor-intel-core-i5-9400f-coffee-lake-2900mhz-lga1151-v2-l3-9216kb/427654080

Кстати, не по теме: а в каком-либо ПО выползает то, что вы работаете на АМД? Или эти проблемы с несовместимостью уже давно канули в лету?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 minutes ago, haker_fox said:

Я тоже так считал... но побоялся брать АМД. В итоге остался верным Интелу. Вот мой недавний приобретённый друг https://market.yandex.ru/product--protsessor-intel-core-i5-9400f-coffee-lake-2900mhz-lga1151-v2-l3-9216kb/427654080

Это нормальный проц, у него как я понял нет гипертрединга, т.е. всего 6 потоков, у той же ряженки 3600 получается тоже 6 ядер, но уже 12 потоков, потому компилит значительно быстрее, хотя стоит примерно столько же. 

Интел для игр хорошо, а для 3D и работы амд все же ловчее. Это показывают тесты синтетические и в реальных положениях.

Quote

Кстати, не по теме: а в каком-либо ПО выползает то, что вы работаете на АМД? Или эти проблемы с несовместимостью уже давно канули в лету?

Ни разу не сталкивался. Компы везде амд и давно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, Forger сказал:

С какого перепуга?

Эта галка или не дает разницы (если все функции и методы используются в проекте) или сокращает финальную прошивку, вырезая неиспользуемые функции/методы.

Я говорю про случай "в самих проектах", а не про библиотеки.

В самих проектах, как правило, в исходниках нет лишних функций, которые не используются в коде (по-крайней мере у меня - точно; так как излишне загромождают исходник). Ну или почти нет. А значит плюсов выделение каждой функции в отдельную секцию линковки не даёт почти никаких.

А вот минусов - не мало. Так как такое выделение уменьшает возможности оптимизатора. Например: Есть функция, в самом конце которой есть вызов другой функции (после которого только выход из функции). И по уровню использования стека эти две функции (вызываемая и вызывающая) равны. В этом случае любой вменяемый оптимизатор вызов такой функции сделает не через команду BL, а просто передаст управление во вторую функцию посредством команды B. И, если данная функция находится в той-же секции компоновки, то компилятор использует короткий вариант команды B (2 байта). А вот задание для каждой функции отдельной секции не даёт компилятору возможности использовать короткие вызовы между функциями - все B будут длинными. :sad:

И таких случаев в сложном коде будет немало. И особенно это будет заметно при использовании "multi-file compilation".

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

 

PS: Так что - выделение каждой функции в отдельную секцию для библиотеки это '+'; для исполняемого проекта - скорее '-'.

 

1 час назад, Forger сказал:

К слову, недавно перешел на бюджетный ryzen 5 3600, keil компилит одновременно 12 файлов :dance2:

Неужто и при компиляции с максимальной оптимизацией в режиме "multi-file compilation"? :wink:

Или в этом случае работает только одно ядро, и скорость компиляции падает ниже плинтуса? :wink:

Цитата

Если бы был ryzen 7 а то и 9, то вообще ракета. Жду 4000 поколения ряженок. При случае обновлю.

В сравнении с античными компами разница колоссальная.

А частота одного ядра у него - какова?

Цитата

И лишне говорить, что keil и проект должны быть обязательно на ssd

Это с какого перепугу? какой смысл? Чтобы побыстрее его протереть? :vava:

Мне иногда нужно работать с VS. Так там временные файлы проекта могут до 1гига доходить! И он их создаёт при каждой компиляции. А таких компиляций в день у меня обычно многие десятки.

Да и у IAR-а таких файлов немало, если учесть все .obj, .lst, .i - несколько десятков МБ набегает. И так - много десятков раз в день.

Если уж совсем хочется скорости компиляции, то лучше: Временные файлы (.obj, .lst, .i, ...) - на виртуальный диск, а исходники - на обычном HDD. После первой же компиляции все исходники окажутся в кеше и время доступа к ним будет намного меньше чем на SSD. Сама IDE конечно же на SSD. Но папка TEMP - на виртуальный диск. :unknw:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, Forger сказал:

Интел интелу рознь. Современные ряженки амд сильно уделывают интел при равной цене, раньше было наоборот.

Но как только сталкиваются с однопоточной работой - сразу садятся в лужу? :biggrin:

Не работали видимо Вы с Матлабом. :unknw: Именно из-за необходимости работы с ним иногда, мы выбрали i7 с максимально возможной тактовой одного ядра. А грузит Матлаб CPU несравнимо ни с какой компиляцией....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

30 minutes ago, jcxz said:

Но как только сталкиваются с однопоточной работой - сразу садятся в лужу. :biggrin:

Судя по последним тестам в однопоточном режиме на равной тактовой частоте amd оказывается быстрее (речь про 3000 серию и выше).

Но интел догоняет и порой обгоняет за счет бОльше тактовой частоты.

В античных программах под одноядерные процы - там и компы никто не меняет годами. Чихнуть рядом страшно, но то что менять железо )))

47 minutes ago, jcxz said:

Это с какого перепугу? какой смысл? Чтобы побыстрее его протереть? 

Этот миф давно гуляет по интернетам, наравне с поклонними плоской земли, противниками 6G, которые сжигают их вышки и т.п. персонажами

К слову, с 15 года активно использую исключительно ssd, ни один не умер. А сейчас везде перешел вообще на pcie ssd.

Современные ssd имеют очень мудреные контроллеры, на борту у них всегда немаленький кэш (в среднем около 1% от объема диска).

Убить диск можно только записывая огромные файлы в нонстоп режиме, есть тесты, но и тут тот же samsung показывает впечатляющие результаты (потому он недешевый).

 

47 minutes ago, jcxz said:

Я говорю про случай "в самих проектах", а не про библиотеки.

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

ARM просто облегчили жизнь программисту, но безусловно истинном староверам, которые передвигаются на конной HDD тяге, такие упрощения жизни неприемлемы ;)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

23 минуты назад, Forger сказал:

В античных программах под одноядерные процы - там и компы никто не меняет годами. Чихнуть рядом страшно, но то что менять железо )))

Если Симулинк Матлаба для Вас - античная программа, то... :unknw:

Цитата

Не несите чушь! Этот миф давно гуляет по интернетам, наравне с противниками 6G, которые сжигают их вышки.

С 15 года активно использую исключительно ssd, ни один не умер. А сейчас везде перешел вообще на pcie ssd.

"Чушь" лежит у меня в столе. Называется - "сдохший в прошлом году Intel SSD 540s". То что Вам на голову никогда не падал кирпич, совсем не говорит о том, что каски на стройках не нужны.

Цитата

Эта галочка делает то, что делают некоторые староверы руками - каждую функцию суют в свой файл.

Компилятор автоматически раскидывает каждую функцию по сути в свой obj файл. Это то же самое, что делать это руками.  ARM просто облегчили жизнь программисту ))

Я знаю что делает "эта галочка". Не нужно объяснять очевидные вещи. Расскажите лучше чем она поможет в случае компиляции проекта, в котором нет лишнего мусора, натасканного из чужих исходников, в которых не понимаешь что к чему? И как именно сможет оптимизатор оптимизировать код в случае который я описал выше?

Цитата

Но истинному староверу, который передвигаются на конной HDD тяге, такие упрощения жизни неприемлемы ;)

Ну так и таскателю чужих исходников, который даже не может разобраться что к чему и какие функции нужны - ему никуда без галки "one section per function"? Так ведь? :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...