Оптимизирующий компилятор |
Здравствуйте, гость ( Вход | Регистрация )
Оптимизирующий компилятор |
Litkevich Yuriy |
27.2.2008, 22:46
Сообщение
#1
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Есть ли бесплатный как GCC, но более эфективный компиллер?
И вообще подобный GCC проект, т.е. бесплатный и поддерживающий множество платформ. Под эффективностью подразумевается следующее:
По поводу последнего пункта читал, приемущественно для линуксовых платформ, что даже в релиз режиме компиляции, чего-то в код засовывается, может и в виндовозе так. Например, проект Slax какой-то утилой облегчают бинари, при этом ран-тайм дебагеры типа GDB не в состоянии работать, как я понял, ну и разный, любящий по ковырятся, народ тоже так делает. |
|
|
Andrew Selivanov |
28.2.2008, 10:49
Сообщение
#2
|
Участник Группа: Участник Сообщений: 249 Регистрация: 9.10.2007 Из: Москва Пользователь №: 3 Спасибо сказали: 15 раз(а) Репутация: 6 |
Есть ли бесплатный как GCC, но более эфективный компиллер? И вообще подобный GCC проект, т.е. бесплатный и поддерживающий множество платформ. Под эффективностью подразумевается следующее:
По поводу последнего пункта читал, приемущественно для линуксовых платформ, что даже в релиз режиме компиляции, чего-то в код засовывается, может и в виндовозе так. Например, проект Slax какой-то утилой облегчают бинари, при этом ран-тайм дебагеры типа GDB не в состоянии работать, как я понял, ну и разный, любящий по ковырятся, народ тоже так делает. нет нет по поводу компактности попробуй strip по поводу оптимизации попробуй свичи -mtune=core2 (pentium3, pentium4) -fprofile-arcs -march -mcpu, -fprofile-generate & -fprofile-use и вообще советую почитать по ключам, особенно в старших версиях GCC (4.x.x) и по ключам PGO (Profile Guided Optimization) PS: А собственно чем тебя так напрягает вес бинарника? Если ты активно используешь шаблоны, конечно он будет большим... я так мыслю хрен с ним с весом, если бы он весил 100Mb вместо одного и работал хотя бы в 10 раз быстрее я был бы просто очень жутко страшно рад Сообщение отредактировал Andrew Selivanov - 28.2.2008, 10:53 |
|
|
Litkevich Yuriy |
28.2.2008, 11:57
Сообщение
#3
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
А собственно чем тебя так напрягает вес бинарника? Мне хочется пользоватся одним инструментом для разных целей, для x86, для AVR, для ARM. Последний еще не пробывал, но уже работа на подходе, а GNU'тый компиллер весьма не эфективный код дает для AVR (WinAVR на www.sf.net) Если сравнить с комерческим IAR'ом то примерно в 2 раза больше, а в таких системах как AVR память от 2к до 128к (если брать популярные) ключ -mtune для AVR неподдерживается, а компилю всегда с ключем -O2 (и сравнеине привел для этого ключа). с GCC4x еще не пробвал. Дело в том, что сформировался опрделенный подход при написании программ на С для микроконтроллеров, не только у меня, создавать наборы файлов, что-то вроде библиотек, например функции для работы с контрольными суммами удобно держать в одном файле, те которые не используешь (не вызываешь), комерческие компиляторыне компилят. А когда перешел на GNU'тый, обнаружил, что он все собирает. А что такое strip? Сообщение отредактировал Litkevich Yuriy - 28.2.2008, 11:57 |
|
|
Andrew Selivanov |
28.2.2008, 12:25
Сообщение
#4
|
Участник Группа: Участник Сообщений: 249 Регистрация: 9.10.2007 Из: Москва Пользователь №: 3 Спасибо сказали: 15 раз(а) Репутация: 6 |
А собственно чем тебя так напрягает вес бинарника? Мне хочется пользоватся одним инструментом для разных целей, для x86, для AVR, для ARM. Последний еще не пробывал, но уже работа на подходе, а GNU'тый компиллер весьма не эфективный код дает для AVR (WinAVR на www.sf.net) Если сравнить с комерческим IAR'ом то примерно в 2 раза больше, а в таких системах как AVR память от 2к до 128к (если брать популярные) ключ -mtune для AVR неподдерживается, а компилю всегда с ключем -O2 (и сравнеине привел для этого ключа). с GCC4x еще не пробвал. Дело в том, что сформировался опрделенный подход при написании программ на С для микроконтроллеров, не только у меня, создавать наборы файлов, что-то вроде библиотек, например функции для работы с контрольными суммами удобно держать в одном файле, те которые не используешь (не вызываешь), комерческие компиляторыне компилят. А когда перешел на GNU'тый, обнаружил, что он все собирает. А что такое strip? %GCC_HOME%/bin/strip - утилита, которая удаляет symbol information из бинарника (или опция -s) Про AVR не могу ничего сказать, я когда то сразу на ассемблере Microchip делал (PIC16F628, 2k под программу), и вообщем то даже так места не хватало... По поводу как сделать маленький бинарник почитай этот (весьма интересный) тред: http://en.mikrocontroller.net/topic/74054 Сообщение отредактировал Andrew Selivanov - 28.2.2008, 12:27 |
|
|
Tonal |
29.2.2008, 11:34
Сообщение
#5
|
Активный участник Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17 |
Про отладочную информацию: добавь ключик -s и её не будет. :-)
Про выкидывание неиспользуемых функций - этим занимается линкер, можно ему немного помочь ключиками -ffunction-sections -fdata-sections и -Wl,--gc-sections. Ну и аналога gcc по платформам ты не найдёшь, насколько я в курсе. :-) |
|
|
Текстовая версия | Сейчас: 2.12.2024, 8:02 |