The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Линус Торвальдс о борьбе с оптимизатором GCC

10.08.2009 22:24

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

При тестировании на машине с многоядерным CPU архитектуры Nehalem, написанная для уменьшения числа зависимостей кода GIT реализация алгоритма хэширования SHA1 на языке Си с использованием ассемблерных вставок, оказалась быстрее оптимизированного вручную варианта на языке ассемблер, поставляемого в составе пакета OpenSSL.

  1. Главная ссылка к новости (http://www.linuxfoundation.org...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/22968-gcc
Ключевые слова: gcc, optimization, benchmark
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (71) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, NNIIL (?), 22:53, 10/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    си теперь быстрее асьмы? не верю...
     
     
  • 2.9, Breg (??), 02:37, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    как бы да, получилось быстрее из-за автоматического распараллеливания.
     
     
  • 3.11, Looker (??), 05:42, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это говорит лишь об их умении программить на асме...
    Ведь итоговый код все равно получается фактически на нем...

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

     
     
  • 4.64, atomicxp (ok), 16:14, 13/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Ведь итоговый код все равно получается фактически на нем...

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

     
  • 3.13, Юниксоид (??), 09:41, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Неправда ваша, не читали вы исходники.

    Ассемблер там, ассемблер. Просто он в виде макросов и разворачивается в много-много ассемблера по месту использования макроса.

     
  • 3.17, hz (??), 10:34, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    ручное там распаралеливание
     
  • 2.14, ig0r (??), 09:48, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    понимаете ли, всё зависит от кода а не от языка, уверен что Вы не напишите парсер XML на асме, который будет быстрее чем перловый.
     
     
  • 3.24, ihanick (?), 14:16, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • –1 +/
    в языке перл нет xml парсера. Xml парсеры реализуются сторонними библиотеками.
     
     
  • 4.28, ig0r (??), 16:20, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    какое это имеет значение? если парсер реализован для перла он что не перловый?
     
     
  • 5.29, Pilat (ok), 16:34, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >какое это имеет значение? если парсер реализован для перла он что не
    >перловый?

    для перла парсер XML не реализован - реализован доступ к библиотекам парсера.

     
     
  • 6.30, ig0r (??), 16:36, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    а библиотека парсера, это что не реализация парсера для перла?
     
     
  • 7.31, vitek (??), 17:23, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +1 +/
    библа сишная (вернее например сишная. и так много всяких парсеров xml уже есть. и dom, и sax. помоему и на перле что-то есть). и реадизована для си. а в пёрле биндинги.

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

     
     
  • 8.35, ig0r (??), 18:41, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    например сишная или например перловая, какая разница на перле нарсить XML быстр... текст свёрнут, показать
     
     
  • 9.40, vitek (??), 19:21, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    спорить о чём читай пост внимательней в асме есть теже готовые библиотеки и п... текст свёрнут, показать
     
     
  • 10.44, ig0r (??), 19:34, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Суть моего высказывания в следующем Быстреее работает тот код который качестве... текст свёрнут, показать
     
     
  • 11.54, vitek (??), 20:13, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    абсолютно согласен но, если код написан качественно на более низкоуровневом язы... текст свёрнут, показать
     
  • 11.57, User294 (ok), 20:23, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не совсем так Корректнее сказать что можно и на асме написать говнокод, сольющи... текст свёрнут, показать
     
     
  • 12.61, ig0r (??), 09:50, 12/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Когда нужно написать сложный алгоритм например парсер регулярных выражений , ес... текст свёрнут, показать
     
     
  • 13.63, аноним (?), 00:23, 13/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    те чудеса оптимизации, которые вы подразумеваете, остаются мечтой компилятор не... текст свёрнут, показать
     
  • 13.65, евгений (??), 15:44, 14/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Тут все зависит от конкретного программера и его опыта Если ты пишешь преимущес... текст свёрнут, показать
     
     
  • 14.70, User294 (ok), 21:25, 20/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    У ассемблера есть некая проблема - человеку трудно глобально соптимизировать исп... текст свёрнут, показать
     
  • 9.47, User294 (ok), 19:37, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    А на асме дернуть ту же сишную либу парсящую XML D Если вы хотите сравнить ско... текст свёрнут, показать
     
  • 5.36, Дмитрий Ю. Карпов (?), 18:48, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, не перловый. В данном контексте "перловый" означает "написанный на Перле", а модули для Перла пишутся на чём угодно.
     
     
  • 6.39, ig0r (??), 19:06, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    хм, а если парсер написан на перле с использованием сишной библиотеки, то он становится сишным?
     
     
  • 7.42, vitek (??), 19:28, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    естественно.
    сам парсер (движок) в библиотеке.
    и подозреваю, что создатели этой библиотеки о пёрле и не задумывались.
    в пёрле Вы используете парсер, а не пишите его.

    звучит Ваш постулат примерно так - если я на жабе пишу прогу с использованием mysql, то mysql написан на java.... ну бред же.

     
     
  • 8.49, ig0r (??), 19:43, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    но сам перл написан на C, значит и весь перловый код можно назвать сишным, ведь ... текст свёрнут, показать
     
     
  • 9.56, vitek (??), 20:18, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    но программа на пёрле - текстовой файл, который ещё надо обработать отпарсить е... текст свёрнут, показать
     
     
  • 10.59, User294 (ok), 20:28, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    А потом еще сишный компилер то же самое сделает Сишные компилеры тоже не паин... текст свёрнут, показать
     
  • 7.43, User294 (ok), 19:28, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >хм, а если парсер написан на перле с использованием сишной библиотеки, то
    >он становится сишным?

    Очевидно да - черную работу делает сишная либа.Если хочется сказать что перл крут по скорости - напишите именно на нем.Иначе неубедительно - быстрым то был все-таки си в его либе :).А то что ее из какой-то тормозилки дернули - ну, дернули и дернули.Хоть из шелскрипта дергайте, кому какое дело?

     
     
  • 8.45, ig0r (??), 19:37, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Значит когда я пишу на перле, и использую сишную библиотеку, я могу сказать что ... текст свёрнут, показать
     
     
  • 9.51, User294 (ok), 19:56, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нет, вы не пишете на си Но вы пользуетесь результатами труда сишных програмеров... текст свёрнут, показать
     
     
  • 10.53, ig0r (??), 20:01, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    то Вы утвержадаете что код который я получу не является перловым потому что испо... текст свёрнут, показать
     
     
  • 11.55, User294 (ok), 20:15, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как бы логично что код сишной либы - не код на перле, да И именно парсер XML -... текст свёрнут, показать
     
  • 2.33, аноним (?), 18:06, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > си теперь быстрее асьмы?

    Вообще-то в половине случаев всегда был и будет, в другой половине даже близко не стоит.

     
  • 2.41, User294 (ok), 19:26, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >  си теперь быстрее асьмы? не верю...

    Иногда такое возможно - человеку трудно в большом масштабе отслеживать например глобальное использование регистров и т.п. - поэтому на большом куске кода компилер может обыграть человека.Но вот вылизать до байтика код в конкретном месте может только человек.Поэтому вещи критичные к скорости - это си с маленькими вставками асма.Не верите?Посмотрите как написаны все популярные кодеки ;).

     

  • 1.2, Аноним (-), 23:00, 10/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересно что на этот счет скажет Тео? Может быть алгоритм в OpenSSH более надёжен в плане безопасности?
     
     
  • 2.8, Аноним (-), 01:50, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Совсем дурной, да?
    Про криптографию только в кино читал?
    SHA-1 он и у финского парня SHA-1.
    Если "разный уровень безопасности", то это не SHA-1 а что-то другое.
    Хотя какая нафик безопасность у SHA-1 - это уже не криптофункция.
     
     
  • 3.12, СуперАноним (?), 07:33, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Думаю, он имел в виду другое. А именно то, что _реализация_ этого алгоритма в OpenSSL более выверена в плане отсутствия уязвимостей.
     
     
  • 4.21, Анонумоис (?), 13:43, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Думаю, он имел в виду другое. А именно то, что _реализация_ этого
    >алгоритма в OpenSSL более выверена в плане отсутствия уязвимостей.

    Уязвимости в SSH, в смысле реализации? Там код то строк в 200, не вызывают криптофункции лишнего "мяса" (библиотек), все только стандартное, т.к. переносимость важнее.

     
     
  • 5.22, Анонумоис (?), 13:47, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Описался, SHA-1, а не SSH.

     

  • 1.3, LXj (?), 23:05, 10/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    LOLWUT?

    В оригинальной статье ни слова о том, что Линусу нравится оптимизация GCC. Наоборот, "it turns out that getting good results from SHA1 really is mostly about trying to fight the compilers tendency to try to be clever". То есть за оптимизацию он не хвалил, а наоборот, ругал, поскольку его C-код настолько низкоуровненвый, что компилятор C использовался "as a glorified assembler" (собственно, в комментариях на ЛОРе указали и на ассемблерные вставки в том числе)

     
     
  • 2.4, vitek (??), 23:13, 10/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >"it turns out that getting good results from SHA1 really is mostly about trying to fight the compilers tendency to try to be clever"

    ну и как перевести эту фразу?

     
     
  • 3.7, Аноним (-), 01:02, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    оказалось, для того чтобы получить хорошие результаты нужно бороться с тем что компилятор пытается умничать
     
  • 2.6, Аноним (-), 23:26, 10/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Похоже на то, что Линус просто так иронизирует.
     
  • 2.15, ig0r (??), 10:19, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    в этой статье я тоже не нашёл ни слова о том, что Линусу нравится оптимизация GCC. Наоборот, "Линус Торвальдс опубликовал заметку о все большем усложнении работы, когда требуется получить предсказуемый результат от GCC, без вмешательства оптимизатора. Отмечается, что компилятор становится слишком умным, что мешает использованию Си в роли высокоуровневого ассемблера, так как все труднее и труднее предсказать какой результирующий код будет сгенерирован.". То есть за оптимизацию он не хвалил, а наоборот, ругал...
     
     
  • 3.19, FractalizeR (??), 11:50, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Линус считает C просто средством написания переносимого ассемблерного кода, а не самостоятельным языком. И только в этом свете ему не нравится, как компилятор изменяет его код в попытке оптимизировать. Он не имеет ввиду, что GCC плохо оптимизирует код или что оптимизации кода это плохо вообще. Он имеет ввиду только данный конкретный случай.
     
     
  • 4.32, vitek (??), 17:33, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    просто для действительно сильного специалиста лучшая оптимизация - это он сам.
    а для подавляющего большинства середнечков характерно следующее (если вообще оптимизацией занимаются. на прикладном уровне и метод пузырька - новое слово в науке и технике) - оптимизируют в одну сторону, а оптимизатор компилятора в другую. а врезультате то что получилось совместными действиями. очень многие серьезные специалисты в прикладном программировании даже рекомендуют дебагерную инфу не убирать - типа овчинка выделки не стоит, а вот в поддержке очень сильно поможет.
    короче - уметь надо. (вот новость, правда? :-D)
     
     
  • 5.38, Aleksey (??), 18:57, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    А можно посмотреть на этих "специалистов"? Особенно с последними рекомендациями?
     
  • 5.46, аноним (?), 19:37, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >в прикладном программировании даже рекомендуют дебагерную инфу не убирать - типа
    >овчинка выделки не стоит, а вот в поддержке очень сильно поможет.

    хех, я тоже такое читал =)))

     
     
  • 6.58, vitek (??), 20:24, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    да вот книжку забыл. (аргументы помню, иногда применяю, но ведь нужен пруфлинк :-D)
    лет 10 назад. там описывалась обработка исключительных ситуаций, SEH и т.д. (для виндов правда). автор - признанный тестировщик.
    ладно. найду, ссылку скину.
     
  • 4.52, User294 (ok), 19:59, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Линус считает C просто средством написания переносимого ассемблерного кода, а не
    >самостоятельным языком.

    Более того, его таковым считает еще целая орава народа.Как минимум - иногда :)

     

  • 1.5, Max (??), 23:20, 10/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Это товальдус ещё не програмил на джава.
     
     
  • 2.10, 1 (??), 04:11, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Он бы на питоне попрограммил. Я б купил попкорна и почитал потом его комментарии.
     
     
  • 3.16, Andrey Mitrofanov (?), 10:32, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Он бы на питоне

    Точно? Проверял?

    Когда ему надо было быстро написать инструмент, он писал на Perl+shell, потом библиотеки и критичные куски "подтянули" на C. http://www.ohloh.net/p/git/analyses/latest - "в начале", думаю, перла было больше.

    ---
    По поводу заголока: автор новости, надо полагать, не совсем понял, о чём речь. Ведь раз быстрее "чисто ассемблерной реализации", значит gcc круут.

     
     
  • 4.18, Ariel (??), 11:26, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Интересно, если отключить оптимизацию, можно получить предсказуемый результат, или оно того не стоит?
     
  • 3.60, User294 (ok), 20:44, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Он бы на питоне попрограммил.

    А может лучше сразу на брейнфаке?Зачем ограничиваться полумерами? :)

     

  • 1.23, Аноним (-), 14:05, 11/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >компилятор становится слишком умным
    >все труднее и труднее предсказать какой результирующий код будет сгенерирован

    мне страшно. вот, откуда начнётся восстание машин

     
     
  • 2.34, Warhead Wardick (?), 18:24, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >>компилятор становится слишком умным
    >>все труднее и труднее предсказать какой результирующий код будет сгенерирован
    >
    >мне страшно. вот, откуда начнётся восстание машин

    Ползи на кладбище - то что С генерит для DSP читать лет уж 10 никто не может ... однако ракеты летаютЪ :)

    PS:   Хммм .... "Булава" ? OMFG!!!! :)


    PPS:  Для слабых нервом - там не из за электроники, там из за того что в России толковых токарей не осталось, одни менеджеры ...

     
     
  • 3.48, User294 (ok), 19:40, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Ползи на кладбище - то что С генерит для DSP читать лет
    >уж 10 никто не может ... однако ракеты летаютЪ :)

    Весь вопрос в том кто еще поползет, полетит, поплывет, ... на него по милости электроники.
    И так, JFYI: для DSP обычно генерится крайне дерьмовый код.Кажется, Ti (?) или кто-то еще из известных производителей DSP честно предупреждает, что для получения обещанных ими параметров одними сями дескать не обойдетесь, асм вам в руки.

    >PPS:  Для слабых нервом - там не из за электроники, там
    >из за того что в России толковых токарей не осталось, одни менеджеры ...

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

     

  • 1.25, Iv945n (ok), 14:29, 11/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Линус Торвальдс опубликовал (http://www.linuxfoundation.org/news-media/blogs/browse/2009/08/programming) заметку о все большем усложнении работы, когда требуется
    >получить предсказуемый результат от GCC, без вмешательства оптимизатора. Отмечается, что компилятор
    >становится слишком умным, что мешает использованию Си в роли высокоуровневого ассемблера,
    >так как все труднее и труднее предсказать какой результирующий код будет
    >сгенерирован.
    >При тестировании на машине с многоядерным CPU архитектуры Nehalem, написанная для уменьшения
    >числа зависимостей кода GIT реализация алгоритма хэширования SHA1 на языке Си
    >с использованием ассемблерных вставок ...

    Как можно использовать ассемблерные вставки если не известно куда что положит сишный код?

     
     
  • 2.26, Аноним (-), 14:45, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Как можно использовать сишный код, если неизвестно, куда что положат ассемблерные вставки?
     
     
  • 3.37, Дмитрий Ю. Карпов (?), 18:54, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Как можно использовать сишный код, если неизвестно, куда что положат ассемблерные вставки?

    А зачем это знать? Можно пользоваться компьютером, не умея программировать. Можно программировать потоки (grep, sed и им подобные, связанные пайпами), не зная, как именно реализована работа с регексами. Можно программировать на языке высокого уровня, не зная, какой код на родном языке процессора получится.

    Главное - чтобы код был корректным. А Си провоцирует на неоднозначное понимание возможности оптимизации. Например:
    x=a+b;
    *p=*q;
    y=x+1;

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

     
     
  • 4.50, User294 (ok), 19:51, 11/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >А зачем это знать?

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

    >Можно пользоваться компьютером, не умея программировать.

    А еще можно жить не умея считать, читать, писать, ... :)

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

    Только в результате обычо получается быдлокод.Унылый.Однообразный.Неэффективный.А вот красивые, эффективные и мощные алгоритмы почему-то такие "программеры" сделать обычно не могут.Более того - иногда на совершенно детскую задачку можно услышать ответ какогонить "дотнетчика":
    - А можно сделать вон то и вон это?
    - А так нельзя!
    - ??? WTF ???
    - Для этого класса нет...

    Да, такой "програмер" не родит свой алгоритм, хотя-бы уровня b-tree.Он родит только унылое однообразное говно...

    >Главное - чтобы код был корректным. А Си провоцирует на неоднозначное понимание
    >возможности оптимизации.

    Да, си не строит быдляк в строй при помощи пилюлей - это тулза для системщиков и програмеров.У которых мозг на месте, что несколько отличает их в лучшую сторону.А не для дебилов, которые понимают только пилюли сдобренные истошным воплем "нельзя!!!".Для таких есть высокоуровневые явы и дотнеты, там построение при помощи пилюлей и "нельзя!!!" реализовано.Ну и возможностей меньше, соответственно.Везде ограничения, тормоза, "нельзя!!!" одним словом.Крутой кодек на яве и дотнете не напишешь, пишут в итоге только унылую как дождливый день бизнес логику да всякий оверблоатнутый шыт сделанный по принципу "на отвали".

     
     
  • 5.62, Аноним (-), 22:43, 12/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Минус асма, для меня, в низкой портабельности кода.

    Сначала мучаешься под x86, а потом еще мучиться под x86_64, потом опять мучиться под ARM, а потом снова мучиться под MIPS, а потом мучиться еще под что нибудь.

    А если код еще и под разные ОС должен работать, так это сразу застрелиться.

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

     
     
  • 6.66, i (??), 22:57, 14/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    код на ассемблере не портабелен вообще.
     
     
  • 7.69, User294 (ok), 21:19, 20/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >код на ассемблере не портабелен вообще.

    А если это ассемблер виртуальной машины?Собссно в яве и дотнете есть промежуточный байткод, как раз примерно оно и есть :)

     
  • 5.67, dmsuslov (??), 18:12, 20/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Сдается мне, что это какой-то юношеский максимализм! По-вашему, если программер решает задачи на джаве или дотнете то он быдлопрограммер и не имеет права на существование? А вы ту же самую задачу за то же самое время за те же самые деньги решите на си или асме?

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

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

     
     
  • 6.71, User294 (ok), 21:33, 20/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Да, рассуждение здравое, но пардон, работа в макдональдсе и не считается почетной, если вы не заметили.Большинство людей вполне конкретного мнения о качестве тамошней "стряпни" и ее полезности.Ну и врядли коллеги из ресторанов питают чрезмерные симпатии к школоте из соседнего макдональдса, позорящей профессию поваров как класс.В итоге - работа в макдональдсе может и популярнее чем работа шеф-поваром в приличном ресторане, но таким достижением особо не погордишься - это не сильно почетнее работы дворником.Что-то не так?Нет, наверное бывают нормальные програмеры на дотнете и яве.И крутые повара в макдональдсах.Но я честно говоря ни тех ни других не встречал.Хотя, безусловно, совсем отрицать возможность их существования - глупо, да.
     
     
  • 7.72, dmsuslov (??), 21:37, 20/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Да, рассуждение здравое, но пардон, работа в макдональдсе и не считается почетной,
    >если вы не заметили.Большинство людей вполне конкретного мнения о качестве тамошней
    >"стряпни" и ее полезности.Ну и врядли коллеги из ресторанов питают чрезмерные
    >симпатии к школоте из соседнего макдональдса, позорящей профессию поваров как класс.В
    >итоге - работа в макдональдсе может и популярнее чем работа шеф-поваром
    >в приличном ресторане, но таким достижением особо не погордишься - это
    >не сильно почетнее работы дворником.Что-то не так?Нет, наверное бывают нормальные програмеры
    >на дотнете и яве.И крутые повара в макдональдсах.Но я честно говоря
    >ни тех ни других не встречал.Хотя, безусловно, совсем отрицать возможность их
    >существования - глупо, да.

    Вы меня немного не поняли. Я не о квалификации программеров говорил, а о том, что порой и не требуется из пушки по воробьям. И решение не слишком замысловатой и не очень интересной задачи лучше поручить "быдлокодеру" - пусть он ее решит своими "быдлоинструментами". Это будет целесообразно.

     

  • 1.68, Имя (?), 20:13, 20/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А чего бороться? Вынести алгоритм в отдельный файл и компилить с -O0. У меня тоже выходило times33 вручную оптимизировать лучше, чем с -O3, при этом включение оптимизаций на оптимизированном вручную коде заметно снижал производительность.
     
  • 1.73, pavlinux (ok), 20:52, 25/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Аптимизаторы млин

    > 74         /* Output hash
    > 75          */
    > 76         for (i = 0; i < 5; i++)
    > 77                 ((unsigned int *)hashout)[i] = htonl(ctx->H[i]);
    > 78 }

    /* Output hash */

    ((unsigned int *)hashout)[0] = htonl(ctx->H[0]);
    ((unsigned int *)hashout)[1] = htonl(ctx->H[1]);
    ((unsigned int *)hashout)[2] = htonl(ctx->H[2]);
    ((unsigned int *)hashout)[3] = htonl(ctx->H[3]);
    ((unsigned int *)hashout)[4] = htonl(ctx->H[4]);

    :)


     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру