|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
в цикле в пуле потоков Код: vbnet 1.
запускаю каждое обращение к сайту в отдельном потоке Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
но всё равно запросы выполняются последовательно( подскажите, как заставить их обращаться параллельно, для 100 запросов время доходит до 20 секунд, что критично ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2020, 22:37 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
Почему ты просто не используешь GetResponseAsync? К чему вся эта свистопляска с многопоточностью? На шарпе можно примерно так (на VB уже сам переводи, если что): Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2020, 23:23 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
fkthat, если я буду получать асинхронные ответы, то запросы ведь я всё равно буду отправлять последовательно, а это долго. поэтому вынес запросы-ответы в отдельные потоки, но не помогает что-то ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2020, 23:47 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
qlewerok запросы ведь я всё равно буду отправлять последовательно ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2020, 23:49 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
Shocker.Pro, я тупой и не могу прочесть( какие-то юсинги, енумераблы. сейчас сделал последовательную отправку запросов, повесил асинхронную обработку ответов, выполняется так же последовательно почему-то Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 00:13 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
fkthat, есть такой код на vb.net?) пожалуйста ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 00:20 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
qlewerok, На бейсике у меня вышло как-то так (я на нем ни разу в жизни не писал, т.ч. не знаю насколько это кошерно ): Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
А что, даже прикольно. Может мне на VB.NET мигрировать По-хорошему надо конечно еще try-catch расставить, чтобы один упавший запрос не факапил все 99 остальных, но это уже ньюансы. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 00:27 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
qlewerok fkthat, есть такой код на vb.net?) пожалуйста ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 00:31 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
Shocker.Pro Сейчас попробовал. Он, похоже, даже C# 8 не понимает. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 00:46 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
Ну значит ТС пусть на шарп переходит. Я абсолютно не понимаю, как кто-то может писать на VB.NET при практически полном отсутствии статей, учебников и документации. Даже Microsoft перестал включать в современную документацию примеры на VB.NET. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 00:58 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
Shocker.Pro Даже Microsoft перестал включать в современную документацию примеры на VB.NET. https://devblogs.microsoft.com/vbteam/visual-basic-support-planned-for-net-5-0/ Going forward, we do not plan to evolve Visual Basic as a language . This supports language stability and maintains compatibility between the .NET Core and .NET Framework versions of Visual Basic. Future features of .NET Core that require language changes may not be supported in Visual Basic . Так что я с миграцией на него все же поторопился :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 01:16 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
Сначала проверь, стоит ли вообще все в многопоток делать- может последовательно и быстрее получится конкретно в твоем случае. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 10:03 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
vb_sub Сначала проверь, стоит ли вообще все в многопоток делать- может последовательно и быстрее получится конкретно в твоем случае. Да на кой проверять. Многопоточность для I/O не нужна вообще никогда. Для него существуют неблокирующие async-вызовы. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 10:17 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
fkthat, я честно пытался использовать код, и так и эдак его впихивал, но никак( синтаксис сложный для понимания или я тупой. в итоге вернулся к пулу потоков. так же в цикле отправляю в пул функцию без всяких асинхронностей (обращение и функция в самом посте). вывел в консоль номера потоков и обнаружил, что на 70 соединений у меня 3-4 потока. т.е. несмотря на умные статьи, где расхваливают автоматический подбор необходимого количества потоков, это чушь. задаю количество потоков и получаю прирост в несколько раз Код: vbnet 1.
далее увеличиваю количество одновременных соединений http и получаю прирост по скорости еще в несколько раз Код: vbnet 1.
. но всё равно код выполняется больше секунды для 70 соединений, это долго. что-то явно можно улучшить, буду благодарен, если подскажете, что. и цифры 20 и 50 я брал методом тыка. если увеличивать, начинают сыпаться ошибки соединения, какие цифры должны быть и от чего зависит, я хз( ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 13:35 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
qlewerok вернулся к пулу потоков. qlewerok Код: vbnet 1.
Ну что поделать, тут или разбираться, как это надо делать (т.е. без ThreadPool и прочего легаси), либо потом отгребать последствия: https://docs.microsoft.com/en-us/dotnet/api/system.threading.threadpool.setminthreads?view=net-5.0#remarks Caution By default, the minimum number of threads is set to the number of processors on a system. You can use the SetMinThreads method to increase the minimum number of threads. However, unnecessarily increasing these values can cause performance problems . If too many tasks start at the same time, all of them might appear to be slow. In most cases, the thread pool will perform better with its own algorithm for allocating threads. Reducing the minimum to less than the number of processors can also hurt performance . ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 13:46 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
fkthat, ваш код выполняется 6 секунд. если увеличить количество макс соединений до 9, выполняется за 1.5 секунд, как и мой. если 10 соединений, то начинает сыпаться подключение, от чего зависит, опять же, не знаю Код: vbnet 1.
хочу использовать ваш код, но в нём выносит мозг строка Код: vbnet 1.
все три слова впервые встречаю в языке. подскажете, как будет выглядеть код без неё? можно с разложением на несколько функций, а то там одна в другой как-то... и url у меня разные, передаются как раз в args As String() ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 14:37 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
qlewerok fkthat, ваш код выполняется 6 секунд. если увеличить количество макс соединений до 9, выполняется за 1.5 секунд, как и мой. если 10 соединений, то начинает сыпаться подключение, от чего зависит, опять же, не знаю Код: vbnet 1.
хочу использовать ваш код, но в нём выносит мозг строка Код: vbnet 1.
все три слова впервые встречаю в языке. подскажете, как будет выглядеть код без неё? можно с разложением на несколько функций, а то там одна в другой как-то... и url у меня разные, передаются как раз в args As String() Enumerable.Repeat(0, 100) это библиотечный класс/метод который генерирует последовательность из 100 нулей. Select(...) берет поочередно каждый элемент этой последовательности (в данном случае это просто 0, но нам он не нужен, важно что их будет 100) и вызывает для этого элемента переданную в этот метод функцию, а затем возвращает последовательность получившихся значений. Поскольку мы передаем туда асинхронный метод, то то на выходе мы получим последовательность объектов Task. В свою очередь Task.WhenAll получает параметром последовательность этих тасков и возвращает в свою очередб один, типа как "таск тасков", т.е. таск, который будет завершен, когда завершатся все переданные ему таски. А самый верхний await (который await Task.WhenAll(...)) он уже "ждет" когда завершится этот "таск тасков" и результат его выполнения (массив строк) отдает дальше. Это можно переписать и без LINQ, просто на циклах, но, в данном случае, это будет длиннее. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 14:56 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
qlewerok, Вот, может так понять будет проще: Код: vbnet 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. 26. 27. 28. 29. 30. 31. 32. 33.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 15:07 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
fkthat, это код понятен, всё работает, большое спасибо) только он ведь однопоточный, что подтверждает Код: vbnet 1.
код доходит до получения ответа первого соединения и, если ответ не готов, идёт дальше создавать второе соединение. когда ответ первого соединение готов, программа останавливает выполнение действий, возвращается к первому соединению, выполняет получение ответа и обработку, идёт дальше. и если ответы двух соединений получены одновременно, программа примет их последовательно. отсюда 40 одинаковых запросов выполняются в 4 раза дольше 1 соединения. да, не в 40 за счёт асинхронных ожиданий, но всё-таки не параллельно, а каждая миллисекунда критична ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 10:34 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
fkthat, добавь ему ConfigureAwait )) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 11:04 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
qlewerok fkthat, это код понятен, всё работает, большое спасибо) только он ведь однопоточный, что подтверждает Код: vbnet 1.
код доходит до получения ответа первого соединения и, если ответ не готов, идёт дальше создавать второе соединение. когда ответ первого соединение готов, программа останавливает выполнение действий, возвращается к первому соединению, выполняет получение ответа и обработку, идёт дальше. и если ответы двух соединений получены одновременно, программа примет их последовательно. отсюда 40 одинаковых запросов выполняются в 4 раза дольше 1 соединения. да, не в 40 за счёт асинхронных ожиданий, но всё-таки не параллельно, а каждая миллисекунда критична Если ты хочешь распараллелить еще и обработку, то тебе надо саму обработку запускать в пуле потоков с помощью Task.Run(...). Но учти, что если у тебя много времени занимает именно обработка запроса, то в любом случае выгода будет только если у тебя много ядер CPU. Вот, например, как-то так: Код: vbnet 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. 26. 27. 28. 29. 30. 31. 32. 33. 34.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 11:05 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
Shocker.Pro fkthat, добавь ему ConfigureAwait )) Я что-то и не подумал, что у него может быть GUI. Но, если большую часть времени отнимает ожидание IO, то это для общей производительности некритично, т.к. основной поток все равно почти всегда будет не занят. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 11:10 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
fkthat, поменял строки Код: vbnet 1. 2.
на Код: vbnet 1. 2.
а то всё виснет намертво спасибо, теперь обработка полученного результата параллельная, а непосредственно получение ответа ведь нет? там под миллион строк, может, они удлиняют выполнение в несколько раз? в моём представлении нужно 100 потоков, по потоку на соединение, в каждом происходит обращение, получение ответа, обработка. если так нельзя\не принято, то почему? время на создание потоков\соединений, затраченная память, изношенность процессора не играет роли, т.к. это можно сделать заранее ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 13:04 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
а как считывание ответа с сервера разбить хотя бы на 4 потока? по принципу: пришёл ответ, считывается первым потоком. во время считывания пришёл второй ответ, он не прерывает/не дожидается считывания первого ответа, а считывается вторым потоком. заняты два потока - третьим. в теории это будет гениально. по сути, "многопоточное ожидание". отдельно многопоточность и отдельно ожидание теперь знаю, как делать, а вместе... подскажете? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 13:34 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
В последнем примере HandleRequestResult запускается в отдельной задаче, то есть работают независимо т друг друга не ждут. Если только ты сам своим кодом не завязываешь их друг на друга. Но вообще, по идее неплохо бы СНАЧАЛА разобраться, как работает многопоточность и TPL в NET, а потом уже писать какой-то многопоточный код, а не наоборот. Хотя бы разобраться на примере уже написанного кода. Ведь fkthat не будет вечно за тебя программу писать, нужно какие-то собственные знания наращивать. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 13:43 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
Shocker.Pro, я имел в виду не обработку полученного с сервера ответа HandleRequestResult(result), а само считывание reader.ReadToEndAsync(). хотя оно, по идее, тоже асинхронное, да, я туплю... тогда всё упирается чисто в мой 4 ядерный проц, надо брать новый. тогда остался загадкой только выбор количества соединений ServicePointManager.DefaultConnectionLimit = 9, который зависит хз от чего и должен быть хз каким ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 13:51 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
qlewerok reader.ReadToEndAsync(). ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 13:56 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
Shocker.Pro qlewerok reader.ReadToEndAsync(). ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 13:59 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
qlewerok нужно 100 потоков, по потоку на соединение, в каждом происходит обращение, получение ответа, обработка. если так нельзя\не принято, то почему? Ну, потому что прочитай, например, в книге Рихтера "CLR via C#" как работает асинхронный I/O и поймешь, почему его не надо делать в отдельном потоке. Вкратце - когда ты вызываешь операцию I/O асинхронно, то она происходит моментально и приложение просто продолжает работать дальше. Когда же вызванная операция (чтение, запись, запрос по web, и т.п.) действительно выполнена OS, то рантайн сам вызывает callback, который ты ему передал при вызове этой операции. Код с async/await это просто удобная обертка поверх этого, чтобы руками не писать и никуда не передавать миллионы этих callback-ов. А если ты вместо этого создашь руками (или возьмешь из пула) поток и вызовешь в нем I/O синхронно, то тогда у тебя весь этот поток на все время I/O будет заблокирован. А поток это довольно-таки дорогостоящий и ограниченный ресурс OS, и если у тебя таких заблокированных, хоть и на время, потоков будет много, то будет плохо. Я сам еще давно лично наблюдал, как у нас виндовый сервер впадал в кому, когда какой-то индусский код безо всякого ума вручную создавал чуть больше всего лишь 900 потоков. Для этого ThreadPool и придумали - во-первых, чтобы не создавать всякий раз потоки с нуля руками (т.к. это дорого), а во-вторых (что в нашем этом случае важнее) чтобы не дать приложению создавать слишком много потоков. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 14:03 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
всё-таки бутылочное горлышко кроется в Код: vbnet 1.
при 9 вроде работает, при 10 начинает сыпаться часть соединений, количество падающих соединений увеличивается при увеличении максимального числа соединений Код: vbnet 1.
в интернете люди как-то выставляют его в сотни. у меня проц i5 3570k с 4 ядрами, если это как-то поможет... Shocker.Pro, во всём интернете ни одного примера на vb.net, как правильно в впихнуть LongRunning. похоже, было собрание программистов, где решили забросить vb.net, на которое меня не позвали... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 15:34 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
qlewerok похоже, было собрание программистов, где решили забросить vb.net ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 15:45 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
qlewerok при 10 начинает сыпаться часть соединений ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 15:45 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
Shocker.ProПо NET5 его не будет вообщеу меня есть вы) Shocker.Proс какой ошибкой? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 17:01 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
qlewerok у меня есть вы) По ошибке - ну и причем тут твой код? Это тебя либо удаленный сервер отшивает, либо твоя промежуточная инфраструктура ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 17:04 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
Shocker.Pro удаленный сервер отшивает ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 17:12 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
qlewerok, Скорее всего, сервер распознаёт твой перформанс, как DOS-атаку. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 17:16 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
fkthat перформанс ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 17:16 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
fkthatСкорее всего, сервертогда миссия меняется) как все вот эти параллельные обращения к серверу выполнять с заданным в миллисекундах интервалом?) чтобы не ддосить и при этом не останавливать всю программу... запускать таймер и проверять его или что-то сложнее? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 17:28 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
qlewerok как все вот эти параллельные обращения к серверу выполнять с заданным в миллисекундах интервалом Да я же тебе всю дорогу объясняю, что тебе не нужны паралельные обращения. При асинхронных вызовах они и так будут "параллельные" - каждый запрос будет отправляться сразу же, а не ждать, когда закончится предыдущий. В пределах установленных лимитов на одновременное число соединений, конечно - но тут ты уже ничего сделать не сможешь, т.к., сам сервер, как ты видишь, при слишком большом числе коннектов тебя отошьет. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 17:48 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
qlewerok тогда миссия меняется) как все вот эти параллельные обращения к серверу выполнять с заданным в миллисекундах интервалом?) чтобы не ддосить и при этом не останавливать всю программу... запускать таймер и проверять его или что-то сложнее? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 18:06 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
qlewerok, Вот тебе еще пример: Код: 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. 26. 27. 28. 29. 30. 31.
ВыхлопСто потоков: 6467 Сто запросов: асинхронно: 1517 Как видишь, без всякого распараллеливания получилось быстрее более чем в 4 раза. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 18:23 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
fkthat Как видишь, без всякого распараллеливания получилось быстрее более чем в 4 раза. Кстати, попробовал этот код еще меняя DefaultConnectionLimit (от 2 до 10), и по времени выполнения изменений вообще никаких - ни в абсолютных значениях, ни в относительных. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 18:53 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
qlewerok, всё смешалось, многопоточность, параллельность про асинхронные операции даже не слышал небось, да ? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 19:49 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
fkthat, хотел посмореть, что за сишарп ваш такой заморский, но приведенный код в консоли не выводит ничего. так работает: Код: c# 1.
а так уже игнорит: Код: c# 1.
fkthatменяя DefaultConnectionLimit (от 2 до 10), по времени выполнения изменений вообще никакихспециально перепроверил. у меня с изменением соединений с 2 до 9 время выполнения уменьшается примерно в 3 раза ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 19:52 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
qlewerok хотел посмореть, что за сишарп ваш такой заморский это не си шарп заморский, это твой бейсик мазохический с ужасным синтаксисом прекрати заниматься мазохизмом, переходи на гораздо более красивый, понятный, логичный и лаконичный си шарп ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 19:57 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
qlewerok хотел посмореть, что за сишарп ваш такой заморский, но приведенный код в консоли не выводит ничего У тебя какая версия дотнета и VS? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 20:14 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 20:23 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
qlewerok, А как ты сам код на C# пробовал-то? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 20:37 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
fkthat, создал проект, выбрал язык C# для windows Код: 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. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 20:43 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
У тебя этот код немедленно скажет Hello World! и завершит работу ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 20:50 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
Shocker.Pro, да. что не так делаю? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 20:51 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
qlewerok Shocker.Pro, да. что не так делаю? напиши хотя бы так Код: c# 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 20:55 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
Shocker.Pro, Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 21:02 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
qlewerok, Я тот же код перенес на гуй: Код: 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. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37.
И у меня разница вообще в 60 раз получилась: ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 21:03 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
qlewerok Код: c# 1. 2. 3. 4. 5.
Код: c# 1. 2. 3. 4. 5.
qlewerok Код: c# 1.
Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 21:06 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
fkthatразница вообще в 60 раз получиласьа теперь добавьте Код: c# 1.
студия очень скупая на потоки, если её убедительно не попросить ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 21:21 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
после многих запусков вердикт: коды работают одинаково по времени у меня. ServicePointManager.DefaultConnectionLimit действительно ни на что не влияет в этом языке ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 21:26 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
qlewerok в этом языке ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 21:37 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
Shocker.Pro кто-то может писать на VB.NET при практически полном отсутствии ... Скажу, что это не мешает писать на VB.NET и читать обычную документацию для.NET / экезмплы на C#. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 21:41 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
Shocker.Pro причем тут язык? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 21:41 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
qlewerok в vb.net .... этого параметра ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 21:46 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
VSVLAD Скажу, что это не мешает писать на VB.NET и читать обычную документацию для.NET / экезмплы на C#. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 21:47 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
qlewerok студия очень скупая на потоки Вот к чему приводит отсутствие литературы ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 21:51 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
qlewerok увеличу в 3 раза максимально количество соединений - примерно в 3 раза быстрее выполнится код. Это, наверняка потому что у тебя код CPU-consuming, т.е. он большую часть времени занят не отправкой HTTP-запроса и получением ответа, а обработкой самого этого ответа. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 22:27 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
qlewerok Код: c# 1.
С такой настройкой оно у меня вообще зависло. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 23:02 |
|
параллельные запросы HttpWebRequest
|
|||
---|---|---|---|
#18+
могу ошибаться, но в XP было ограничение на количество одновременных подключений по локальной сети больше 10 штук. это касается не только соединений по самбе, но и других. Этого ограничения нет в серверных ОС. вроде как это меняли в следующих виндах. то есть, если одновременно больше 10 подключений не подключаются, возможно стоит глянуть в этом направлении, особенно если винда старая ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2020, 13:26 |
|
|
start [/forum/topic.php?all=1&fid=20&tid=1398409]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
94ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 209ms |
0 / 0 |