Тема: .NET CLR vs X++
Показать сообщение отдельно
Старый 30.11.2011, 18:40   #9  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,984 / 3273 (117) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от 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;
}