24.08.2011, 23:58 | #21 |
Участник
|
Интересно, что это происходит через XML каковой можно получить через API. То есть на DictXXX классах есть методы, представляющие P-Code в виде XML.
|
|
30.11.2011, 18:40 | #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; } |
|
01.12.2011, 11:24 | #24 |
Участник
|
|
|
01.12.2011, 11:43 | #25 |
Участник
|
|
|
01.12.2011, 12:33 | #26 |
Ищущий знания...
|
Цитата:
Подробностей уже не помню, но точно помню, что закономерности в сбоях этой функции так и не нашел...
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
01.12.2011, 13:26 | #27 |
Участник
|
Ужас.
Не знал про такие глюки. Может вспомните при каких условиях было ? |
|
01.12.2011, 13:28 | #28 |
Ищущий знания...
|
Цитата:
По результатам отпишусь.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
01.12.2011, 13:48 | #29 |
Участник
|
Вы не путаете со случаем когда в качестве параметра передается значение совпадающее со значением по умолчанию ? В таких случаях prmIsDefault() возвращает false и это правильно. Т.е. эта функция не просто значения сравнивает, а на самом деле смотрит передано что-то было или нет.
|
|
01.12.2011, 14:10 | #30 |
Ищущий знания...
|
Цитата:
В памяти есть некие смутные воспоминания с чем это было связано, но пока не проверю не хочу озвучивать, что бы не сбивать общественность с толку
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
01.12.2011, 16:15 | #31 |
Ищущий знания...
|
Цитата:
Одно из трех,
надеюсь, что это третий вариант
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
01.12.2011, 16:24 | #32 |
Участник
|
Цитата:
Сообщение от lev
Погонял разные варинаты использования этой функции, никаких проблем не выявилось...
Одно из трех,
надеюсь, что это третий вариант
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy |
|
01.12.2011, 16:33 | #33 |
Ищущий знания...
|
вот я тоже так думал, но при тесте функция отработала нормально
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
|
За это сообщение автора поблагодарили: Logger (3). |
01.12.2011, 16:52 | #34 |
Участник
|
на чистой 3ке без сп и кр проверяли?
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy |
|
01.12.2011, 16:57 | #35 |
Ищущий знания...
|
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
01.12.2011, 17:14 | #36 |
Участник
|
Цитата:
Не факт, что присваивани, которое не изменяет полей объектов приводит к пересчету циклов. Попробуйте провести эксперимент. |
|
01.12.2011, 20:33 | #37 |
Участник
|
Цитата:
Когда я оптимизировал разноску закупки с 1000 строк и 8000 записей в логе корреспонденции, то выполнение этого метода \Classes\InventUpd_Financial\parmLedgerVoucher Стабильно длилось примерно 4,5 миллисекунды. Мелочь, конечно, можно и внимания не обращать, но для простого копирования ссылки все же многовато. |
|
Теги |
.net, x++, полезное, сборка мусора |
|
|