Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
Я прочитал, что в плюсах нет своего многопоточного программирования и поэтому плюсы это просто враппер над многопоточностью, которую предоставляет ось. Вопрос: если для решения задачи, такой как распарсивание гигабайтов текста параллельным методом уже написана утилита, которая может быть запущена в количестве процессов равное числу ядер сервера минус один или два (например два проца по 8 ядер, то запускаем 14-15 процессов), то есть ли хоть малейший смысл заморачиваться в этом случае с написанием многопоточного функционального попила внутри каждого процесса или если речь идет об обработке текста, которая тупо жрет проц и из сервисов системы использует только файловый ио, то может быть конкретно в данном случае заморачиваться с мультитредингом это лишнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2013, 00:27 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
Дело в том что С++ как язык не владеет объектами мультитрединга или мультипроцессности. Они - это скорее API конкретной ОС или платформы. Тоесть 90% успеха твоего мероприятия зависит от того под ЧТО ты будешь кодить распарсивание гигабайтов. Windows или Linux. Там эти вещи довольно по разному реализованы. Поэтому определяйся сразу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2013, 01:32 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
LumixЯ прочитал, что в плюсах нет своего многопоточного программирования и поэтому плюсы это просто враппер над многопоточностью, которую предоставляет ось. Нет. В стандарте C++11 уже больше года поддерживаемом всеми компиляторами есть потоки. Lumix конкретно в данном случае заморачиваться с мультитредингом это лишнее? Да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2013, 01:55 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
вау а сколько памяти жрет? 14-15 процессов в своп не уйдудт? у меня есть что-то подобное. "утилита" 3Гб запросто отъедает, тогда как исходный текст - полгига 4 штучки запустил и хватит. правда, у меня и ядер больше нет зы. гипертдейдинг отключи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2013, 03:46 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
Осмелюсь высказать догадку: процесс жрёт больше ресурсов, чем поток? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2013, 08:32 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
LumixЯ прочитал, что в плюсах нет своего многопоточного программирования и поэтому плюсы это просто враппер над многопоточностью, которую предоставляет ось. Начнем с того, что это уже не так. В последнем стандарте в C++ появилась уже встроенноая поддержка многопоточного программирования. http://en.wikipedia.org/wiki/C 11#Threading_facilities ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2013, 10:41 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
Lumix Вопрос: если для решения задачи, такой как распарсивание гигабайтов текста параллельным методом уже написана утилита, которая может быть запущена в количестве процессов равное числу ядер сервера минус один или два (например два проца по 8 ядер, то запускаем 14-15 процессов), то есть ли хоть малейший смысл заморачиваться в этом случае с написанием многопоточного функционального попила внутри каждого процесса или если речь идет об обработке текста, которая тупо жрет проц и из сервисов системы использует только файловый ио, то может быть конкретно в данном случае заморачиваться с мультитредингом это лишнее? Это тебе никто не скажет, это целиком зависит от конкретики твоей этой задачи парса текста. В общем случае преимущество потоков передо процессами в том, что потоки могут без усилий использовать общие данные, в случае процессов на это нужно тратить дополнительные достаточно серьёзные усилия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2013, 10:45 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
defragmentatorОсмелюсь высказать догадку: процесс жрёт больше ресурсов, чем поток? Это неправильная догадка. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2013, 11:24 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
MasterZivLumixЯ прочитал, что в плюсах нет своего многопоточного программирования и поэтому плюсы это просто враппер над многопоточностью, которую предоставляет ось. Начнем с того, что это уже не так. В последнем стандарте в C++ появилась уже встроенноая поддержка многопоточного программирования. http://en.wikipedia.org/wiki/C 11#Threading_facilities Да я в курсе за эту шнягу. Но я нигде не могу найти (в том числе по этой ссылке), информацию, что эта многопоточность не использует нативные потоки операционной системы, то есть не является враппером. Максимум, что я нашел это фразу типа "многопоточность в ++11 встроена в ядро плюсов", но значит ли это что теперь это никак не связано с потоками операционной системы я пока пруф найти не могу. MasterZivВ общем случае преимущество потоков передо процессами в том, что потоки могут без усилий использовать общие данные, в случае процессов на это нужно тратить дополнительные достаточно серьёзные усилия. Понятно. Значит в нашем случае многопоточность дело лишнее, потому что у нас общие данные и так используются без усилий. Эту безусильность гарантирует менеджер пула процессов. А что касается запись в общий файл, то у нас используется фишка из фрилока: если занято усни, а потом попробуй снова. PS. Кстати, именно на основе этого критерия я сегодня утром посоветовал чуваку вот тут 14691640 решить его задачу как раз многопоточно, а не многопроцессово. Хотя у него там питон, а я не в курсе как питон работает с многопоточностью... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2013, 11:29 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
С точки зрения bash(Unix),cmd(Win) на процессах оно поухватистее будет. Поюзабельнее. Поскольку из таск-менеджера или из top видна статистика процессов то ими можно манипулирновать, создавать, убивать менять приоритеты, посылать сигналы, организовывать конвееры и батчи и прочие админские штуки. Тоесть очень много пространства для манёвра. С потоками такое сделать будет нетривиально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2013, 11:39 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
maytonС точки зрения bash(Unis),cmd(Win) на процессах оно поухватистее будет. Поюзабельнее. Поскольку из таск-менеджера или из top видна статистика процессов то ими можно манипулирновать, создавать, убивать менять приоритеты, посылать сигналы, организовывать конвееры и батчи и прочие админские штуки. Тоесть очень много пространства для манёвра. С потоками такое сделать будет нетривиально. Чего? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2013, 15:53 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
MasterZivmaytonС точки зрения bash(Unis),cmd(Win) на процессах оно поухватистее будет. Поюзабельнее. Поскольку из таск-менеджера или из top видна статистика процессов то ими можно манипулирновать, создавать, убивать менять приоритеты, посылать сигналы, организовывать конвееры и батчи и прочие админские штуки. Тоесть очень много пространства для манёвра. С потоками такое сделать будет нетривиально. Чего? maytonС точки зрения bash(Unix),cmd(Win) на процессах оно поухватистее будет. Поюзабельнее. Поскольку из таск-менеджера или из top видна статистика процессов то ими можно манипулирновать, создавать, убивать менять приоритеты, посылать сигналы, организовывать конвееры и батчи и прочие админские штуки. Тоесть очень много пространства для манёвра. С потоками такое сделать будет нетривиально. я подозреваю что у тс 100% утилизация процессора эти танцы с бубном тут ничем не помогут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2013, 16:03 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
LumixДа я в курсе за эту шнягу. Но я нигде не могу найти (в том числе по этой ссылке), информацию, что эта многопоточность не использует нативные потоки операционной системы, то есть не является враппером. Максимум, что я нашел это фразу типа "многопоточность в ++11 встроена в ядро плюсов", но значит ли это что теперь это никак не связано с потоками операционной системы я пока пруф найти не могу. Потоки в любых языках программирования не работают без участия операционной системы. Потому что то, что работает без участия операционной системы называется по-другому. Фиберы, гринтреды, ещё как... Одно не понятно -- чем тебе так мешает участие операционной системы. Для справки -- в диспетчеризации процессов ОС участвует ровно так же, как и в диспетчеризации потоков, только стоимость переключения контекста дороже. LumixПонятно. Значит в нашем случае многопоточность дело лишнее, потому что у нас общие данные и так используются без усилий. Эту безусильность гарантирует менеджер пула процессов. А что касается запись в общий файл, то у нас используется фишка из фрилока: если занято усни, а потом попробуй снова. Что-то мне намекает на то, что именно потоки-то вам и нужны. Но тебе виднее. Вообще, многозадачность на процессах уже сейчас (я считаю) -- пережиток прошлого. По одной простой причине -- потоки могут разделять ресурсы, а процессы -- нет. Процессы обладают только одним достоинством -- они более безопасны, если гикнется, то умрёт только этот процесс, остальные выживут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2013, 16:05 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
MasterZivВообще, многозадачность на процессах уже сейчас (я считаю) -- пережиток прошлого. По одной простой причине -- потоки могут разделять ресурсы, а процессы -- нет. Процессы обладают только одним достоинством -- они более безопасны, если гикнется, то умрёт только этот процесс, остальные выживут. примитивная аргументация ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2013, 16:49 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
Изопропилпримитивная аргументация Примитивная аргументация о примитивной аргументции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2013, 18:03 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
MasterZivОдно не понятно -- чем тебе так мешает участие операционной системы. Для справки -- в диспетчеризации процессов ОС участвует ровно так же, как и в диспетчеризации потоков, только стоимость переключения контекста дороже. Я мыслю так: если у плюсов под капотом работа оси, то для нашего случая теряется разница между процессами и потоками. Или можно ещё так сказать: если бы у плюсов были бы свои треды, которые работают много быстрее тредов оси, тогда был бы смысл переделывать на мультитреды. LumixВообще, многозадачность на процессах уже сейчас (я считаю) -- пережиток прошлого. Соображения, почему решение на процессах пока ещё живы. 1) младшие кодеры часто совершают ошибки с нарушением атомарности при реализации многотредовых систем, а при организации параллели на процессах эту атомарность обеспечивает ось. мультитредовый код сложнее читать и он более error prone 2) самый вкусный мультитредовый эффект это так называемое функциональное распараллеливание, а не распараллеливание данных, ну например, рендер в одном потоке, логика в другом, ио в третьем. В этом случае если кто-то начинает много что-то обсчитывать, то по крайней мере юзеринтерфейсы не подвисают, а просто показывают статусы 3) параллель во многом это архитектурное решение, там организация получается более слоисто-списковая и в итоге все сводится к менеджеру и воркерам, а их проще понимать как две разные утилитки: распил, обсчет, премерж ака синхрон ака докрутка, мерж Поскольку в нашем случае никакого функционального разделения нет, а задача 100% на дата-декомпозите, то и построение на процессах канает. Создавая тему, я пытался проверить, а можно ли на тредах выжать ещё больше производительность, но если треды и процы различаются только меморишарингом, то решение на процах пусть и остается. В итоге зачем я открывал тему, я все ответы получил. LumixПо одной простой причине -- потоки могут разделять ресурсы, а процессы -- нет. Единственная причина которую я встречал в своей практике, где реально важен меморишаринг, это какая-то супержирная дата, которую дорого капусулить в сервис, ну например, какой-нибудь look-up на 1,5 Гб. Все остальные кейсы которые мне встречались сводились к организации общения через третье лицо, например, через файл, через базу, через сервер. LumixПроцессы обладают только одним достоинством -- они более безопасны, если гикнется, то умрёт только этот процесс, остальные выживут. Ещё достоинства есть. 1) исчезает вопрос с контролем атомарности => проще разработка 2) управление нагрузкой может осуществлять сисадмин стандартными средствами оси, нет надобности мутить свои балансеры - - - - - - - - - - - - - - - PS. узнал для себя новое слово - гинуться. первый раз встречаю, чтобы гиком называли доходягу))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2013, 22:13 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
Lumix, мыслю так: если у плюсов под капотом работа оси, то для нашего случая теряется разница между процессами и потоками. Или можно ещё так сказать: если бы у плюсов были бы свои треды, которые работают много быстрее тредов оси, тогда был бы смысл переделывать на мультитреды. А я мыслю так, что ты мыслишь неправильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2013, 00:09 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
Lumix, Вот вроде бы и правильно всё пишешь, а всё получается как-то не так. С чего ты взял, что существуют какие-то такие волшебные "потоки вне ОС", которые должны быть быстрее потоков обычных? Что за такие турбореактивные потоки должны быть? С чего им быть быстрее? Поток -- это набор комманд, который исполняется. Он исполняется одинаково быстро как под управлением ОС, так и без неё. Выполняет её процессор, там всё равно, ОС участвует или нет. Когда ОС участвует, это прерывание, по истечении кванта времени, выделенного на данный поток или процесс, потоки и процессы в этом плане равнозначны, что поток прерывается, что процесс. Что отличается, так если ранее процессор занимал другой процесс, нежели тот, который приходит в процессор, то будет переключение контекста на другой процесс. Если нет, а это был другой поток этого же процесса -- не будет переключения. Правда, в процессоре был тред другого процесса, тоже будет переключение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2013, 00:53 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
MasterZivС чего ты взял, что существуют какие-то такие волшебные "потоки вне ОС", которые должны быть быстрее потоков обычных? Ну вот так подумал, а вдруг такое есть. Создал тему. Оказалось, что этого нет. Вопрос закрыт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2013, 10:23 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
MasterZivПроцессы обладают только одним достоинством -- они более безопасны, если гикнется, то умрёт только этот процесс, остальные выживут. Я это и имел в виду когда писал про юзабельность процессов. А ты что спросил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2013, 12:37 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
LumixСоздавая тему, я пытался проверить, а можно ли на тредах выжать ещё больше производительность, но если треды и процы различаются только меморишарингом, то решение на процах пусть и остается. В итоге зачем я открывал тему, я все ответы получил. Кстати, а кто в курсе, если одна и та же функция используется в разных процессах, то код этой функции копируется или размещается в разделяемой памяти и используется оттуда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2013, 12:58 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
если утилита есть и задачу выполняет, то заморачиваться нет смысла. если задачу не выполняет - на вещи надо смотреть ширше. Допустим, есть у вас этиваши 15 потоков. А диск вообще справится с одновременным чтением в такое кол-во потоков? Конечно в общем случае это зависит от задачи, но если полагать что каждый из 15 потоков делает последовательное чтение, мне кажется hdd перосто уйдет в сплошной seek, а ssd довольно сильно поплохеет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2013, 13:13 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
chabapokа ssd довольно сильно поплохеет. Прошу уточнить термин поплохеет для ssd, потому что у нас серваки как раз на ssd. У них реально резко сильно вырастает физический износ??? или под поплохеет имеется ввиду 100% нагрузка в течение очень долгого времени? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2013, 14:05 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
та же функция в разных процессахКстати, а кто в курсе, если одна и та же функция используется в разных процессах, то код этой функции копируется или размещается в разделяемой памяти и используется оттуда? Разделяемый, при условии, что EXE/DLL, в которой находится этот код была загружена по одинаковому адресу (в виртуальном адресном пространстве процесса). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2013, 14:07 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
jmp_originalта же функция в разных процессахКстати, а кто в курсе, если одна и та же функция используется в разных процессах, то код этой функции копируется или размещается в разделяемой памяти и используется оттуда? Разделяемый, при условии, что EXE/DLL, в которой находится этот код была загружена по одинаковому адресу (в виртуальном адресном пространстве процесса). То есть вы получается утверждаете две интересные вещи 1) не всегда DLL означает загрузку функции один раз и если DLL загружается не операционной системой, а из кода вручную (аналог создания на куче), то такое "ручное" подсоединение DLL создаст столько же копий, сколько и процессов 2) что ось не оптимизирует память даже если чексум вновь исполняемого файла равняется чексуму уже находящихся в исполнении файлов так-то странно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2013, 14:16 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
Lumixтак-то странно... да на дворе уже не 1990-й год ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2013, 14:24 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
Lumixchabapokа ssd довольно сильно поплохеет. Прошу уточнить термин поплохеет для ssd, потому что у нас серваки как раз на ssd. У них реально резко сильно вырастает физический износ??? или под поплохеет имеется ввиду 100% нагрузка в течение очень долгого времени? Сами-то как думаете? Второе, ясно дело. Физический износ ssd происходит при записи. Насколько понимаю, вы в данной задаче - читаете. А под термином поплохеет подразумевалось что изза seek-ов у вас производительность чтения просядет и это может нивелировать эффект от 15 параллельных потоков, может даже сделать гораздо хуже. Все зависит от специфики задачи - там уже надо конкретно смотреть что как делается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2013, 16:11 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
chabapokА под термином поплохеет подразумевалось что изза seek-ов у вас производительность чтения просядет и это может нивелировать эффект от 15 параллельных потоков, может даже сделать гораздо хуже. Хорошо намек понял. Попробуем поставить 8 дополнительных ssd дисков, на которых будут созданы точные копии сырой даты для чтения и тогда на один диск будет приходится всего 2 ядра / процесса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2013, 16:31 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
jmp_originalта же функция в разных процессахКстати, а кто в курсе, если одна и та же функция используется в разных процессах, то код этой функции копируется или размещается в разделяемой памяти и используется оттуда? Разделяемый, при условии, что EXE/DLL, в которой находится этот код была загружена по одинаковому адресу (в виртуальном адресном пространстве процесса). Под 64-битным линуксом, данное ограничение отсутствует - любая либа может быть загружена в разных процессах по разным адресам и при этом без дубликатов. Под Виндой - не знаю как. Но думаю что как минимум начиная с Vista (где появился ASLR ) - вполне возможно тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2013, 16:39 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
maytonMasterZivПроцессы обладают только одним достоинством -- они более безопасны, если гикнется, то умрёт только этот процесс, остальные выживут. Я это и имел в виду когда писал про юзабельность процессов. А ты что спросил? Я спросил вообще, каким боком наблюдение процессов в таск манагере относится к данному вопросу и помогает программисту писать или отлаживать этот код? Кстати, могу напомнить, что в некоторых ОС аналоги таск манагера могут показывать и потоки тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2013, 16:59 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
та же функция в разных процессахLumixСоздавая тему, я пытался проверить, а можно ли на тредах выжать ещё больше производительность, но если треды и процы различаются только меморишарингом, то решение на процах пусть и остается. В итоге зачем я открывал тему, я все ответы получил. Кстати, а кто в курсе, если одна и та же функция используется в разных процессах, то код этой функции копируется или размещается в разделяемой памяти и используется оттуда? Это зависит от операционой системы, но потенциально возможно разместить такой код в разделяемой памяти только для чтения и использовать только одну копию такого сегмента. Т.е. по факту многие (все распространённые системы) именно так и делают. Но для этого нужны естественно защищённая память, виртуальная переадресация и read-only сегменты для кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2013, 17:02 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
Lumixchabapokа ssd довольно сильно поплохеет. Прошу уточнить термин поплохеет для ssd, потому что у нас серваки как раз на ssd. У них реально резко сильно вырастает физический износ??? или под поплохеет имеется ввиду 100% нагрузка в течение очень долгого времени? SSD изнашиваются при записи, на сколько я знаю. Если ваши процессы только читают, ничего не будет. А если даже и изнашивается -- что ж делать-то? В любом случае это уже совсем далеко от темы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2013, 17:03 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
jmp_originalта же функция в разных процессахКстати, а кто в курсе, если одна и та же функция используется в разных процессах, то код этой функции копируется или размещается в разделяемой памяти и используется оттуда? Разделяемый, при условии, что EXE/DLL, в которой находится этот код была загружена по одинаковому адресу (в виртуальном адресном пространстве процесса). В виртуальном пространстве разных процессов этот сегмент кода может быть по разным адресам, и тем не менее физически это будет один блок и он будет разделяться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2013, 17:05 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
Lumix2) что ось не оптимизирует память даже если чексум вновь исполняемого файла равняется чексуму уже находящихся в исполнении файлов Никакие чексуммы там не нужны, у них есть путь к исполняемому модулю и имя/номер сегмента. Это уже однозначно идентифицирует сегмент во всех процессах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2013, 17:06 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyПод 64-битным линуксом, данное ограничение отсутствует - любая либа может быть загружена в разных процессах по разным адресам и при этом без дубликатов. ЕМНИП, исходники для разделяемых библиотек всегда требовалось компилировать с ключом -fPIC, что как раз означает генерацию позиционно-независимого кода. Так почему только "под 64-битным линуксом"? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2013, 19:49 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
LumixchabapokА под термином поплохеет подразумевалось что изза seek-ов у вас производительность чтения просядет и это может нивелировать эффект от 15 параллельных потоков, может даже сделать гораздо хуже. Хорошо намек понял. Попробуем поставить 8 дополнительных ssd дисков, на которых будут созданы точные копии сырой даты для чтения и тогда на один диск будет приходится всего 2 ядра / процесса. Подумайте на досуге , склько у вас памяти , сколько нужно для 8 нитей и сколько нужно кеша файловой системы. Что будет, когда активный ввод вывод в кеш ФС будет заганять ваши процессы в своп и что можно-нужно сделать, что бы этого не происходило. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2013, 20:26 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovskyjmp_originalпропущено... Разделяемый, при условии, что EXE/DLL, в которой находится этот код была загружена по одинаковому адресу (в виртуальном адресном пространстве процесса). Под 64-битным линуксом, данное ограничение отсутствует - любая либа может быть загружена в разных процессах по разным адресам и при этом без дубликатов. Под Виндой - не знаю как. Но думаю что как минимум начиная с Vista (где появился ASLR ) - вполне возможно тоже. А как это вообще реализуется, в разных процессах разные виртуальные адреса ссылаются на одно и то же физическое адресное пространство в котором расположен общий код? И это физическое пространство чем-то отличается от разделяемой памяти или это оно и есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2013, 21:35 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
отличается от разделяемой памятиА как это вообще реализуется, в разных процессах разные виртуальные адреса ссылаются на одно и то же физическое адресное пространство в котором расположен общий код? И это физическое пространство чем-то отличается от разделяемой памяти или это оно и есть? Реализуется через memory-mapped files с отображением в нужный адрес. Dimitry SibiryakovЕМНИП, исходники для разделяемых библиотек всегда требовалось компилировать с ключом -fPIC, что как раз означает генерацию позиционно-независимого кода. Так почему только "под 64-битным линуксом"? А, это у меня видимо ложная память про 32 бита :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2013, 23:13 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
MasterZivmaytonпропущено... Я это и имел в виду когда писал про юзабельность процессов. А ты что спросил? Я спросил вообще, каким боком наблюдение процессов в таск манагере относится к данному вопросу и помогает программисту писать или отлаживать этот код? Кстати, могу напомнить, что в некоторых ОС аналоги таск манагера могут показывать и потоки тоже. Ну про мегафлопы автору уже рассказали. Разницы нет. Про плюсы потоков ему рассказали. Есть когда есть shared данные. Что у него там является shared - ХЗ. Автор не колется. Может и ничего. Может он просто количество слов решил посчитать и подытожить. Тогда ему что процесс что поток - всё едино. Посчитал - слил результат. Если выбирать удобство - использования то процессы лучше. По поводу диска - пускай смотрит сам. Здесь сам себе злобный буратино. По поводу каким боком относится - ну и никаким. Он же не спрашивает как ему писать или отлаживать код. Вот я и не отвечаю. Даю пространные советы как бы Я эту задачу реализовывал исходя из данных СКУДНЫХ знаний о самой задаче и о конфигурации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2013, 00:05 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovskyjmp_originalпропущено... Разделяемый, при условии, что EXE/DLL, в которой находится этот код была загружена по одинаковому адресу (в виртуальном адресном пространстве процесса). Под 64-битным линуксом, данное ограничение отсутствует... Под Виндой - не знаю как. Но думаю что как минимум начиная с Vista (где появился ASLR ) - вполне возможно тоже. А если речь идет о POSIX-fork и WinAPI-CreateProcess, то там вообще такого ограничения никогда не было и никогда не было дубликатов кода? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2013, 13:25 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
Lumix, Прежде чем что-то делать, (особенно требующее финансовго вливания) надо собственно понять - что происходит, с какими обьемами данных работать, как часто надо работать, что надо получить в итоге. Ваш вопрос этого всего не освещает. я б вам порекомендовал стандартное "обратитесь к специалисту", т.к. слишком ваш вопрос расплывчатый, чтобы на него дать применимый в конкретном случае ответ, тем более на форуме. В результате каждый, кто вам отвечает, "дорисовывает" свое виденье задачи, оно может совпасть с тем что у вас, а может не совпасть. Если вам сейчас еще 10 вариантов "катастрофы" придумают - вы будете от всего защищаться? все не предугадаешь, чтобы правильно оптимизировать, надо знать что за задача и где она создает нагрузку, а где нет. Еще вчера вы ничего не подозревали, а сегодня хотите бежать покупать 8 ssd. Мне кажется, это свидетельсвует о том, что вы плохо представляете что у вас там происходит. Вам надо сначала понять это, численно оценить что есть и чего вы хотите, и только потом делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2013, 14:22 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
POSIX-fork и WinAPI-CreateProcesА если речь идет о POSIX-fork и WinAPI-CreateProcess, то там вообще такого ограничения никогда не было и никогда не было дубликатов кода? fork точно не создает дубликатов, т.к. это COW, а CreateProcess - создает процесс заново, поэтому зависит от того как винда вообще работает с дубликатами кода - я не в курсе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2013, 15:17 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyPOSIX-fork и WinAPI-CreateProcesА если речь идет о POSIX-fork и WinAPI-CreateProcess, то там вообще такого ограничения никогда не было и никогда не было дубликатов кода? fork точно не создает дубликатов, т.к. это COW, а CreateProcess - создает процесс заново, поэтому зависит от того как винда вообще работает с дубликатами кода - я не в курсе. fork - это COW как для дескрипторов, так и для исполняемого кода? А аналога fork-a в винде нету, или наоборот аналога CreateProcess в POSIX нету? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2013, 16:06 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyPOSIX-fork и WinAPI-CreateProcesА если речь идет о POSIX-fork и WinAPI-CreateProcess, то там вообще такого ограничения никогда не было и никогда не было дубликатов кода? fork точно не создает дубликатов, т.к. это COW, а CreateProcess - создает процесс заново, поэтому зависит от того как винда вообще работает с дубликатами кода - я не в курсе. Интересно-бы было померять как Windows-создаёт процессы. Я нашёл лишь сравнительные тесты где сравниваются скорости создания процессов, открытия сокетов и работы memory-mapped files для *bsd, и linux. http://bulk.fefe.de/scalability/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2013, 16:26 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
POSIX-fork и WinAPI-CreateProcesAnatoly Moskovskyпропущено... Под 64-битным линуксом, данное ограничение отсутствует... Под Виндой - не знаю как. Но думаю что как минимум начиная с Vista (где появился ASLR ) - вполне возможно тоже. А если речь идет о POSIX-fork и WinAPI-CreateProcess, то там вообще такого ограничения никогда не было и никогда не было дубликатов кода? Самый главный вброс теоретический вопрос в том, когда процессам загруженным из разных бинарников нужно иметь доступ к одной памяти. Как правильно разделить слои для вынесения в разделяемые библиотеки и как правильно эти библиотеки загрузить. А то не дай Бог ( для тех кто схавал вброс ) в общей памяти окажется неPOD обьект и некоторые бинарники могут не пердсказуемо сигфолтиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2013, 17:12 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
maytonИнтересно-бы было померять как Windows-создаёт процессы. Я нашёл лишь сравнительные тесты где сравниваются скорости создания процессов, открытия сокетов и работы memory-mapped files для *bsd, и linux. http://bulk.fefe.de/scalability/ Насколько я помню ИМХО , возможно заблуждаюсь Windoze без окон жить не умеют Даже если окон не видно ноги евентов от ОС для процессов ростут из окон . Поэтому ИМХО будет как минимум не быстрее чем в други ОС , где не нужно постоянно за собой тягать осколки окон. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2013, 17:18 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
ДохтаРmaytonИнтересно-бы было померять как Windows-создаёт процессы. Я нашёл лишь сравнительные тесты где сравниваются скорости создания процессов, открытия сокетов и работы memory-mapped files для *bsd, и linux. http://bulk.fefe.de/scalability/ Насколько я помню ИМХО , возможно заблуждаюсь Windoze без окон жить не умеют Даже если окон не видно ноги евентов от ОС для процессов ростут из окон . Поэтому ИМХО будет как минимум не быстрее чем в други ОС , где не нужно постоянно за собой тягать осколки окон. А консольные windows-applications? Разве они создают эти осколки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2013, 17:23 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
maytonДохтаРпропущено... Насколько я помню ИМХО , возможно заблуждаюсь Windoze без окон жить не умеют Даже если окон не видно ноги евентов от ОС для процессов ростут из окон . Поэтому ИМХО будет как минимум не быстрее чем в други ОС , где не нужно постоянно за собой тягать осколки окон. А консольные windows-applications? Разве они создают эти осколки? Даже если консольное но с сокетами , то труЪ Windoze сокет кодингThe third parameter is the Windows message that will be sent when a socket event occurs. In our case the message will be WM_SOCKET (remember we defined this as 104 earlier). The last parameter is a mask. We can set what socket events we want to listen for. Я другого способа труЪ кодинга не знаю :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2013, 18:16 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
аналога fork-a в виндеfork - это COW как для дескрипторов, так и для исполняемого кода? Для всего адресного пространства процесса, куда входит код программы, код либ, данные, стеки и прочее. Про дескрипторы и прочие объекты ядра, привязанные к процессу, не в курсе. аналога fork-a в виндеА аналога fork-a в винде нету, или наоборот аналога CreateProcess в POSIX нету? Первое. По крайней мере в официальном АПИ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2013, 19:15 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
аналога fork-a в виндеА аналога fork-a в винде нету, или наоборот аналога CreateProcess в POSIX нету? В Винде fork нет. Но есть в CygWin самопальная реализация аналога (а то как же в POSIX да без FORK-а). Но она такая медленная... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2013, 20:14 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
ДохтаР Насколько я помню ИМХО , возможно заблуждаюсь Windoze без окон жить не умеют Даже если окон не видно ноги евентов от ОС для процессов ростут из окон . Заблуждаешься, конечно же. Могут винды жить без окон. НО не любят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2013, 20:16 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyПод 64-битным линуксом, данное ограничение отсутствует - любая либа может быть загружена в разных процессах по разным адресам и при этом без дубликатов. Под Виндой - не знаю как. Но думаю что как минимум начиная с Vista (где появился ASLR ) - вполне возможно тоже. MasterZivВ виртуальном пространстве разных процессов этот сегмент кода может быть по разным адресам, и тем не менее физически это будет один блок и он будет разделяться. Возможно, я отстал от жизни, но есть один момент, который таки надо прояснить. Что делать с таблицей перемещения? Конечно, абсолютных адресов в скомпилированном коде очень мало. Но они есть. Если загрузка произошла по одним адресам - все окей, т.к. коррекция одинаковая. А если нет? ... PS Хотя... можно разделять только страницы, где есть коррекция, да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2013, 20:19 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
jmp_originalЧто делать с таблицей перемещения? Конечно, абсолютных адресов в скомпилированном коде очень мало. Но они есть. Если загрузка произошла по одним адресам - все окей, т.к. коррекция одинаковая. А если нет? Хотя этот вопрос и не следует обсуждать в отрыве от конкретной архитектуры, OS и компилятора, но всё же... Абсолютные адреса могут быть в скомпилированной коде. Но при сборке они все должны быть линкером устранены или положены в таблицу ссылок на перемещаемые объекты. При загрузке загрузчик делает настройку -- вычисляет реальные адреса и по таблице прописывает на них ссылки. Это так было типа в DOS/Win16. В Win32/64 вообще адреса все виртуальные, но и тут можно такое проделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2013, 20:30 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
jmp_originalХотя... можно разделять только страницы, где есть коррекция, да. Так оно именно постранично и происходит в любом случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2013, 20:44 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
MasterZivjmp_originalЧто делать с таблицей перемещения? Конечно, абсолютных адресов в скомпилированном коде очень мало. Но они есть. Если загрузка произошла по одним адресам - все окей, т.к. коррекция одинаковая. А если нет? Хотя этот вопрос и не следует обсуждать в отрыве от конкретной архитектуры, OS и компилятора, но всё же... Абсолютные адреса могут быть в скомпилированной коде. Но при сборке они все должны быть линкером устранены или положены в таблицу ссылок на перемещаемые объекты. При загрузке загрузчик делает настройку -- вычисляет реальные адреса и по таблице прописывает на них ссылки. Это так было типа в DOS/Win16. В Win32/64 вообще адреса все виртуальные, но и тут можно такое проделать. Хех. Как не повезло приложениям на Delphi (по крайней мере на 7). Я имею в виду строковые константы прямо в тексте программы. Которые, емнип, попадают в исполняемый сегмент напрямую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2013, 20:46 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
jmp_original Я согласен, что это малость оффтоп в C++, но просто как пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2013, 20:51 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
MasterZivВообще, многозадачность на процессах уже сейчас (я считаю) -- пережиток прошлого. По одной простой причине -- потоки могут разделять ресурсы, а процессы -- нет. Процессы обладают только одним достоинством -- они более безопасны, если гикнется, то умрёт только этот процесс, остальные выживут. Также будет верными и обратные утверждения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2013, 00:16 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
jmp_originalХех. Как не повезло приложениям на Delphi (по крайней мере на 7). Я имею в виду строковые константы прямо в тексте программы. Которые, емнип, попадают в исполняемый сегмент напрямую. Это не только в дельфе. И не понятно, почему не повезло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2013, 12:20 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
MasterZivjmp_originalХех. Как не повезло приложениям на Delphi (по крайней мере на 7). Я имею в виду строковые константы прямо в тексте программы. Которые, емнип, попадают в исполняемый сегмент напрямую. Это не только в дельфе. И не понятно, почему не повезло. Каждое место, обращающееся к таким строкам, имеет запись в таблице перемещений. И корректируется при загрузке. Ибо фиксированный адрес в сегменте кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2013, 14:27 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
jmp_originalКаждое место, обращающееся к таким строкам, имеет запись в таблице перемещений. И корректируется при загрузке. Ибо фиксированный адрес в сегменте кода. Не понял, почему требуется релокация именно при загрузке, когда для исполняемого модуля (программа или библиотека) в момент сборки известно относительное смещение его сегмента данных . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2013, 14:33 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
Я не понимаю, почему это вообще вас интересует и как это всё связано с С++ и с этим топиком в частности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2013, 16:22 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyНе понял, почему требуется релокация именно при загрузке, когда для исполняемого модуля (программа или библиотека) в момент сборки известно относительное смещение его сегмента данных .Только в tiny-модели. Во flat - уже нет, т.к. адресное пространство одно, часть его занята, а сколько именно будет занято при конкретном запуске - при сборке ещё неизвестно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2013, 16:25 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
MasterZiv, я в последний раз. Anatoly MoskovskyНе понял, почему требуется релокация именно при загрузке, когда для исполняемого модуля (программа или библиотека) в момент сборки известно относительное смещение его сегмента данных . Только вот этот самый сегмент данных может быть расположен по разным адресам при загрузке. Как следствие, в команде MOV EAX,_адрес_строки_ необходимо корректировать операнд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2013, 17:12 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovAnatoly MoskovskyНе понял, почему требуется релокация именно при загрузке, когда для исполняемого модуля (программа или библиотека) в момент сборки известно относительное смещение его сегмента данных .Только в tiny-модели. Во flat - уже нет, т.к. адресное пространство одно, часть его занята, а сколько именно будет занято при конкретном запуске - при сборке ещё неизвестно. Да все там известно. При загрузке исполняемого модуля через отображение файла в память (а так оно и происходит) все сегменты модуля сохраняют фиксированное смещение относительно друг друга и поэтому достаточно использовать генерацию PIC чтобы в рантайме не было необходимости в релокации. MasterZivЯ не понимаю, почему это вообще вас интересует и как это всё связано с С++ и с этим топиком в частности. Ну мало ли топиков было, где обсуждались детали реализации ОС - напрямую это не противоречит форуму, т.к. не запрещено, а всего лишь не рекомендуется :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2013, 20:11 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyПри загрузке исполняемого модуля через отображение файла в память (а так оно и происходит) все сегменты модуля сохраняют фиксированное смещение относительно друг другаОтносительно друг друга - да, а вот относительно базы (нуля) единственного "плоского" сегмента - уже негарантированно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 18:03 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, Так я и говорю - в линуксе все либы компилируются с PIC. Поэтому какая там база не имеет значения, код обращается ко всем функциям и данным по относительным адресам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 18:08 |
|
||
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#18+
Извиняюсь, если пропустил, но если вопрос производительности стоит ребром, м б кластеризация?? Процессы, потоки.. всё равно упираются в железо. Или там камни на видео карте задействовать. Имеются вариантики) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2013, 21:43 |
|
||
|
|

start [/forum/topic.php?all=1&fid=57&tid=2020036]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
83ms |
get tp. blocked users: |
1ms |
| others: | 11ms |
| total: | 189ms |

| 0 / 0 |
