|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
Везде твердят что асинхронные операции это не многопоточность. Ну ок. А что будет если скрестить ежа с ужом? К примеру мне нужно скачать 100500 страниц из интернета. Я запускаю 100500 тасков и радуюсь жизни. Но что будет если в тасках я буду использовать не request.GetResponse() а request.GetResponseAsync() ? Даст это какойто проит? Например освободит на время сетевых ожиданий поток из пула для запуска другого таска, или все это ерунда, и этот асинк сам займет еще поток пула для себя? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2019, 22:39 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
iskatelsqlВезде твердят что асинхронные операции это не многопоточность. Это может быть многопоточность, а может быть и нет. iskatelsqlНапример освободит на время сетевых ожиданий поток из пула для запуска другого таска, или все это ерунда, и этот асинк сам займет еще поток пула для себя? Да, именно так примерно и будет. Поток, вызвавший операцию I/O не будет простаивать и ждать когда она завершится, а вернется в пул потоков, а когда операция I/O завершится, то из пула будет взят свободный поток и продолжит выполнение дальше по коду. Увеличивается паралельность кода. Рпаилизовано это с помошью системной штуки "I/O completion port" (виндовый аналог select/poll в юниксах). ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2019, 23:02 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
iskatelsqlВезде твердят что асинхронные операции это не многопоточность. Вы хотели сказать: не равно, не тоже самое. Т.е. вы что-то прочитали, упустили важную часть и теперь из-за этого возникло куча вопросов? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2019, 23:05 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
iskatelsql, Вот объяснение с картинками: https://codewala.net/2015/07/29/concurrency-vs-multi-threading-vs-asynchronous-programming-explained/ ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2019, 23:07 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
fkthatДа, именно так примерно и будет. Ну ешкин кот, в вопросе или - или, ты отвечаешь "да". В блондинку перекрасился? :) hVostt, Да мы уже столько прочитали от разных авторов, что уже не только непонятно, но еще даже из "я" мы превратились в "мы" одна личность верит одному - другая другому... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2019, 23:11 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
hVosttiskatelsql, Вот объяснение с картинками: https://codewala.net/2015/07/29/concurrency-vs-multi-threading-vs-asynchronous-programming-explained/ Я не читаю инглишь с листа, но пробежавшись понял, что там про асинхронность с основного потока, я же задаю вопрос - есть ли суть использовать асинхронность в тасках, которые уже больше ничего не делают кроме скачивания самих страниц. Т.е. единственное чем это может помочь - это внутренний механизм GetResponseAsync , который как-то освободит поток пула на время ожидания ответа сервера. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2019, 23:23 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
iskatelsqlЯ не читаю инглишь с листа, но пробежавшись понял, что там про асинхронность с основного потока, я же задаю вопрос - есть ли суть использовать асинхронность в тасках, которые уже больше ничего не делают кроме скачивания самих страниц. Т.е. единственное чем это может помочь - это внутренний механизм GetResponseAsync , который как-то освободит поток пула на время ожидания ответа сервера. Конечно, запрос по сети это io операция, нет смысла ожидать её в потоке, занимая ценный ресурс. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2019, 23:25 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
iskatelsqlДа мы уже столько прочитали от разных авторов, что уже не только непонятно, но еще даже из "я" мы превратились в "мы" одна личность верит одному - другая другому... Вы хотите поговорить об этом? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2019, 23:27 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
iskatelsqlНу ешкин кот, в вопросе или - или, ты отвечаешь "да". В блондинку перекрасился? :) Я блондин Правда, уже потихоньку седеть начал по возрасту. Объясняю по-другому. Есть Task. Это такая штука, которая сразу, без блокировки и ожидания возвращается из метода и просто гарантирует, что когда-нибудь она завершится (успехом или факапом, или отменой по запросу). Под капотом у этой Task может быть все что угодно - это может быть параллельный поток, может быть асинхронная операция, может быть вообще ожидание какого-нибудь события (нажатия кнопки, истечения срока таймера и т.п.), а может даже вообще ничего и не быть (т.е. таск выполняется синхронно в том же потоке и возвращается уже сразу завершенным). В твоем примере речь идет об асинхронном вызове (асинхронный I/O), как это работает в этом случае (т.е. что там у таска под капотом) я выше пояснил. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2019, 23:33 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
hVosttВы хотите поговорить об этом? :) Хочу. Если меня называют на вы, значит мы уже двинулись... Еще вопрос про пул - я явно понял что мин нужно сразу поднимать (для интернетов), ибо он изначально у меня 8 и раскачивается постепенно. Только пока он раскачивается вся программа бы уже выполнилась... Вот как быть с макс? резать его стремно, хз что еще в этом пуле, но кол-во обращений к серверу хотелось бы ограничить. Странная умная штуковина Task, с которой хрен поймешь как быть, старый добрый Thread проще и понятнее. Но надо ведь учиться новому :( ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2019, 23:37 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
iskatelsqlстарый добрый Thread проще и понятнее. Ага. Особенно когда натыкаешься на говнокод в веб-приложении, который отжирает весь пул, или, еще хуже, плодит 1000+ кастомных потоков через CreateThread. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2019, 23:42 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
fkthat, я доморощенный программер, мне до веб далеко. но создать 100 потоков и кормить их через blockingcollection например, для меня понятней чем понять как управлять табуном тасков. Пока что нашел для себя что если пул с минимума сразу поднять, то таски вроде работают... Хотя в чем их прелесть так и не понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2019, 23:51 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
iskatelsqlХочу. Если меня называют на вы, значит мы уже двинулись... Остались люди, и много, которые считают обращение на "ты" фамильярностью. Дикость, но что поделаешь, не готов ещё мир к этому :) iskatelsqlЕще вопрос про пул - я явно понял что мин нужно сразу поднимать (для интернетов), ибо он изначально у меня 8 и раскачивается постепенно. Только пока он раскачивается вся программа бы уже выполнилась... Вот как быть с макс? резать его стремно, хз что еще в этом пуле, но кол-во обращений к серверу хотелось бы ограничить. Странная умная штуковина Task, с которой хрен поймешь как быть, старый добрый Thread проще и понятнее. Но надо ведь учиться новому :( Если хочется единственного ультимативного решения, его нет. Давайте исходить из конкретных задач, а не переворачиванием сферического коня в вакууме. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2019, 00:13 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
iskatelsqlfkthat, я доморощенный программер, мне до веб далеко. но создать 100 потоков и кормить их через blockingcollection например, для меня понятней чем понять как управлять табуном тасков. Пока что нашел для себя что если пул с минимума сразу поднять, то таски вроде работают... Хотя в чем их прелесть так и не понял. Что может быть проще: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
Если серьёзно, то прелестей у тасков много. Например, таск может возвращать результат. Для тасков есть унифицированный механизм отмены. Для тасков есть всякие утилиты как ContinueWith, WhenAny, WhenAll и т.д. Для тасков есть паттерн async/await Для тасков есть TPL. И т.д. и т.п. И опять-таки, в десятый раз - таски это вовсе не только многопоточность. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2019, 00:18 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
fkthatИ опять-таки, в десятый раз - таски это вовсе не только многопоточность. Ну ОК! таски - круто! Только расскажи как. Мне нужны 100500 страниц с инета. Задаю 100500 тасков, и разгоняются они потихоньку, даж замерял, сначала по 2-3 в секунду, потом больше. Если пулу мин побольше задать то сразу побольше. Как с этими тасками да с инетом? задача скачать быстро 100500 страниц. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2019, 00:51 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
iskatelsql, Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2019, 02:59 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
iskatelsql, Выше был пример с параллельностью, но без асинхронного I/O. С асинхронным I/O будет самую малость хитрее: Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2019, 03:40 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
iskatelsql, Кроме потоков есть ещё ограничение на количество одновременно открытых соединений. И оно отнюдь не бесконечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2019, 17:31 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
hVosttКроме потоков есть ещё ограничение на количество одновременно открытых соединений. И оно отнюдь не бесконечно. Ну, я выше как раз аж целых два примера привел, как кол-во одновременных тасков ограничить. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2019, 17:38 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
fkthathVosttКроме потоков есть ещё ограничение на количество одновременно открытых соединений. И оно отнюдь не бесконечно. Ну, я выше как раз аж целых два примера привел, как кол-во одновременных тасков ограничить. Мне кажется лучше всего тут подойдёт DataFlow, вообще для задачи выкачивания. Там и асинк из коробки и дросселирование... А ещё можно увеличить количество соединений, но не до бесконечности опять же :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2019, 17:46 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
hVosttМне кажется лучше всего тут подойдёт DataFlow, вообще для задачи выкачивания. Да, сейчас мельком глянул - надо будет присмотреться, что за зверь такой - раньше его как-то не замечал. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2019, 18:10 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
fkthatiskatelsql, Выше был пример с параллельностью, но без асинхронного I/O. С асинхронным I/O будет самую малость хитрее: Код: 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.
будет на индекс оф ранже падать. а так прикольно, спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2019, 18:13 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
hVosttи дросселирование... это что такое? какие-то смутные ассоциации с дросселями из электротехники... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2019, 18:16 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
love_bachбудет на индекс оф ранже падать. а так прикольно, спасибо! Да, надо Код: c# 1.
заменить на Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2019, 18:22 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
love_bachhVosttи дросселирование... это что такое? какие-то смутные ассоциации с дросселями из электротехники... -- вы сказали дойкие? -- я сказал бойкие! -- может всё-таки дойкие? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2019, 18:22 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
fkthat, Вариант с Parallel.ForEach мне встречался несколько раз, с комментами в духе "делай так и не парься" А второй вариант по сравнению с этим что даст? Мне бы в идеале раскочегарить это дело до полного забития пропускной способности моего инета. А если это будет просто экономия каких то мифических ресурсов - то для чего собственно? чтоб в игрушку поиграть пока все это дело 10 лет качается? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2019, 18:48 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
iskatelsql, ну делай так и не парься. тут как бы два направления: 1. решаешь проблему экономии ресурсов 2. хочешь прокачаться в глубоком понимании если ничего из двух, делай как проще всего можешь создать экзешник и запустить его тыщу раз чтоб уже наверняка лучше даже две тыщи раз :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2019, 19:02 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
hVostt, Да как бы и первое и второе, но не сами по себе а для достижения третьего: т.к. задача массового выкачивания периодически встречается, хотелось бы найти некий оптимальный и универсальный код, разве что с небольшой подстройкой. Дабы в будущем его чуть ли не копипастить... А так как хз в каких задачах он будет использоваться в будущем, то и понять и "вылизать" его хочется получше. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2019, 19:10 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
iskatelsqlт.к. задача массового выкачивания периодически встречается, хотелось бы найти некий оптимальный и универсальный код Этого кода нет, т.к. этим ты создаешь проблемы тем у кого выкачиваешь. Проблемы от перегруза сайта до кражи информации. По-хорошему если надо много инфы с сайта получить, то надо связаться с владельцем сайта и узнать как. Анонимно можешь получить неприятный ответ. В лучшем случае перестанут пускать на сайт. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2019, 19:33 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
Dima T, Так для того и нужна небольшая подстройка... Думаю гуглу абсолютно пофиг на мои 100 мегабит, а если какой мелкий форум скачать захочется, можно и прикрутить. (хотя разве сейчас остались сайты которые хотя бы заметят эти мои 100 мегабит?) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2019, 19:41 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
iskatelsqlDima T, Так для того и нужна небольшая подстройка... Думаю гуглу абсолютно пофиг на мои 100 мегабит, а если какой мелкий форум скачать захочется, можно и прикрутить. (хотя разве сейчас остались сайты которые хотя бы заметят эти мои 100 мегабит?) Наивный. Про гугл я не понял, думаю они даже помогут если цель гуманная. А всякие справочники и инет-магазины стоят перед дилеммой как показать инфу в интернет и сделать так чтобы инфу не украли. Т.е. потенциальному покупателю надо показать все, а конкуренту - ничего. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2019, 19:49 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
Dima T, Ты не бойся, это лишь осеннее обострение, оно пройдет. Никто грабить твои магазины не собирается. Ты даже задачи моей не знаешь, но на всякий случай испугался... Давай вообще программирование запретим, оно ведь может помочь конкурентам. ЗЫ. ну коль в тему влез, напиши чтонить дельное, кроме оффтопика. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2019, 23:25 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
Dima TТ.е. потенциальному покупателю надо показать все, а конкуренту - ничего. Не понимаю, как это можно сделать, кроме как поместить на страницу чекбокс "Сим зуб даю, что я покупатель, а не конкурент". И какой в этом смысл? Конкурент узнает информацию, которая и так для всех открыта? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2019, 23:49 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
fkthatDima TТ.е. потенциальному покупателю надо показать все, а конкуренту - ничего. Не понимаю, как это можно сделать, кроме как поместить на страницу чекбокс "Сим зуб даю, что я покупатель, а не конкурент". Простейший способ: подсчет количества запросов с конкретного IP в единицу времени. Человек через браузер не создаст тысячи запросов за минуту. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2019, 05:30 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
iskatelsqlЯ запускаю 100500 тасков и радуюсь жизни. Если создавать таски так: Код: c# 1. 2.
то при этом запускаются обычные потоки операционной системы (Thread). Процессор будет вхолостую переключать контексты между ними. Плохо. Я так понимаю, request.GetResponseAsync() возвращает IO-bound Task? Тогда не нужно вручную создавать таски. Просто вызывай этот метод столько раз, сколько нужно. Если нужно дождаться выполнения тасков, запоминай их. Как-то так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
Этот код полностью асинхронный (если, конечно, метод GetResponseAsync сам по себе асинхронный), здесь не создаётся ни одного CPU-bound потока. То есть процессор совершенно не загружен, а вот сеть (IO-подсистема) должна быть загружена полностью. iskatelsqlНо что будет если в тасках я буду использовать ... request.GetResponseAsync() ? Даст это какойто проит? Например освободит на время сетевых ожиданий поток из пула для запуска другого таска, или все это ерунда, и этот асинк сам займет еще поток пула для себя? Асинковый таск уйдёт в IOCP и не будет грузить процессор. Но вручную созданный таск (поток) будет требовать к себе внимание процессора. Однако, современная Винда умеет детектировать, когда поток простаивает в ожидании IO-операции и может отдавать этот поток для других целей. Так что реальных потоков наверняка будет использоваться существенно меньше. То есть это хоть и менее эффективно, чем полностью асинхронный вариант, но лучше, чем самый первый. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2019, 17:05 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
petalvikНо вручную созданный таск (поток) будет требовать к себе внимание процессора. Ну, вообще-то, спящий на i/o поток тоже не будет грузить процессор, пока i/o не завершится. Просто, в отличие от асинка этот поток уже не сможет быть использован для чего-то другого. petalvikОднако, современная Винда умеет детектировать, когда поток простаивает в ожидании IO-операции и может отдавать этот поток для других целей. Единственное как она это умеет - это как раз и есть асинхронный i/o с использованием completion port. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2019, 01:15 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
fkthat, Я вижу ты разбираешься, подскажи (немного оффтопика) Мне никогда не удавалось на шарпе нагрузить процессор/сеть/диск на 100% Ну то-есть в искусственных задачах ношения воды решетом получалось, но ни в одной практической не выходило. Плюсы бы сразу сожрали все что им дают. Может где волшебную переменную подправить, мол кушай, не подавись? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2019, 22:03 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
iskatelsql, Даже и не знаю. А для чего? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2019, 23:01 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
iskatelsqlfkthat, Я вижу ты разбираешься, подскажи (немного оффтопика) Мне никогда не удавалось на шарпе нагрузить процессор/сеть/диск на 100% Ну то-есть в искусственных задачах ношения воды решетом получалось, но ни в одной практической не выходило. Плюсы бы сразу сожрали все что им дают. Может где волшебную переменную подправить, мол кушай, не подавись? Почитай и может поймешь что чудес не бывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2019, 23:13 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
iskatelsql Может где волшебную переменную подправить, мол кушай, не подавись? Давно бы подправили и пользовались, но нет ее. С++ чуть быстрее C#. Быстрее на проценты, но не на порядки. На порядки может ускорить только смена алгоритма, например вместо перебора бинарный поиск. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2019, 23:23 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
iskatelsqlfkthat, Я вижу ты разбираешься, подскажи (немного оффтопика) Мне никогда не удавалось на шарпе нагрузить процессор/сеть/диск на 100% Ну то-есть в искусственных задачах ношения воды решетом получалось, но ни в одной практической не выходило. Плюсы бы сразу сожрали все что им дают. Может где волшебную переменную подправить, мол кушай, не подавись? любая нормальная задача грузит всю эту фигню по уши ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2019, 03:16 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
Dima T Почитай и может поймешь что чудес не бывает. таких законописателей расстрелять надо, офигели уже козлы. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2019, 15:56 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
fkthatДаже и не знаю. А для чего? Да я в пятницу писал, не обращай внимания :) А так - большинство моих задач - это быстро что-то посчитать и выдать результат. Но без извращений с параллелями ни проц не грузит, ни диск, ничего. Как будто на марсе живет. В сях например пустой цикл отожрал бы весь процессор, но тут даже это не прокатывает. Непонятно чем вообще вся эта CLR занимается, всегда тупо чего-то ждет? Почему нужно как-то распараллеливать задачу, которая сама из себя процессороемкая, и на сях дала бы знать о себе воем кулеров, а на шарпе без пинка не заставить? ЗЫЫ. Я щас как и в пятницу себя чувствую, так что можно не обращать внимания :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2019, 21:11 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
iskatelsql, а скоко у тебя там ядер то? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2019, 21:23 |
|
Вопрос про async и task
|
|||
---|---|---|---|
#18+
iskatelsql, Код: 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.
Только сразу педупреждаю - на четверть минуты все вешает нах ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2019, 23:01 |
|
|
start [/forum/topic.php?all=1&fid=20&tid=1398748]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
155ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
70ms |
get tp. blocked users: |
1ms |
others: | 246ms |
total: | 514ms |
0 / 0 |