Какой лучший способ добавить StrBuf в StrBuf?

У меня есть серия объектов StrBuf, и я хочу узнать, как наиболее эффективно объединить их вместе.

Там есть add() метод, но документы говорят: " Добавить x.toStr в конец этого буфера". Если я буду делать это снова и снова и снова, я представляю, что StrBuf.toStr() не тот исполнитель.

(Я знаю, что реальный ответ - просто использовать один StrBuf, но приколите меня здесь!)

Приветствия.

ОБНОВИТЬ:

Глядя на исходный код Java, под капотом StrBuf использует Java StringBuilder который использует массив символов в качестве внутреннего буфера. Так @Adrianда, важно иметь большой начальный буфер.

Так далеко как StrBuf.toStr() обеспокоен тем, что новая строка Java создается с использованием Arrays.copyOfRange() - что разумно, но не нужно, учитывая, что есть append(StringBuffer sb) метод.

2 ответа

Решение

Не совсем - в StrBuf для этого случая нет оптимизаций. Вы видите проблемы с производительностью, что у вас есть сегодня?

Как правило, для наших API мы обойдем OutStream экземпляр из StrBuf.out а не фактический StrBuf пример. Не уверен, поможет ли это вашему делу или нет.

Я полагаю, вы могли бы создать новый StrBuf с достаточно большой емкостью:

capacity
    Int capacity
    The number of characters this buffer can hold without allocating more memory.

make
    new make(Int capacity := 16)
    Create with initial capacity (defaults to 16)
Другие вопросы по тегам