|
![]() |
#1 |
Участник
|
Основные выводы :
1. Старый способ упаковки-распаковки через X++ методы (как в Global классе 2009-й версии) никуда не годятся и тормозят (примерно в 100 раз медленнее чем методы ядра). Ну это и так было очевидно. 2. Способ упаковки/распаковки con = [salesTable] salesTable = conPeek(con, 1) [salesTable] = con очень быстрый - примерно такой же по скорости как и новые методы ядра введенные в 2012-й версии. (Правда содержит неприятный баг при упаковке наследуемых табличек. Подробности тут sashanazarov: Table inheritance and collection objects) В связи с этим непонятно чем так гордились (https://blogs.msdn.microsoft.com/axp...amics-ax-2012/) разработчики ядра 2012-й версии - время упаковки распаковки практически не изменилось. Или они сравнивали с x++ методами ? 3. С учетом наличия багов в 2012-й версии лучше использовать новый метод (вызовы con2buf и buf2con прямо на буфере). 4. В 2012-й вызов Global::con2Buf() может раза в 1,5-2 проигрывать по скорости вызову buffer.conbuf() (вероятно из-за пересоздания объектов и обращения к Dict классам) 5. Если наследования табличек нет, то при переходе с 2009-й на 2012-ю можно оставить старый способ паковки распаковки буферов в контейнер (con = [buffer] и buffer = conPeek(con,1). Соответственно, сэкономить время на переделку кода. Старый способ упаковки имеет еще преимущество при отладке, так как в отладчике видно содержимое контейнера и можно посмотреть все поля буфера. А новый способ покажет обычный blob по которому ничего непонятно. Последний раз редактировалось Logger; 16.02.2017 в 18:17. |
|
|
За это сообщение автора поблагодарили: raz (10), Raven Melancholic (5), -DocSerzh- (1), _scorp_ (5). |