|
|
|
Многопоточность
|
|||
|---|---|---|---|
|
#18+
Скажите это правильное ли использование многопоточности для реализации одного сценария с разными параметрами в многопотоке. Я получаю код страницы в потоке в зависимости от параметров, но судя по скорости как щас это происходит работает один поток. =запуск потоков Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. =Поток Код: pascal 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. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2019, 16:25 |
|
||
|
Многопоточность
|
|||
|---|---|---|---|
|
#18+
Док, сделал так, потоки работают. Другая проблема: содержимое страницы получается не полностью в файл, если выставить задержку между потоками в 2 секунды, то получаются полностью, но тогда получается что работает как один поток, тогда какой смысл в этих потоках. Что можно предпринять? Я немного в шоке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2019, 13:31 |
|
||
|
Многопоточность
|
|||
|---|---|---|---|
|
#18+
Moneo, надо сделать синхронизацию и просмотреть готовность всех потоков, что бы выставить пул на сохранения файлов. У тебя может и 3 поток выполнится быстрее первого. И тогда будет белиберда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2019, 14:05 |
|
||
|
Многопоточность
|
|||
|---|---|---|---|
|
#18+
shonli95, сейчас у меня в потоке получение кода страницы и сохранение в файл. Также сейчас я через каждые 4 потока делаю паузу, если я ставлю паузу в 2 секунды, то все отрабатывается нормально, но это не на много быстрее чем 4 таких же последовательных операции без потока. Что-то у меня не так вообщем с загрузкой кода страниц в файл. Мне кажется происходит что-то с HTTPs.Document.Memory из-за вызова следующей партии потоков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2019, 14:23 |
|
||
|
Многопоточность
|
|||
|---|---|---|---|
|
#18+
Ахаха) Это ты ещё не напоролся на быстро - медленный интернет. Пауз на секунды никаких не должно быть. Я тебе пишу, надо делать синхронизацию, что бы построить конечный пул по сохранению файла в один ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2019, 15:01 |
|
||
|
Многопоточность
|
|||
|---|---|---|---|
|
#18+
MoneoДок, сделал так, потоки работают. Другая проблема: содержимое страницы получается не полностью в файл, если выставить задержку между потоками в 2 секунды, то получаются полностью, но тогда получается что работает как один поток, тогда какой смысл в этих потоках. Что можно предпринять? Я немного в шоке. Потоки пишут в один файл? Если да, то подумайте, что будет, если все они будут одновременно писать в один и тот же файл. Задержкой в 2 секунды вы просто развели по времени доступ в этот файл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2019, 15:09 |
|
||
|
Многопоточность
|
|||
|---|---|---|---|
|
#18+
goldmi45, каждый поток пишет в свой файл, я понимал что нельзя делать запись в один файл либо синхронизировать перед этим этот процесс из-за доступа к файла, да и смысла в этом нет - если бы я так сделал, то файл весил бы сотню гигабайт - txt на такое не способен вроде. Каждый поток пишет файл по дате. Потом я объединю все это в базу, но пока мне нужно разобраться почему при вызове потоков без задержки многие из них не успевают или получить код странице или присвоить этот код строковой переменной. Код простой, а работает через одно место. Прошу помощи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2019, 16:10 |
|
||
|
Многопоточность
|
|||
|---|---|---|---|
|
#18+
Moneo Код: pascal 1. 2. 3. 4. 5. Забавный участок кода... А далее идёт работа с temp. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2019, 16:12 |
|
||
|
Многопоточность
|
|||
|---|---|---|---|
|
#18+
wadman, почему вам это не нравиться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2019, 16:53 |
|
||
|
Многопоточность
|
|||
|---|---|---|---|
|
#18+
Я конечно могу включить сохранение temp до этого end, но проблему это не решит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2019, 16:56 |
|
||
|
Многопоточность
|
|||
|---|---|---|---|
|
#18+
Moneowadman, почему вам это не нравиться? Тем, что память сначала освобождается, а затем идёт работа с ней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2019, 17:00 |
|
||
|
Многопоточность
|
|||
|---|---|---|---|
|
#18+
wadman, я присвоил переменной содержимое страницы и дальше работаю только с переменной - где я ее освобождаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2019, 19:41 |
|
||
|
Многопоточность
|
|||
|---|---|---|---|
|
#18+
Moneoя присвоил переменной содержимое страницы и дальше работаю только с переменной - где я ее освобождаю? Переменная это лишь ссылка на участок памяти, который сначала освобождается (и скорее всего используется другим потоком или чем угодно), а затем идет к нему обращение. Нужно либо сначала с ним работать и освобождать, либо копировать его в новую выделенную область памяти и затем работать (и затем освобождать). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2019, 07:57 |
|
||
|
Многопоточность
|
|||
|---|---|---|---|
|
#18+
Moneo, freeandnil сделай вместо free и сразу увидишь проблемы если они есть. не нужно зомби-ссылки хранить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2019, 13:07 |
|
||
|
Многопоточность
|
|||
|---|---|---|---|
|
#18+
makhaonfreeandnil сделай вместо free FreeAndNil делает то же самое, что и Free плюс обнуляет ссылку на объект, поля самого объекта не затрагиваются, если это не сделано специально в его методе destroy. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2019, 13:44 |
|
||
|
Многопоточность
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2019, 16:33 |
|
||
|
Многопоточность
|
|||
|---|---|---|---|
|
#18+
Я разобрался с прошлой проблемой, но сервер очень медленно обрабатывает запросы (максимум 2.5 в секунду, потом выдает ошибки в теле). Может есть готовый инструментарий который может отправлять множество запросов с изменением лишь одного параметра используя прокси сервера или мне самому писать сбор прокси серверов и потом уже с их помощью отправлять эти запросы? Мне нужно отправить 7млн запросов с изменением одного параметра, отправить несколько значений в одном запросе не представляется возможным с стороны сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2019, 16:34 |
|
||
|
Многопоточность
|
|||
|---|---|---|---|
|
#18+
Moneo, я слабо себе представляю как можно решить проблему медленного сервера на клиенте. делать сотни параллельных запросов? ну если сервер так разрешит, то можно пробовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2019, 16:49 |
|
||
|
Многопоточность
|
|||
|---|---|---|---|
|
#18+
makhaonMoneo, я слабо себе представляю как можно решить проблему медленного сервера на клиенте. делать сотни параллельных запросов? ну если сервер так разрешит, то можно пробовать. Скоре всего, сервер ограничивает скорость запросов с одного IP, прокси могут помочь. Moneo: Поищите сборщики проксей - за малую деньгу просто получите готовый список в json/xml ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2019, 17:49 |
|
||
|
Многопоточность
|
|||
|---|---|---|---|
|
#18+
Прикупил 10 прокси, но все равно сервер на половину запросов шлет ошибку : {"alerts":[{"type":"danger","msg":"Can't find API for apiName = undefined","errorCode":"Can't find API for apiName = undefined"}]} Параметр apiName передается в запросе, это навело меня на мысль что это не сервер тупит, а я и у меня что-то не так с запросом, вот сам запрос (естественно запросы отсылаются в многопотоках): Код: pascal 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2019, 15:16 |
|
||
|
Многопоточность
|
|||
|---|---|---|---|
|
#18+
Moneo, Я не помню как работает httpsend, но тут точно не надо Код: pascal 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2019, 19:25 |
|
||
|
Многопоточность
|
|||
|---|---|---|---|
|
#18+
alekcvp, не нужно знать как работает httpsend, достаточно знать как работает TStream. там точно надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2019, 20:14 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=74&tid=2039501]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
295ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 609ms |

| 0 / 0 |
