Update performance regression
От: Ночной Смотрящий Россия  
Дата: 19.04.21 07:45
Оценка:
Старый ишью — https://github.com/linq2db/linq2db/issues/2556
Хоть и закрыт, но не починился. Обновил еще раз в существующем проекте — получил те же тормоза. Времени на то чтобы выдернуть кусок для воспроизведения, увы, пока нет совсем. Приходится по прежнему оставаться на 2.9.8.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re: Update performance regression
От: Mace Windu  
Дата: 19.04.21 11:12
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Старый ишью — https://github.com/linq2db/linq2db/issues/2556

НС>Хоть и закрыт, но не починился. Обновил еще раз в существующем проекте — получил те же тормоза. Времени на то чтобы выдернуть кусок для воспроизведения, увы, пока нет совсем. Приходится по прежнему оставаться на 2.9.8.

Ну чтобы починить, надо знать что чинить. Если нет тестового кейса, то хотябы информация из memory profiler помогла бы.
Re[2]: Update performance regression
От: Ночной Смотрящий Россия  
Дата: 19.04.21 12:01
Оценка:
Здравствуйте, Mace Windu, Вы писали:

MW>Ну чтобы починить, надо знать что чинить. Если нет тестового кейса, то хотябы информация из memory profiler помогла бы.


Попытаюсь хоть что нибудь выцепить. Но пока есть только тестовые прогоны идентичного кода с разными версиями linq2db. 3.2.3 по сравнению с 2.9.8 демонстрирует падение перфоманса в разы.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[3]: Update performance regression
От: Danchik Украина  
Дата: 20.04.21 17:48
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, Mace Windu, Вы писали:


MW>>Ну чтобы починить, надо знать что чинить. Если нет тестового кейса, то хотябы информация из memory profiler помогла бы.


НС>Попытаюсь хоть что нибудь выцепить. Но пока есть только тестовые прогоны идентичного кода с разными версиями linq2db. 3.2.3 по сравнению с 2.9.8 демонстрирует падение перфоманса в разы.


Ну и зачем этот пост тогда? Вы же как программист знаете что слова не помогут. Мы тестируем перформанс и без реального вложения ваших усилий — вот я нашел когда, ничего не случится.
Re[2]: Update performance regression
От: Ночной Смотрящий Россия  
Дата: 20.04.21 21:00
Оценка: 25 (2)
Здравствуйте, Mace Windu, Вы писали:

MW>Ну чтобы починить, надо знать что чинить. Если нет тестового кейса, то хотябы информация из memory profiler помогла бы.


Вроде удалось выцепить метод, который тормозит на 3.х
        private async Task UpdateWorkflowAsync(
            WorkflowFacadeDb db,
            Models.Workflow entity,
            DateTimeOffset updateTime,
            CancellationToken cancellationToken = default)
        {
            var workflows = db.Workflows
                .Where(x => x.Id == entity.Id && x.RowVersion == entity.RowVersion)
                .Set(x => x.Status, entity.Status)
                .Set(x => x.Result, entity.Result)
                .Set(x => x.Error, entity.Error)
                .Set(x => x.Steps, entity.Steps)
                .Set(x => x.UpdateTime, updateTime)
                .Set(x => x.RowVersion, x => x.RowVersion + 1)
                .Set(x => x.StartTime, entity.StartTime)
                .Set(x => x.ProcessedTime, entity.ProcessedTime)
                .Set(x => x.CompleteTime, entity.CompleteTime);

            var updatedRows = await workflows.UpdateAsync(cancellationToken);

            if (updatedRows == 0)
            {
                // Call the check again to handle the error - to explicitly throw the error
                // if the workflow has come to the terminal state during the race
                var currentWorkflow = await GetSingleWorkflowAsync(db, entity.Id, cancellationToken);
                AssertWorkflowIsNotInFinalState(currentWorkflow, entity.Status);

                throw NewEntityConflictException(entity, currentWorkflow);
            }
        }


БД — postgresql, sql azure. .NET Core 3.1, Линух, докер. Тестеры говорят про появляющуюся на 3.х задержку в 10 секунд.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[4]: Update performance regression
От: Ночной Смотрящий Россия  
Дата: 20.04.21 21:02
Оценка:
Здравствуйте, Danchik, Вы писали:

D>Ну и зачем этот пост тогда?


Сообщить о проблеме.

D>Вы же как программист знаете что слова не помогут. Мы тестируем перформанс и без реального вложения ваших усилий — вот я нашел когда, ничего не случится.


Плохо. Мне приходится работать и с куда худшими репортами. А здесь как минимум есть факт регрессии, зависящий только от версии l2db. Как минимум повод внимательно посмотреть на отличия в версиях.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[5]: Ищу некий аналог draphviz для web
От: Danchik Украина  
Дата: 21.04.21 13:21
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, Danchik, Вы писали:


D>>Ну и зачем этот пост тогда?


НС>Сообщить о проблеме.


D>>Вы же как программист знаете что слова не помогут. Мы тестируем перформанс и без реального вложения ваших усилий — вот я нашел когда, ничего не случится.


НС>Плохо. Мне приходится работать и с куда худшими репортами. А здесь как минимум есть факт регрессии, зависящий только от версии l2db. Как минимум повод внимательно посмотреть на отличия в версиях.


Если бы там было просто изменено пару строчек. А там очень конкретно было изменено для более быстрой поддержки многопоточности. Скажем так файлов 400.
Re[6]: Ищу некий аналог draphviz для web
От: Ночной Смотрящий Россия  
Дата: 21.04.21 13:41
Оценка:
Здравствуйте, Danchik, Вы писали:

D>Если бы там было просто изменено пару строчек. А там очень конкретно было изменено для более быстрой поддержки многопоточности. Скажем так файлов 400.


Я понимаю. И при малейшей возможности постараюсь сделать репро. Но пока такой возможности нет. Позиция же "раз нет репро, нет и проблем" как то не очень конструктивна.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[7]: Ищу некий аналог draphviz для web
От: Danchik Украина  
Дата: 21.04.21 13:55
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, Danchik, Вы писали:


D>>Если бы там было просто изменено пару строчек. А там очень конкретно было изменено для более быстрой поддержки многопоточности. Скажем так файлов 400.


НС>Я понимаю. И при малейшей возможности постараюсь сделать репро. Но пока такой возможности нет. Позиция же "раз нет репро, нет и проблем" как то не очень конструктивна.


Ну, а куда тогда тыкаться? Апдейтов вариантов штук 10 (да видел пост с нужным апдейтом, надеюсь тот кейс).
Никто от проблемы не отнекивается. Просто ловить что-то, а вдруг получится, не совсем то чем надо заниматься, когда основная работа на плечах и либу надо майнтейнить.
Re[8]: Ищу некий аналог draphviz для web
От: Ночной Смотрящий Россия  
Дата: 21.04.21 16:46
Оценка:
Здравствуйте, Danchik, Вы писали:

НС>>Я понимаю. И при малейшей возможности постараюсь сделать репро. Но пока такой возможности нет. Позиция же "раз нет репро, нет и проблем" как то не очень конструктивна.

D>Ну, а куда тогда тыкаться?

Тебе рассказать как я поступаю когда мне такое приходит с прода? Смотрю глазами код, пишу тесты, пытаюсь сам воспроизвести.

D>Никто от проблемы не отнекивается. Просто ловить что-то, а вдруг получится, не совсем то чем надо заниматься, когда основная работа на плечах и либу надо майнтейнить.


Ну тут я ничего возразить не могу. Нет так нет.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[3]: Update performance regression
От: Mace Windu  
Дата: 26.04.21 15:12
Оценка: 39 (2)
Здравствуйте, Ночной Смотрящий, Вы писали:

Есть хорошие новости. Нашел несколько страшных мест, в следующем релизе должно быть значительно лучше. Будет неплохо если будет возможность проверить пререлизную версию (думаю к следующей неделе доделаю)
Re[4]: Update performance regression
От: Ночной Смотрящий Россия  
Дата: 27.04.21 07:58
Оценка:
Здравствуйте, Mace Windu, Вы писали:

MW>Есть хорошие новости. Нашел несколько страшных мест, в следующем релизе должно быть значительно лучше. Будет неплохо если будет возможность проверить пререлизную версию (думаю к следующей неделе доделаю)


Проверить можно, проверим.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[5]: Update performance regression
От: Mace Windu  
Дата: 07.05.21 08:10
Оценка: 18 (1)
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Проверить можно, проверим.


можно попробовать https://dev.azure.com/linq2db/linq2db/_packaging?_a=package&amp;feed=linq2db%40Local&amp;package=linq2db&amp;protocolType=NuGet&amp;version=3.3.1-rc.5794
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.