![]() |
#21 |
Участник
|
Интересно, что это происходит через XML каковой можно получить через API. То есть на DictXXX классах есть методы, представляющие P-Code в виде XML.
|
|
![]() |
#23 |
Участник
|
Цитата:
Сообщение от belugin
![]() Еще есть разные факторы - в .NET используется недетерминированный сборщик мусора, а в X++ детерминированный (он должен убрать мусор сразу как только нет на него ссылок). В результе X++ при каждом присваивании считает циклы - что дает квадратичный, кажется, прирост времени выполнения при присваиваниях полей классов с развесистым графом объектов, например, в разноске больших журналов.
Т.е., например, такой метод : \Classes\InventUpd_Financial\parmLedgerVoucher X++: LedgerVoucher parmLedgerVoucher(LedgerVoucher _ledgerVoucher = ledgerVoucher)
{
;
ledgerVoucher = _ledgerVoucher;
return ledgerVoucher;
} X++: LedgerVoucher parmLedgerVoucher(LedgerVoucher _ledgerVoucher = null) { ; if ( !prmIsDefault(_ledgerVoucher) ) { ledgerVoucher = _ledgerVoucher; } return ledgerVoucher; } |
|
![]() |
#24 |
Участник
|
|
|
![]() |
#25 |
Участник
|
|
|
![]() |
#26 |
Ищущий знания...
|
Цитата:
Подробностей уже не помню, но точно помню, что закономерности в сбоях этой функции так и не нашел...
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
![]() |
#27 |
Участник
|
Ужас.
Не знал про такие глюки. Может вспомните при каких условиях было ? |
|
![]() |
#28 |
Ищущий знания...
|
Цитата:
![]() По результатам отпишусь.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
![]() |
#29 |
Участник
|
Вы не путаете со случаем когда в качестве параметра передается значение совпадающее со значением по умолчанию ? В таких случаях prmIsDefault() возвращает false и это правильно. Т.е. эта функция не просто значения сравнивает, а на самом деле смотрит передано что-то было или нет.
|
|
![]() |
#30 |
Ищущий знания...
|
Цитата:
В памяти есть некие смутные воспоминания с чем это было связано, но пока не проверю не хочу озвучивать, что бы не сбивать общественность с толку ![]()
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
![]() |
#31 |
Ищущий знания...
|
Цитата:
Одно из трех,
надеюсь, что это третий вариант ![]()
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
![]() |
#32 |
Участник
|
Цитата:
Сообщение от lev
![]() Погонял разные варинаты использования этой функции, никаких проблем не выявилось...
Одно из трех,
надеюсь, что это третий вариант ![]()
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy |
|
![]() |
#33 |
Ищущий знания...
|
Цитата:
![]()
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
|
За это сообщение автора поблагодарили: Logger (3). |
![]() |
#34 |
Участник
|
на чистой 3ке без сп и кр проверяли?
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy |
|
![]() |
#35 |
Ищущий знания...
|
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
![]() |
#36 |
Участник
|
Цитата:
Не факт, что присваивани, которое не изменяет полей объектов приводит к пересчету циклов. Попробуйте провести эксперимент. |
|
![]() |
#37 |
Участник
|
Цитата:
Когда я оптимизировал разноску закупки с 1000 строк и 8000 записей в логе корреспонденции, то выполнение этого метода \Classes\InventUpd_Financial\parmLedgerVoucher Стабильно длилось примерно 4,5 миллисекунды. Мелочь, конечно, можно и внимания не обращать, но для простого копирования ссылки все же многовато. |
|
Теги |
.net, x++, полезное, сборка мусора |
|
|