Оптимизации отключены для обоих компиляторов. Со включенной оптимизацией вообще очень сложно сравнивать.
Но интерес был в том, как свести к минимуму эти тормоза.
А я думал оптимизировать алгоритм перевода.
Ну как бы и то, и то.
В сторону нестандартного аллокатора как-то не смотрел. Думаешь что-то можно выжать, если в функции используется только конструктор std::string(const char *) для возврата результата? При условии, что возвращаемая строка не будет ссылаться на статическую переменную-буфер функции.
Думаешь что-то можно выжать, если в функции используется только конструктор std::string(const char *) для возврата результата?
Думаю, что можно, но только на большом очень большом кол-ве вызовов,
особенно при загруженной системе с малым количеством свободной памяти.
В обычной же ситуации, скорее всего, мы получим замедление.
Как-то исследовал разные аллокаторы,
так вот оказалось, что стандартный работает лучше всех,
во всяком случае, во всех тестах что я проводил,
если не указывать контейнерам аллокатор, то оно работает быстрее.
Никакие аллокаторы из буста и других библиотек не одолели,
хотя, думаю, можно подобрать узкие тесты, где они победят.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Оптимизации отключены для обоих компиляторов. Со включенной оптимизацией вообще очень сложно сравнивать.
Ну как бы и то, и то.
В сторону нестандартного аллокатора как-то не смотрел. Думаешь что-то можно выжать, если в функции используется только конструктор
std::string(const char *)
для возврата результата? При условии, что возвращаемая строка не будет ссылаться на статическую переменную-буфер функции.Думаю, что можно, но только на большом очень большом кол-ве вызовов,
особенно при загруженной системе с малым количеством свободной памяти.
В обычной же ситуации, скорее всего, мы получим замедление.
Как-то исследовал разные аллокаторы,
так вот оказалось, что стандартный работает лучше всех,
во всяком случае, во всех тестах что я проводил,
если не указывать контейнерам аллокатор, то оно работает быстрее.
Никакие аллокаторы из буста и других библиотек не одолели,
хотя, думаю, можно подобрать узкие тесты, где они победят.