<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Влияние несущественных изменений кода на производительность ...</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/115526.html</link>
    <description>Nadav Amit, разработчик ядра Linux из компании VMware, поделился (https://nadav.amit.zone/blog/linux-inline) результатом исследования особенностей оптимизации в GCC небольших функций ядра. Исследование было проведено после того, как разработчик столкнулся с непонятным феноменом - внесение несущественных изменений в код ядра, приводило к небольшому, но заметному снижению производительности в тестах. Примечательно, что подобные вносимые изменения были оптимизациями и теоретически должны были увеличить производительность, но на деле производительность падала.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Дело оказалось в том, что GCC принимает решение об использовании inline-развёртывания функций в зависимости от результатов косвенной оценки размера результирующего кода (даже если функция определена с  ключевым словом &quot;inline&quot;). Компилятор не учитывает фактический размер результирующего кода, а пытается прогнозировать его. Для ассемблерных вставок прогнозирование делается на основе числа переводов строк (&quot;&amp;#92;n&quot;) и разделителей (&quot;;&quot;) в исходном тек</description>

<item>
    <title>Влияние несущественных изменений кода на производительность ... (irinat)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/115526.html#85</link>
    <pubDate>Sat, 20 Oct 2018 21:11:19 GMT</pubDate>
    <description>inline был хинтом компилятору только в расширениях gnu89. В c99 ввели понятие inline, и оно с тех пор не связано с инлайнингом напрямую.&lt;br&gt;</description>
</item>

<item>
    <title>Влияние несущественных изменений кода на производительность ... (Аноним)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/115526.html#84</link>
    <pubDate>Mon, 15 Oct 2018 16:43:10 GMT</pubDate>
    <description>&amp;gt; откуда в  JavaScript-движке &quot;inline assembly&quot;?&lt;br&gt;&lt;br&gt;V8 генерирует машинный код. При этом часть функций инлайнится, так же как и при компиляции из других языков. Решение о том, инлайнить код или нет, судя по комментарию, принимается с учетом пробелов.&lt;br&gt;</description>
</item>

<item>
    <title>Влияние несущественных изменений кода на производительность ... (Аноним)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/115526.html#83</link>
    <pubDate>Mon, 15 Oct 2018 16:15:52 GMT</pubDate>
    <description>JavaScript движок под названием V8, версия движка 5.9. Что не понятно?&lt;br&gt;</description>
</item>

<item>
    <title>Влияние несущественных изменений кода на производительность ... (Аноним)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/115526.html#82</link>
    <pubDate>Mon, 15 Oct 2018 16:10:39 GMT</pubDate>
    <description>При чем здесь питон? Речь про C/C++.&lt;br&gt;</description>
</item>

<item>
    <title>Влияние несущественных изменений кода на производительность ... (0xd34df00d)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/115526.html#81</link>
    <pubDate>Sat, 13 Oct 2018 00:28:56 GMT</pubDate>
    <description>&amp;gt; наверняка войдет и в c++2x&lt;br&gt;&lt;br&gt;Оно не войдет в C++ никогда, ибо ломает систему типов рядом с темплейтами.&lt;br&gt;</description>
</item>

<item>
    <title>Влияние несущественных изменений кода на производительность ... (sage)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/115526.html#80</link>
    <pubDate>Fri, 12 Oct 2018 16:34:06 GMT</pubDate>
    <description>Да. https://github.com/rianhunter/wasmjit&lt;br&gt;</description>
</item>

<item>
    <title>Влияние несущественных изменений кода на производительность ... (Andrey Mitrofanov)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/115526.html#79</link>
    <pubDate>Fri, 12 Oct 2018 14:34:46 GMT</pubDate>
    <description>Удивиился, что не Фороникс,&lt;br&gt;   https://lwn.net/Articles/767884/rss&lt;br&gt;обнаружив сабж на.&lt;br&gt;&lt;br&gt;Бывает же?!&lt;br&gt;</description>
</item>

<item>
    <title>Влияние несущественных изменений кода на производительность ... (Аноним)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/115526.html#78</link>
    <pubDate>Fri, 12 Oct 2018 11:04:15 GMT</pubDate>
    <description>&amp;gt; Register так вообще считается deprecated, в плюсах им вообще пользоваться не следует. &lt;br&gt;&lt;br&gt;Да-да. Давеча вот такое видел от GCC 8:&lt;br&gt;&lt;br&gt;warning: ISO C++17 does not allow &amp;#8216;register&amp;#8217; storage class specifier &#091;-Wregister&#093;&lt;br&gt;</description>
</item>

<item>
    <title>Влияние несущественных изменений кода на производительность ... (Аноним)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/115526.html#77</link>
    <pubDate>Fri, 12 Oct 2018 09:07:06 GMT</pubDate>
    <description>&amp;gt;сам догадывается&lt;br&gt;&lt;br&gt;я проверял, у меня он догадывался на простом счётчике для перебора массива только после компиляции с инфой профилирования (pgo), разница производительности что-то там в районе 3-4 порядков была. Просто космос. Добиться такого же результата позволяло добавление register, поэтому говорить можно что угодно.&lt;br&gt;</description>
</item>

</channel>
</rss>
