У меня есть список с каждой строкой текста:
STARTTIMING: main
| STARTTIMING: loop
| | STARTTIMING: doSomeStuff()
| | STOPTIMING: doSomeStuff() 1ms
| | STARTTIMING: doSomeStuff()
| | STOPTIMING: doSomeStuff() 1ms
| STOPTIMING: loop 5ms
STOPTIMING: main 5ms
Я знаю, как отформатировать его с помощью "грубой силы", но как только это приложение для измерения производительности, каков быстрый способ печати строк в формате, показанном выше (отступ правильно и вставка вертикальных баров) в Java?
Современная JVM оптимизирует конкатенацию строк для вас. Я бы не стал пытаться перехитрить его, если вы не делаете что-то очень болезненное. Я не могу сказать, есть ли у вас, так как вы не опубликовали свой фактический код.
Здесь немного помощи
indentString = new String(new char[indentCount]).replace("\0", "|");
что я украл отсюда
Кроме того, если вы хотите сказать, что беспокоитесь о времени, которое занимает конкатенация, потому что она часть кода измерения времени, а затем для оценки Торса измеряет разницу во времени, прежде чем делать какое-либо конкатенирование или что-то еще.
StringBuilder
или просто обычныйString
?STARTTIMING: main
,STARTTIMING: loop
,STOPTIMING: doSomeStuff() 1ms
в каждой позиции массива. Мой алгоритм должен решить, когда идент и сколько идентов.