Мне кажется логичным, что на 64-битном ядре компиляция для оптимизации по размеру может помочь в целом. (Мой дистрибутив по выбору использует -O2). Он обладает преимуществами большего количества регистров и памяти и, возможно, меньшим объемом кэш-памяти, чем обычный оптимизированный код. У меня есть ядро, скомпилированное таким образом, и оно кажется превосходным. Однако мой вопрос, как я могу доказать это? Мне нравится использовать Phoronix для эталонных тестов "реального мира", поэтому я бы предпочел тестировать подобные случаи. Что я должен выбрать, чтобы проверить? У кого-нибудь еще есть альтернативы? Заранее большое спасибо.
1 ответ
Если ваше скомпилированное ядро "кажется превосходным", я думаю, вам не стоит его сравнивать, вот почему:
Проблема с эталонами всегда будет заключаться в выборе типов нагрузок, которые вы тестируете.
Даже если Phoronix Test Suite подходит для выделения различий между различными ревизиями ядра, вы не можете использовать его самостоятельно, чтобы доказать, что ваше ядро работает лучше для вашей собственной нагрузки, потому что вы не выполняете для него одни и те же операции изо дня в день.
Если вы все еще хотите попробовать это:
Возможно, вы могли бы попробовать сравнить приложения, которые вы используете большую часть времени, или те, кому требуется много времени (3D-рендеринг / компиляции / запросы в стиле OLAP, также как создание кубов / радужных таблиц ...), чтобы увидеть, сможете ли вы найти снова.
Лично я очень сомневаюсь, что вы увидите реальное (измеримое, повторяемое) ускорение с -O на современном настольном ЦП (хотя встроенный ЦП может получить некоторую производительность). Немного более агрессивные оптимизации с -O2 (исходная статья) могут быть более интересными, чем наименьший размер ядра -Os.
Если вам нужно больше информации / вы хотите более подробно поговорить об оптимизации gcc, вы можете перейти по каналу #gentoo на freenode IRC или на форумах gentoo, но помните: просто не упоминайте термин "ricer" ^^