|
Stream CopyToAsync vs CopyTo
|
|||
---|---|---|---|
#18+
мелкий диспут неожиданный. я раньше не проверял, но тут не давно в глаза бросилось cpu скачки на ровном месте как я думал. собственно вот тестовый код Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
правильно ли я понимаю что копирование из стрима в стрим бесполезно делать асинхроно, так как на мой взгляд насилование процессора ну такое? посмотрел в кишках там вообще не пахнет асинхроном ..ощущение что идет эмуляция асинхронщины через труд пул как следствие локи и всплески процессора. При CopyTo процессор в тишине и покое. буду признателен если кто то разжует чуть больше моих изысканий. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2020, 22:21 |
|
Stream CopyToAsync vs CopyTo
|
|||
---|---|---|---|
#18+
Я сталкивался с аналогичной проблемой, хотя и с другой стороны, но, похоже на твой кейс 21742747 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2020, 22:27 |
|
Stream CopyToAsync vs CopyTo
|
|||
---|---|---|---|
#18+
handmadeFromRu правильно ли я понимаю что копирование из стрима в стрим бесполезно делать асинхроно нет, не правильно. это ж зависит от реализации :) где ловишь проблему? версия фреймворка? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2020, 00:43 |
|
Stream CopyToAsync vs CopyTo
|
|||
---|---|---|---|
#18+
hVostt это ж зависит от реализации :) где ловишь проблему? версия фреймворка? ну ловлю я проблему библе что делает сохранение/скачивание в с3 хранилище файлов по 50-100гб, увидел по мониторнигу дикие всплески процессора. препарировал библу и увидел что там копируют или вычитываю из потока httpclient в filestream, чтоб не алоцировать память. поэтому сделал демку код с обычным копирование файлов на локале и подвердило. ф 4.7.1 и нет кор 2.1 на них я тестировал под рукой нет щас dotTrace так что скрины из вижлы copy copyasync где я внутри библы меняю CopyToAsync на CopyTo с забикса скрины я кидать не буду, собственно где я и заметил всплески на пустом машине тестовой для ввода микросервиса по отправке в с3. опиши если не сложно в каких реализаций оно будет верным. ибо мой мир что все io операции делать через асинк рушится ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2020, 08:44 |
|
Stream CopyToAsync vs CopyTo
|
|||
---|---|---|---|
#18+
Shocker.Pro Я сталкивался с аналогичной проблемой, хотя и с другой стороны, но, похоже на твой кейс 21742747 да примерно теже степи, у тебя время большое но интересно там cpu также скакал или нет ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2020, 09:02 |
|
Stream CopyToAsync vs CopyTo
|
|||
---|---|---|---|
#18+
handmadeFromRu, Если какая-то левая либа сделана через анал, то при чем тут сам async. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2020, 09:26 |
|
Stream CopyToAsync vs CopyTo
|
|||
---|---|---|---|
#18+
fkthat handmadeFromRu, Если какая-то левая либа сделана через анал, то при чем тут сам async. эм ну я ж сделал тестовый код сверху без либы....значит весь фрейм анал? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2020, 09:32 |
|
Stream CopyToAsync vs CopyTo
|
|||
---|---|---|---|
#18+
handmadeFromRu ну ловлю я проблему библе что делает сохранение/скачивание в с3 хранилище файлов по 50-100гб, увидел по мониторнигу дикие всплески процессора. препарировал библу и увидел что там копируют или вычитываю из потока httpclient в filestream, чтоб не алоцировать память. поэтому сделал демку код с обычным копирование файлов на локале и подвердило. ф 4.7.1 и нет кор 2.1 на них я тестировал под рукой нет щас dotTrace так что скрины из вижлы copy copyasync где я внутри библы меняю CopyToAsync на CopyTo с забикса скрины я кидать не буду, собственно где я и заметил всплески на пустом машине тестовой для ввода микросервиса по отправке в с3. опиши если не сложно в каких реализаций оно будет верным. ибо мой мир что все io операции делать через асинк рушится httpclient и filestream нативные? там ещё буферы нужно настраивать, неправильные буферы приведут к нагрузке на GC, а это приведёт к тормозам. в общем, лучше будет, если воспроизвести ситуацию в маленьком демо проекте, и давайте её препариуем. навскидку, с подобным не сталкивался (не считая проблем неправильной настройки буфера). ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2020, 11:28 |
|
Stream CopyToAsync vs CopyTo
|
|||
---|---|---|---|
#18+
hVostt httpclient и filestream нативные? там ещё буферы нужно настраивать, неправильные буферы приведут к нагрузке на GC, а это приведёт к тормозам. в общем, лучше будет, если воспроизвести ситуацию в маленьком демо проекте, и давайте её препариуем. навскидку, с подобным не сталкивался (не считая проблем неправильной настройки буфера). так я ж скинул куски кода который можно запустить на локале даже без httpclient . на входе имена файлов ..копируй файл побольше и смотри как процессор играет. щас перепроверили на кор нет 3.1 тоже есть всплески но они ниже чем на фреймворке. буфер там 81920 подефолту судя по сорсам stream у меня тут вопросы к File.OpenRead пошли..там внутри вызывается filestream у которого в конструкторе async = false ..но даже установив руками его в true я не заметил что процессор меньше нагружается ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2020, 12:15 |
|
Stream CopyToAsync vs CopyTo
|
|||
---|---|---|---|
#18+
handmadeFromRu, а если снять дамп и посмотреть, чем потоки заняты? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2020, 12:29 |
|
Stream CopyToAsync vs CopyTo
|
|||
---|---|---|---|
#18+
Дмитрий Мух handmadeFromRu, а если снять дамп и посмотреть, чем потоки заняты? ну я тут не силен если честно, судя по windbg с асинком появляется тридпул с семафорслимом http://joxi.ru/KAxddo8FZezONA хотя по факту все уходит на винапи ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2020, 15:26 |
|
Stream CopyToAsync vs CopyTo
|
|||
---|---|---|---|
#18+
handmadeFromRu следствие локи и всплески процессора. При локах ЦПУ наоборот простаивать должен. Так-то в однопоточном консольном приложении выгоды от асинхронности ты никакой и не увидишь - смысл-то её не в том чтобы "ЦПУ меньше грузился", а чтобы что-то еще можно было делать, пока асин операция выполняется. У тебя вообще приложение не GUI случайно? Потому что тогда ConfigureAsync(false) следует делать, там где можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2020, 20:10 |
|
Stream CopyToAsync vs CopyTo
|
|||
---|---|---|---|
#18+
fkthat При локах ЦПУ наоборот простаивать должен. Так-то в однопоточном консольном приложении выгоды от асинхронности ты никакой и не увидишь - смысл-то её не в том чтобы "ЦПУ меньше грузился", а чтобы что-то еще можно было делать, пока асин операция выполняется. У тебя вообще приложение не GUI случайно? Потому что тогда ConfigureAsync(false) следует делать, там где можно. асп кор нет приложение демку делал на консоли. да на со тоже самое пишут мол цпу не важен и асинк позволяет скалироваться тот не ловкий момент когда ты думал что знаешь как работает до конца, но оказалось что нет, не смотря что вчера перечитал все что мог и с дотнекса спикеров глянул. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2020, 09:04 |
|
|
start [/forum/topic.php?fid=18&fpage=8&tid=1354737]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 238ms |
total: | 401ms |
0 / 0 |