Какой лучший способ добавить 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)