AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.01.2017, 16:20   #12  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
В .NET на больших массивах самое эффективное использовать StringBuilder.
Вполне логично предположить что TextBuffer его полный аналог, а с компиляцией в IL возможно что по сути тот же IL код. То есть рекомендации ниже должны подходить и для TextBuffer.

Цитата:
Определённо используйте StringBuilder, когда вы конкатенируете строки в нетривиальном цикле, и особенно, когда вы не знаете (на момент компиляции), сколько именно итераций будет произведено. К примеру, чтение содержимого текстового файла путём считывания по одному символу внутри одной итерации в цикле, и конкатенация этого символа через оператор += предположительно «убьёт» ваше приложение в плане производительности.

Определённо используйте оператор +=, если вы можете указать все необходимые для конкатенации строки в одном утверждении. Если вам нужно конкатенировать массив строк, используйте явный вызов String.Concat, а если между этими строками нужен разделитель — используйте String.Join.
Статья 2013 года, но StringBuilder вполне себе живой и сейчас.
https://habrahabr.ru/post/166701/

P.S. Кстати интересно стоимость вызова и использования System.Text.StringBuilder вместо TextBuffer. Если это ничего не стоит когда в IL, то может лучше сразу .NET использовать?

Последний раз редактировалось ax_mct; 19.01.2017 в 16:27.
За это сообщение автора поблагодарили: mazzy (2), Logger (3), Товарищ ♂uatr (1).
Теги
.net, cil, p-code, string, бега сферических коней;, производительность

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Помогите найти справку разработчика! FrolovAndy DAX: Программирование 4 19.02.2013 21:40
Нечеткое сравнение строк Logger DAX: Программирование 7 14.10.2010 20:55
Помогите найти тему про if (recordBuffer) kashperuk DAX: Программирование 6 27.11.2008 11:25
Баг? Сравнение строк длиной более 32767 символов vallys DAX: База знаний и проекты 6 16.07.2008 12:18
Помогите найти доку vitart DAX: Администрирование 18 03.07.2003 16:10

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:08.