Информация об изменениях

Сообщение Re[4]: быстрый sprintf от 02.11.2022 10:06

Изменено 02.11.2022 11:00 maks1180

Re[4]: быстрый sprintf
M>>При копировании строки заранее неизвестной длины, мы должны делать проверку после записи каждого байта! Думаю такая проверка может снизить скорость в 1.5 раза.
_>Где вы увидели неизвестную длину?

Здесь например, срока p — имеет неизвестную длину
sprintf(buffer, "%s", p);

Посмотрел я реализацию в glibc (файл vfprintf-internal.c)там действительно сначало определяют длину строки "p", а потом уже её отдают в _IO_sputn
Получается делают в 2 прохода по строке "p"!
Re[4]: быстрый sprintf
M>>При копировании строки заранее неизвестной длины, мы должны делать проверку после записи каждого байта! Думаю такая проверка может снизить скорость в 1.5 раза.
_>Где вы увидели неизвестную длину?

Здесь например, срока p — имеет неизвестную длину
sprintf(buffer, "%s", p);

Посмотрел я реализацию в glibc-2.36 (файл vfprintf-internal.c)там действительно сначало определяют длину строки "p", а потом уже её отдают в _IO_sputn
Получается делают в 2 прохода по строке "p"!