История изменений
Исправление static_lab, (текущая версия) :
Как по мне имелось ввиду что просто перекомпилировав с обновленной стандартной библиотекой можно было бы сразу получить большую производительность. А так надо код переписывать.
Так если не нуль-терминированные строки использовать, а строки с заранее известной длиной, то копирование такой строки сводится условно к библиотечной memcpy, которая уже хорошо оптимизирована.
Кстати без интринсиков у меня получилось заставить GCC vmovdqu64 использовать, которая по 64 байта копирует: https://godbolt.org/z/GxxobEMYY
Исправление static_lab, :
Как по мне имелось ввиду что просто перекомпилировав с обновленной стандартной библиотекой можно было бы сразу получить большую производительность. А так надо код переписывать.
Так если не нуль-терминированные строки использовать, а строки с заранее известной длиной, то копирование такой строки сводится условно к библиотечной memcpy, которая уже хорошо оптимизирована.
Кстати без интринсиков у меня получилось заставить GCC только vmovdqu64 использовать, которая по 64 байта копирует: https://godbolt.org/z/GxxobEMYY
Исходная версия static_lab, :
Как по мне имелось ввиду что просто перекомпилировав с обновленной стандартной библиотекой можно было бы сразу получить большую производительность. А так надо код переписывать.
Так если не нуль-терминированные строки использовать, а строки с заранее известной длиной, то копирование такой строки сводится условно к библиотечной memcpy, которая уже хорошо оптимизирована.
Кстати без интринсиков у меня получилось заставить GCC только vmovdqu использовать, которая по 32 байта копирует: https://godbolt.org/z/916rshW7f