17 мая 2011, 11:26:08 AM   # 1
 
 
Сообщения: 7
Цитировать по имени
цитировать ответ
по умолчанию Re: Почему так много «инлайн»?

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Я просто посмотрите в исходный код Bitcoin и я нахожу тонны встроенных функций / методов. Как правило, встраивание это очень плохая идея, это может привести к снижению производительности. Встраивание должно быть сделано только в случае необходимости и должно быть протестированный, чтобы проверить, есть ли какой-то выигрыш.

Как вы думаете?
Уммон сейчас офлайн Пожаловаться на Уммон   Ответить с цитированием Мультицитирование сообщения от Уммон Быстрый ответ на сообщение Уммон


Как заработать Биткоины?
Без вложений. Не майнинг.


17 мая 2011, 1:11:30 PM   # 2
 
 
Сообщения: 205
Цитировать по имени
цитировать ответ
по умолчанию Re: Почему так много «инлайн»?

Получил 1806 Биткоинов
Реальная история.





Ну, я думал, что современные компиляторы просто воспринял это как намек, и они не всегда соблюдают его. Я могу ошибаться, хотя.
Sandos сейчас офлайн Пожаловаться на Sandos   Ответить с цитированием Мультицитирование сообщения от Sandos Быстрый ответ на сообщение Sandos

17 мая 2011, 1:27:51 PM   # 3
 
 
Сообщения: 420
Цитировать по имени
цитировать ответ
по умолчанию Re: Почему так много «инлайн»?

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

17 мая 2011, 5:09:35 PM   # 4
 
 
Сообщения: 812
Цитировать по имени
цитировать ответ
по умолчанию Re: Почему так много «инлайн»?

Ну, я думал, что современные компиляторы просто воспринял это как намек, и они не всегда соблюдают его. Я могу ошибаться, хотя.
Действительно, современный компилятор будет выбирать встраивать когда это имеет смысл, независимо от того, обеспечивает ли разработчик подсказку или нет (это особенно актуально при оптимизации целого программы).
Wumpus сейчас офлайн Пожаловаться на Wumpus   Ответить с цитированием Мультицитирование сообщения от Wumpus Быстрый ответ на сообщение Wumpus

17 мая 2011, 9:36:56 PM   # 5
 
 
Сообщения: 504
Цитировать по имени
цитировать ответ
по умолчанию Re: Почему так много «инлайн»?

Некоторые моменты, о «инлайн».

  • встраивание не является универсальным "плохая идея", Это, конечно, не снижает производительность. Это может значительно увеличить размер объекта.
  • Это не тот случай, когда "в очереди" Ключевое слово используется, чтобы указать компилятор на встроенный код (причудливо).
  • Это использование является обязательным, если это необходимо, и Noop, когда это не так.
  • Он используется, чтобы позволить Вам помещать определения функций члена вне класса декларации в заголовочных файлах, которые входят в нескольких местах. Если вы не включили его, то второй модуль, который включает в себя это будет генерировать ошибку компоновщика, как он находит несколько определений для той же функции.
Код:
класс SomeClass {
  недействительный someInline (интермедиат у) {х = у; }
  ИНТ х;
};

точно так же, как и

Код:
класс SomeClass {
  недействительный someInline (целое);
  ИНТ х;
};

рядный аннулируются SomeClass :: someInline (интермедиат у)
{
  х = у;
}

  • рядный на виртуальном элементе игнорируется. Это невозможно иметь встроенный виртуальный.
  • встроенный в модуль, а не заголовок либо давать ошибки компоновщика (когда другие модули не найти экспортируемый символ, или игнорировать.
  • Наконец: встраивание может быть опасным во время многократных циклов компиляции, если изменения функции, если зависимые модули не перекомпилировать, так как старую версию функции могли быть встроены в другой модуль, и вы в конечном итоге с модулем А с встраиваемыми version1 и модулем B встраиваемом version2.
  • Объявляет функцию «статический» в программе C, когда эта функция не объявлена ​​в заголовке означает, что символ не экспортируется, и позволяет компилятору встраивать как это считают нужным. «Инлайн» являются совершенно ненужными, чтобы сделать функцию встраиваемой.
НТН.
realnowhereman сейчас офлайн Пожаловаться на realnowhereman   Ответить с цитированием Мультицитирование сообщения от realnowhereman Быстрый ответ на сообщение realnowhereman

17 мая 2011, 10:12:07 PM   # 6
 
 
Сообщений: 70
Цитировать по имени
цитировать ответ
по умолчанию Re: Почему так много «инлайн»?

    • встраивание не является универсальным "плохая идея", Это, конечно, не снижает производительность. Это может значительно увеличить размер объекта.

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

    котировка
    • Наконец: встраивание может быть опасным во время многократных циклов компиляции, если изменения функции, если зависимые модули не перекомпилировать, так как старую версию функции могли быть встроены в другой модуль, и вы в конечном итоге с модулем А с встраиваемыми version1 и модулем B встраиваемом version2.

    Это просто глупо. Если это происходит, есть ошибка в системе сборки.

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

    котировка
    • Объявляет функцию «статический» в программе C, когда эта функция не объявлена ​​в заголовке означает, что символ не экспортируется, и позволяет компилятору встраивать как это считают нужным. «Инлайн» являются совершенно ненужными, чтобы сделать функцию встраиваемой.

    Эти два утверждения не совпадают. Если ты хочешь "делать" (Сила) функция быть встраиваемыми, то вы явно не хотите оставить это решение для компилятора.

    xf2_org сейчас офлайн Пожаловаться на xf2_org   Ответить с цитированием Мультицитирование сообщения от xf2_org Быстрый ответ на сообщение xf2_org

    17 мая 2011, 11:11:10 PM   # 7
     
     
    Сообщения: 1694
    Цитировать по имени
    цитировать ответ
    по умолчанию Re: Почему так много «инлайн»?

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

    С другой стороны, встраивание в тяжелом цикле службы будет ограничивать код выскакивает и, таким образом, трубопроводную гиперемию.
    goatpig сейчас офлайн Пожаловаться на goatpig   Ответить с цитированием Мультицитирование сообщения от goatpig Быстрый ответ на сообщение goatpig

    18 мая 2011, 1:21:43 AM   # 8
     
     
    Сообщения: 1652
    Цитировать по имени
    цитировать ответ
    по умолчанию Re: Почему так много «инлайн»?

    Мое эмпирическое правило "никогда не встроенные методы длиной более 1 линия."

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

    Но я старомодный C ++ кодировщик, дети в эти дни, кажется, хотят, чтобы поместить весь код в .hpp файлов.
    Гэвин Андресен сейчас офлайн Пожаловаться на Гэвин Андресен   Ответить с цитированием Мультицитирование сообщения от Gavin Andresen Быстрый ответ на сообщение Гэвин Андресен

    18 мая 2011, 3:12:10 AM   # 9
     
     
    Сообщений: 98
    Цитировать по имени
    цитировать ответ
    по умолчанию Re: Почему так много «инлайн»?

    Некоторые моменты, о «инлайн».

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

    Рассмотрим следующий код:

    Код:
    базовый класс
    {
    общественности:
        виртуальная пустота SomeFunction ()
        {
            соиЬ << "В базовой :: SomeFunction" << епсИ;
        }
    };

    класс, производный: общественные базы
    {
    общественности:
        виртуальная пустота SomeFunction ()
        {
            соиЬ << "В производном :: SomeFunction" << епсИ;
        }
    };

    недействительными F ()
    {
        полученный д;
        d.SomeFunction ();
    }

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

    Код:
    недействительными F ()
    {
        соиЬ << "В производном :: SomeFunction" << епсИ;
    }

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

    Редактировать: Незначительное изменение убирать неправильно подобранные метки «список»
    Джим Hyslop сейчас офлайн Пожаловаться на Jim Hyslop   Ответить с цитированием Мультицитирование сообщения от Jim Hyslop Быстрый ответ на сообщение Jim Hyslop

    18 мая 2011, 4:34:07 PM   # 10
     
     
    Сообщения: 812
    Цитировать по имени
    цитировать ответ
    по умолчанию Re: Почему так много «инлайн»?

      • встраивание не является универсальным "плохая идея", Это, конечно, не снижает производительность. Это может значительно увеличить размер объекта.

      Неправильно. Увеличение размера кода уменьшается к кэшу скорости, снижение производительности.
      Не всегда. Это зависит от того, будет ли код, пригодный в кэше, в первую очередь. Или нет ли он больше не подходит с встраиванием. Следствие: уменьшение размера кода, конечно, не всегда увеличивает производительность.
      котировка
      котировка
      • Наконец: встраивание может быть опасным во время многократных циклов компиляции, если изменения функции, если зависимые модули не перекомпилировать, так как старую версию функции могли быть встроены в другой модуль, и вы в конечном итоге с модулем А с встраиваемыми version1 и модулем B встраиваемом version2.

      Это просто глупо. Если это происходит, есть ошибка в системе сборки.

      Нет серьезные программисты беспокоятся по этому поводу.
      Включать файлы не всегда должным образом объявляются в качестве зависимостей в Makefiles. Я могу вам сказать, из первых рук, что ошибки случаются из-за этого. Исправлена ​​ошибка в файле сборки еще ошибка. Это не аргумент против встраивания, хотя, только повод быть осторожными.

      котировка
      котировка
      • Объявляет функцию «статический» в программе C, когда эта функция не объявлена ​​в заголовке означает, что символ не экспортируется, и позволяет компилятору встраивать как это считают нужным. «Инлайн» являются совершенно ненужными, чтобы сделать функцию встраиваемой.
      Эти два утверждения не совпадают. Если ты хочешь "делать" (Сила) функция быть встраиваемыми, то вы явно не хотите оставить это решение для компилятора.
      Вы можете указать ключевое слово инлайн, но компилятор не обязательно будет слушать вас. Некоторые компиляторы имеют специальные прагмы, чтобы заставить встраивание, но они не являются частью стандарта C ++.

      [/список]
      Wumpus сейчас офлайн Пожаловаться на Wumpus   Ответить с цитированием Мультицитирование сообщения от Wumpus Быстрый ответ на сообщение Wumpus

      

      Как заработать Биткоины?

      Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

      bitcoin-zarabotat.ru
      Почта для связи: bitcoin-zarabotat.ru@yandex.ru

      3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW