Показать сообщение отдельно
Старый 07.01.2020, 16:50   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от belugin Посмотреть сообщение
Думаю, нет, так как string иммутабельный в X++ и .NET FW. Возможно, можно снизить количество копирований при помощи StringBuilder/TextBuffer
я наверное неточно выразился.
я имею в виду строку 195-197 здесь:
https://github.com/mazzy-ax/SysStrin...ss_SysText.xpp

Цитата:
Сообщение от belugin Посмотреть сообщение
С одной стороны, если прокешировать скомпилированный RegEx, скорее всего, он будет работать быстрее чем find. С другой стороны, сам со себе вызов .NET из X++ не скомпилированного в IL тормозил на 4, кажется. Надо бенчмаркать, наверное.
во-во.
я делал и так, и эдак. решил оставить find.
но вдруг чего пропустил или не учел.

Цитата:
Сообщение от belugin Посмотреть сообщение
Статические методы более очевидны (явно что является аргументом, что результатом), но в X++ синтаксис вызова многословен. Но я бы за статические проголосовал.
угу.

Цитата:
Сообщение от belugin Посмотреть сообщение
В IL вот это должно свалиться
X++:
 TextBuffer  ret         = new TextBuffer();
...
// InvalidCastException так как public static SysText construct(str s = '')
ret = SysText::construct(text.subStr(startPos, endPos - startPos + 1));
...
SysText - наследник. Не должно.
Но согласен - не красиво. Исправлю.

И записал себе в чеклист - запускать тесты и на сервере со включенным CIL
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: belugin (10).