Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Есть ли смысл в потоках, если есть процессы
|
|||
|---|---|---|---|
|
#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 |
|
||
|
|

start [/forum/search_topic.php?author=RENTV&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
69ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 439ms |
| total: | 632ms |

| 0 / 0 |
