Цитата:
Сообщение от
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;
}