AXForum  
Вернуться   AXForum > Прочие обсуждения > Курилка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.02.2017, 01:11   #1  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
Попробовал через System.Numerics.BigInteger
Если без преобразования результата к аксаптовскому типу str, то летает как и у Андре - не успеешь моргнуть. Для 10000 элементов.
Но!
Если выводить в инфолог, то надо присваивать переменной типа str. И вот тут-то для 10000 элементов Аксапта работает несколько минут.
За это сообщение автора поблагодарили: mazzy (2).
Старый 12.02.2017, 01:14   #2  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
Вот такой джоб.
Если закомметировать две этих строки, то отрабатывает моментально. Но если надо вывести в инфолог, то работает несколько минут для 10000 элементов.
X++:
       s = t.ToString();
        info(strFmt("%1: %2", i, s));
X++:
static void Job121(Args _args)
{
    int fibonacciSize = 10000;
    int i;
    System.Numerics.BigInteger x;
    System.Numerics.BigInteger y;
    System.Numerics.BigInteger t;
    str s;
    ;
    x = new System.Numerics.BigInteger(0);
    y = new System.Numerics.BigInteger(1);
    s = x.ToString();
    info(strFmt("1: %1", s));
    s = y.ToString();
    info(strFmt("2: %1", s));
    for (i = 3; i <= fibonacciSize; i++)
    {
        t = System.Numerics.BigInteger::Add(x, y);
        s = t.ToString();
        info(strFmt("%1: %2", i, s));
        x = y;
        y = t;
    }
}
Старый 12.02.2017, 01:48   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
мы просто вместе пишем. я не видел джобика пока писал свое сообщение.

Цитата:
Сообщение от Ace of Database Посмотреть сообщение
X++:
...
    for (i = 3; i <= fibonacciSize; i++)
...
о! а у меня - косяк! )))))
да, цикл правильно начинаеть не с нуля, как в моем джобе ))))
Старый 12.02.2017, 01:17   #4  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
Мой вывод такой. System.Numerics.BigInteger эффективно использовать для большого количества внутренних расчетов. Но присвоение этой переменной к аксаптовскому типу str очень медленное для больших чисел. Похоже, что оно медленне, чем мой код на X++, который запихивает большие числа в массив из 1000 чисел типа int64.
Старый 12.02.2017, 01:42   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Ace of Database Посмотреть сообщение
Мой вывод такой. System.Numerics.BigInteger эффективно использовать для большого количества внутренних расчетов. Но присвоение этой переменной к аксаптовскому типу str очень медленное для больших чисел. Похоже, что оно медленне, чем мой код на X++, который запихивает большие числа в массив из 1000 чисел типа int64.
не думаю, что присвоение.
мне кажется, что здесь плохо работает сборщик мусора.

опять же, на 2012 стоит попробовать на клиенте и на сервере. со включенным CIL и с выключенным.
Старый 12.02.2017, 01:49   #6  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
Отредактировал Job120, Теперь он показывает порядковый номер числа Фибоначчи. И выводит ровно столько элементов ряда, сколько было заказано. Раньше выводил на 2 элемента больше - не считал первые два 0 и 1.
За это сообщение автора поблагодарили: mazzy (2), Raven Melancholic (5).
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 04:51.