Re[2]: быстрый sprintf
От: maks1180  
Дата: 01.11.22 17:58
Оценка:
_>Для C реализовать функцию
_>
_>int format_string(const char* format, va_list args, void (*write)(void* ctx),const char* chunk,int chunk_size), void *ctx);
_>

_>где write(ctx,chunk,chunk_size) записывает фрагмент данных (или просто складывает chunk_size в зависимости от потребностей).
_>И на её основе сделать все остальные варианты.

Тут будет выделяться буффер ограниченного размера, когда конечный размер неизвестен, поэтому возвращаемся к началу топика
"передача размера буффера отпадает, так как придеться постоянно проверять не вышли ли мы за границы буфера, что существенно снизит скорость."

Т.е. выделили мы первый блок Х байт, заполняем его, мы же должны проверять не вышли ли мы за его границы.
При копировании строки заранее неизвестной длины, мы должны делать проверку после записи каждого байта! Думаю такая проверка может снизить скорость в 1.5 раза.
===============================================
(реклама, удалена модератором)
Отредактировано 01.11.2022 18:06 maks1180 . Предыдущая версия . Еще …
Отредактировано 01.11.2022 18:05 maks1180 . Предыдущая версия .
Отредактировано 01.11.2022 18:04 maks1180 . Предыдущая версия .
Отредактировано 01.11.2022 18:01 maks1180 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.