LINUX.ORG.RU

Chrome и магия LTO?

 ,


0

2

Решил посмотреть что из себя представляет ungoogled-chromium, поэтому собрал его из сорцов на генте. 2.5 часа с lto…

Чего я не ожидал, так это прироста «производительности». В бенче https://browserbench.org/Speedometer2.0/ :

  • google-chrome-bin - 135.5
  • ungoogled-chromium - 152.4

Почти 10% прирост на ровно месте. В обоих тестах использовался чистый профиль.

Есть объяснение такому поведению?

★★★★★

Есть объяснение такому поведению?

Да - раздельная компиляция - мусор. Ты там ещё jumbo-build выруби - будет собирать целый день и профита будет ещё больше.

Это же очевидные вещи. Оптимизатору не доступны тела функций - их невозможно оптимизировать. Точно так же ему могут быть недоступны типы и прочее.

mamos3
()
Ответ на: комментарий от mamos3

Кто сказал, что гугл собирает свой бинарь без lto? Они и pgo могут себе позволить.

jumbo-build уже выкинули. Как минимум в генте нет уже такого флага.

RazrFalcon ★★★★★
() автор топика
Ответ на: комментарий от RazrFalcon

Кто сказал, что гугл собирает свой бинарь без lto?

беглый гуглинг показал что они используют lto, но собирают с помощью clang. Может ещё какие-то флаги отличается в сборке…

fsb4000 ★★★★★
()
Ответ на: комментарий от RazrFalcon

Кто сказал, что гугл собирает свой бинарь без lto?

А кто сказал, что с ним? Непонятно чем там они собирают и непонятно насколько стабильно это lto работает. Это для начала нужно только узнать - есть там lto в их бинарях.

jumbo-build уже выкинули.

нет.

Как минимум в генте нет уже такого флага.

Как минимум теперь их просто нельзя вырубить.

mamos3
()
Ответ на: комментарий от mamos3

Вот ссылки которые мне выдал гугл:

  1. http://blog.llvm.org/2018/03/clang-is-now-used-to-build-chrome-for.html

We now use Clang to build Chrome for all platforms it runs on: macOS, iOS, Linux, Chrome OS, Android, and Windows.

  1. https://chromium.googlesource.com/chromium/src.git/+/master/docs/clang.md#Using-gcc-on-Linux

Clang

Chromium ships a prebuilt clang binary. It’s just upstream clang built at a known-good revision that we bump every two weeks or so.

This is the only supported compiler for building Chromium.

is_clang = false will make the build use system gcc on Linux. There are no bots that test this and there is no guarantee it will work, but we accept patches for this configuration.

fsb4000 ★★★★★
()
Ответ на: комментарий от fsb4000

Ну тогда вариантов не много. Либо он собирал более новой версией шланга(либо с иными флажками оптимизации), либо lto в шланге говно. Да и он там и так говно.

mamos3
()

Запакетируй текущую сборку, собери без pgo с теми же флагами - сравни.

mamos3
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.