Size: a a a

2020 February 27

4

4g in CODE BLOG / C#
Елена
Попродробнее? Для меня загадка: неужели сервер не может распараллелить задачу нормально? Обычный ПК тянет нормально, а сервер под себя гадит
Вопрос в настройках приложения - что оно делает на сервере и чего оно не делает в тестовой/дев среде.
Надо не диспетчер смотреть, а смотреть в код где эти потоки создаются и как они эти потоки используются, ну и да выше написали про зацикливание
источник

Е

Елена in CODE BLOG / C#
Дык даже релиз-версии себя по-разному ведут. Не в отладке,  а уже в работе
источник

СЛ

Сергей Лопатюк... in CODE BLOG / C#
dotTrace. без профилировщика понять проблему не получится. по опыту еще ни разу не удавалось выдвинуть правильное предположение без профилировщика (в этом мой опыт совпал с опытом некоторых умных людей которые написали книги). Была похожая проблема, оказалось проблема была в библиотеке в которой была своя реализация SpinLock-а, и при определенной комбинации версии jit компилятора, параллельной работы нескольких потоков, уходило в зацикливание. сначала на 20%, потом когда повторялась ситуация с другими потоками на 60%, на 80% итд
источник

Е

Елена in CODE BLOG / C#
Окей, пасиба. Будем копать. А так говно, конечно. Почему так по-разному работает одно и то же приложение - не понятно
источник

Е

Елена in CODE BLOG / C#
Хотя, по идее, как раз на компе оно должно лагать,  а на серваке летать, но никак не наоборот
источник

СЛ

Сергей Лопатюк... in CODE BLOG / C#
я больше скажу, оставляли под нагрузочным тестированием на сутки приложение, кроме как на бою воспроизвести не удавалось
источник

СЛ

Сергей Лопатюк... in CODE BLOG / C#
и то воспроизводилось случайно
источник

СЛ

Сергей Лопатюк... in CODE BLOG / C#
советую в dottrace выбрать опцию timeline, он покажет все потоки и сколько времени они выполняются за время snapshot-а, возможно это поможет понять какой поток проблемынй на каком участке кода
источник

4

4g in CODE BLOG / C#
Сергей Лопатюк
я больше скажу, оставляли под нагрузочным тестированием на сутки приложение, кроме как на бою воспроизвести не удавалось
++++++
источник

Е

Елена in CODE BLOG / C#
Да,  когда-то отлавливал им ресурсоемкие методы (В т.ч. и сильно жрущие оперативку), но думал, в этот раз не дойдет до этого
источник

Е

Елена in CODE BLOG / C#
Ну ладно, будем дорабатывать. Спасибо за совет
источник

DS

Dima Skrypka in CODE BLOG / C#
привет, кто-то работал с IlMerge?
источник

EA

Egene Avdeev in CODE BLOG / C#
Чем отличается запуск кода на выполнение из ThreadPool и допустим через Task.Run? Я не беру в счёт то, что через таску можно результат отслеживать, ждать её и всё в таком духе...
источник

S

Sergey Trofimov in CODE BLOG / C#
Egene Avdeev
Чем отличается запуск кода на выполнение из ThreadPool и допустим через Task.Run? Я не беру в счёт то, что через таску можно результат отслеживать, ждать её и всё в таком духе...
Таски используют тред пул
источник

EA

Egene Avdeev in CODE BLOG / C#
Ну вот о том и речь, что прироста "производительности" не будет особо, добавляется только удобство контроля?
источник

S

Sergey Trofimov in CODE BLOG / C#
Egene Avdeev
Ну вот о том и речь, что прироста "производительности" не будет особо, добавляется только удобство контроля?
Скорее даже небольшое падение
источник

S

Sergey Trofimov in CODE BLOG / C#
Но мизер, в пределах 10%
источник

S

Sergey Trofimov in CODE BLOG / C#
У орейли справочник есть по async там в конце бенчмарки есть
источник

EA

Egene Avdeev in CODE BLOG / C#
Sergey Trofimov
У орейли справочник есть по async там в конце бенчмарки есть
👍
источник

SB

Sergey Benzenko in CODE BLOG / C#
Egene Avdeev
Чем отличается запуск кода на выполнение из ThreadPool и допустим через Task.Run? Я не беру в счёт то, что через таску можно результат отслеживать, ждать её и всё в таком духе...
Таск - обёртка, которую можно ожидать, продолжения добавлять, отслеживать выполнение и т.п.
источник