Показать сообщение отдельно
Старый 07.01.2020, 17:43   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
поправил, опубликовал https://github.com/mazzy-ax/SysStrin...435f4504628ad9
спасибо.

Цитата:
Сообщение от belugin Посмотреть сообщение
Я бы сначала отпрофилировал, потом бы начал оптимизировать. Возможно, на типичной нагрузке для этого метода еще одно копирование пофиг.
профилировал.
копирование здесь единственное.

тут такое соображение:
1. в аргументе текст из textBuffer
2. если textBuffer приходит одним сегментом, то пофиг. Беспокоит только память на промежуточный буфер.
3. если же textBuffer долго и упорно собирали из кусков кода, то в строке 195 будет достаточно долго собираться один сегмент в промежуточном буфере. И память опять же.

Другими словами, проблема не столько в копировании.
Сколько в том, что в этом месте textBuffer должен будет объединить ВСЕ сегменты текста. хотя теоретически этого можно и не делать, если б метод changeIdent умел работать с позицями начала и конца. Но с позициями он у меня получается слишком сложным и неустойчивым.

Цитата:
Сообщение от belugin Посмотреть сообщение
Тогда ИМХО либо не наследник либо не статические методы (все, которые получают экземпляр SysText).
Вот-вот. В этом и вопрос. Я решил, что статические. Но...
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 07.01.2020 в 17:57.