powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Есть ли смысл в потоках, если есть процессы
25 сообщений из 67, страница 2 из 3
Есть ли смысл в потоках, если есть процессы
    #38363195
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumixтак-то странно...
да
на дворе уже не 1990-й год
...
Рейтинг: 0 / 0
Есть ли смысл в потоках, если есть процессы
    #38363464
chabapok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumixchabapokа ssd довольно сильно поплохеет.

Прошу уточнить термин поплохеет для ssd, потому что у нас серваки как раз на ssd. У них реально резко сильно вырастает физический износ??? или под поплохеет имеется ввиду 100% нагрузка в течение очень долгого времени?

Сами-то как думаете?
Второе, ясно дело.

Физический износ ssd происходит при записи. Насколько понимаю, вы в данной задаче - читаете. А под термином поплохеет подразумевалось что изза seek-ов у вас производительность чтения просядет и это может нивелировать эффект от 15 параллельных потоков, может даже сделать гораздо хуже.
Все зависит от специфики задачи - там уже надо конкретно смотреть что как делается.
...
Рейтинг: 0 / 0
Есть ли смысл в потоках, если есть процессы
    #38363509
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chabapokА под термином поплохеет подразумевалось что изза seek-ов у вас производительность чтения просядет и это может нивелировать эффект от 15 параллельных потоков, может даже сделать гораздо хуже.

Хорошо намек понял. Попробуем поставить 8 дополнительных ssd дисков, на которых будут созданы точные копии сырой даты для чтения и тогда на один диск будет приходится всего 2 ядра / процесса.
...
Рейтинг: 0 / 0
Есть ли смысл в потоках, если есть процессы
    #38363527
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jmp_originalта же функция в разных процессахКстати, а кто в курсе, если одна и та же функция используется в разных процессах, то код этой функции копируется или размещается в разделяемой памяти и используется оттуда?
Разделяемый, при условии, что EXE/DLL, в которой находится этот код была загружена по одинаковому адресу (в виртуальном адресном пространстве процесса).
Под 64-битным линуксом, данное ограничение отсутствует - любая либа может быть загружена в разных процессах по разным адресам и при этом без дубликатов.

Под Виндой - не знаю как. Но думаю что как минимум начиная с Vista (где появился ASLR ) - вполне возможно тоже.
...
Рейтинг: 0 / 0
Есть ли смысл в потоках, если есть процессы
    #38363557
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonMasterZivПроцессы обладают только одним достоинством -- они более безопасны, если гикнется, то умрёт только этот процесс, остальные выживут.
Я это и имел в виду когда писал про юзабельность процессов. А ты что спросил?

Я спросил вообще, каким боком наблюдение процессов в таск манагере относится к данному вопросу и помогает программисту писать или отлаживать этот код?

Кстати, могу напомнить, что в некоторых ОС аналоги таск манагера могут показывать и потоки тоже.
...
Рейтинг: 0 / 0
Есть ли смысл в потоках, если есть процессы
    #38363560
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
та же функция в разных процессахLumixСоздавая тему, я пытался проверить, а можно ли на тредах выжать ещё больше производительность, но если треды и процы различаются только меморишарингом, то решение на процах пусть и остается. В итоге зачем я открывал тему, я все ответы получил.
Кстати, а кто в курсе, если одна и та же функция используется в разных процессах, то код этой функции копируется или размещается в разделяемой памяти и используется оттуда?

Это зависит от операционой системы, но потенциально возможно разместить такой код в разделяемой памяти только для чтения и использовать только одну копию такого сегмента.
Т.е. по факту многие (все распространённые системы) именно так и делают.
Но для этого нужны естественно защищённая память, виртуальная переадресация и read-only сегменты для кода.
...
Рейтинг: 0 / 0
Есть ли смысл в потоках, если есть процессы
    #38363564
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumixchabapokа ssd довольно сильно поплохеет.

Прошу уточнить термин поплохеет для ssd, потому что у нас серваки как раз на ssd. У них реально резко сильно вырастает физический износ??? или под поплохеет имеется ввиду 100% нагрузка в течение очень долгого времени?

SSD изнашиваются при записи, на сколько я знаю. Если ваши процессы только читают, ничего не будет.
А если даже и изнашивается -- что ж делать-то?

В любом случае это уже совсем далеко от темы.
...
Рейтинг: 0 / 0
Есть ли смысл в потоках, если есть процессы
    #38363566
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jmp_originalта же функция в разных процессахКстати, а кто в курсе, если одна и та же функция используется в разных процессах, то код этой функции копируется или размещается в разделяемой памяти и используется оттуда?
Разделяемый, при условии, что EXE/DLL, в которой находится этот код была загружена по одинаковому адресу (в виртуальном адресном пространстве процесса).

В виртуальном пространстве разных процессов этот сегмент кода может быть по разным адресам, и тем не менее физически это будет один блок и он будет разделяться.
...
Рейтинг: 0 / 0
Есть ли смысл в потоках, если есть процессы
    #38363569
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumix2) что ось не оптимизирует память даже если чексум вновь исполняемого файла равняется чексуму уже находящихся в исполнении файлов


Никакие чексуммы там не нужны, у них есть путь к исполняемому модулю и имя/номер сегмента.
Это уже однозначно идентифицирует сегмент во всех процессах.
...
Рейтинг: 0 / 0
Есть ли смысл в потоках, если есть процессы
    #38363774
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyПод 64-битным линуксом, данное ограничение отсутствует - любая
либа может быть загружена в разных процессах по разным адресам и при этом без дубликатов.

ЕМНИП, исходники для разделяемых библиотек всегда требовалось компилировать с ключом
-fPIC, что как раз означает генерацию позиционно-независимого кода. Так почему только "под
64-битным линуксом"?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Есть ли смысл в потоках, если есть процессы
    #38363812
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LumixchabapokА под термином поплохеет подразумевалось что изза seek-ов у вас производительность чтения просядет и это может нивелировать эффект от 15 параллельных потоков, может даже сделать гораздо хуже.

Хорошо намек понял. Попробуем поставить 8 дополнительных ssd дисков, на которых будут созданы точные копии сырой даты для чтения и тогда на один диск будет приходится всего 2 ядра / процесса.

Подумайте на досуге ,
склько у вас памяти , сколько нужно для 8 нитей
и сколько нужно кеша файловой системы.
Что будет, когда активный ввод вывод в кеш ФС будет заганять ваши процессы в своп
и что можно-нужно сделать, что бы этого не происходило.
...
Рейтинг: 0 / 0
Есть ли смысл в потоках, если есть процессы
    #38363861
Anatoly Moskovskyjmp_originalпропущено...

Разделяемый, при условии, что EXE/DLL, в которой находится этот код была загружена по одинаковому адресу (в виртуальном адресном пространстве процесса).
Под 64-битным линуксом, данное ограничение отсутствует - любая либа может быть загружена в разных процессах по разным адресам и при этом без дубликатов.

Под Виндой - не знаю как. Но думаю что как минимум начиная с Vista (где появился ASLR ) - вполне возможно тоже.
А как это вообще реализуется, в разных процессах разные виртуальные адреса ссылаются на одно и то же физическое адресное пространство в котором расположен общий код? И это физическое пространство чем-то отличается от разделяемой памяти или это оно и есть?
...
Рейтинг: 0 / 0
Есть ли смысл в потоках, если есть процессы
    #38363918
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
отличается от разделяемой памятиА как это вообще реализуется, в разных процессах разные виртуальные адреса ссылаются на одно и то же физическое адресное пространство в котором расположен общий код? И это физическое пространство чем-то отличается от разделяемой памяти или это оно и есть?
Реализуется через memory-mapped files с отображением в нужный адрес.
Dimitry SibiryakovЕМНИП, исходники для разделяемых библиотек всегда требовалось компилировать с ключом
-fPIC, что как раз означает генерацию позиционно-независимого кода. Так почему только "под
64-битным линуксом"?
А, это у меня видимо ложная память про 32 бита :)
...
Рейтинг: 0 / 0
Есть ли смысл в потоках, если есть процессы
    #38363952
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivmaytonпропущено...

Я это и имел в виду когда писал про юзабельность процессов. А ты что спросил?

Я спросил вообще, каким боком наблюдение процессов в таск манагере относится к данному вопросу и помогает программисту писать или отлаживать этот код?

Кстати, могу напомнить, что в некоторых ОС аналоги таск манагера могут показывать и потоки тоже.
Ну про мегафлопы автору уже рассказали. Разницы нет. Про плюсы потоков ему рассказали. Есть когда есть
shared данные. Что у него там является shared - ХЗ. Автор
не колется. Может и ничего. Может он просто количество слов решил посчитать и подытожить.
Тогда ему что процесс что поток - всё едино. Посчитал - слил результат. Если выбирать
удобство - использования то процессы лучше. По поводу диска - пускай смотрит сам.
Здесь сам себе злобный буратино.

По поводу каким боком относится - ну и никаким. Он же не спрашивает как ему писать или отлаживать код.
Вот я и не отвечаю. Даю пространные советы как бы Я эту задачу реализовывал исходя из данных СКУДНЫХ
знаний о самой задаче и о конфигурации.
...
Рейтинг: 0 / 0
Есть ли смысл в потоках, если есть процессы
    #38364574
Anatoly Moskovskyjmp_originalпропущено...

Разделяемый, при условии, что EXE/DLL, в которой находится этот код была загружена по одинаковому адресу (в виртуальном адресном пространстве процесса).
Под 64-битным линуксом, данное ограничение отсутствует...
Под Виндой - не знаю как. Но думаю что как минимум начиная с Vista (где появился ASLR ) - вполне возможно тоже.
А если речь идет о POSIX-fork и WinAPI-CreateProcess, то там вообще такого ограничения никогда не было и никогда не было дубликатов кода?
...
Рейтинг: 0 / 0
Есть ли смысл в потоках, если есть процессы
    #38364676
chabapok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumix,

Прежде чем что-то делать, (особенно требующее финансовго вливания) надо собственно понять - что происходит, с какими обьемами данных работать, как часто надо работать, что надо получить в итоге. Ваш вопрос этого всего не освещает.

я б вам порекомендовал стандартное "обратитесь к специалисту", т.к. слишком ваш вопрос расплывчатый, чтобы на него дать применимый в конкретном случае ответ, тем более на форуме. В результате каждый, кто вам отвечает, "дорисовывает" свое виденье задачи, оно может совпасть с тем что у вас, а может не совпасть.

Если вам сейчас еще 10 вариантов "катастрофы" придумают - вы будете от всего защищаться? все не предугадаешь, чтобы правильно оптимизировать, надо знать что за задача и где она создает нагрузку, а где нет. Еще вчера вы ничего не подозревали, а сегодня хотите бежать покупать 8 ssd. Мне кажется, это свидетельсвует о том, что вы плохо представляете что у вас там происходит. Вам надо сначала понять это, численно оценить что есть и чего вы хотите, и только потом делать.
...
Рейтинг: 0 / 0
Есть ли смысл в потоках, если есть процессы
    #38364791
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
POSIX-fork и WinAPI-CreateProcesА если речь идет о POSIX-fork и WinAPI-CreateProcess, то там вообще такого ограничения никогда не было и никогда не было дубликатов кода?
fork точно не создает дубликатов, т.к. это COW, а CreateProcess - создает процесс заново, поэтому зависит от того как винда вообще работает с дубликатами кода - я не в курсе.
...
Рейтинг: 0 / 0
Есть ли смысл в потоках, если есть процессы
    #38364921
Anatoly MoskovskyPOSIX-fork и WinAPI-CreateProcesА если речь идет о POSIX-fork и WinAPI-CreateProcess, то там вообще такого ограничения никогда не было и никогда не было дубликатов кода?
fork точно не создает дубликатов, т.к. это COW, а CreateProcess - создает процесс заново, поэтому зависит от того как винда вообще работает с дубликатами кода - я не в курсе.
fork - это COW как для дескрипторов, так и для исполняемого кода?
А аналога fork-a в винде нету, или наоборот аналога CreateProcess в POSIX нету?
...
Рейтинг: 0 / 0
Есть ли смысл в потоках, если есть процессы
    #38364975
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyPOSIX-fork и WinAPI-CreateProcesА если речь идет о POSIX-fork и WinAPI-CreateProcess, то там вообще такого ограничения никогда не было и никогда не было дубликатов кода?
fork точно не создает дубликатов, т.к. это COW, а CreateProcess - создает процесс заново, поэтому зависит от того как винда вообще работает с дубликатами кода - я не в курсе.
Интересно-бы было померять как Windows-создаёт процессы.

Я нашёл лишь сравнительные тесты где сравниваются скорости создания процессов,
открытия сокетов и работы memory-mapped files для *bsd, и linux.

http://bulk.fefe.de/scalability/
...
Рейтинг: 0 / 0
Есть ли смысл в потоках, если есть процессы
    #38365096
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
POSIX-fork и WinAPI-CreateProcesAnatoly Moskovskyпропущено...

Под 64-битным линуксом, данное ограничение отсутствует...
Под Виндой - не знаю как. Но думаю что как минимум начиная с Vista (где появился ASLR ) - вполне возможно тоже.
А если речь идет о POSIX-fork и WinAPI-CreateProcess, то там вообще такого ограничения никогда не было и никогда не было дубликатов кода?

Самый главный вброс теоретический вопрос в том, когда процессам загруженным
из разных бинарников нужно иметь доступ к одной памяти.

Как правильно разделить слои для вынесения в разделяемые библиотеки
и как правильно эти библиотеки загрузить.

А то не дай Бог ( для тех кто схавал вброс ) в общей памяти окажется неPOD обьект и некоторые бинарники могут не пердсказуемо сигфолтиться.
...
Рейтинг: 0 / 0
Есть ли смысл в потоках, если есть процессы
    #38365106
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonИнтересно-бы было померять как Windows-создаёт процессы.

Я нашёл лишь сравнительные тесты где сравниваются скорости создания процессов,
открытия сокетов и работы memory-mapped files для *bsd, и linux.

http://bulk.fefe.de/scalability/

Насколько я помню ИМХО , возможно заблуждаюсь
Windoze без окон жить не умеют
Даже если окон не видно ноги евентов от ОС для процессов ростут из окон .
Поэтому ИМХО будет как минимум не быстрее чем в други ОС ,
где не нужно постоянно за собой тягать осколки окон.
...
Рейтинг: 0 / 0
Есть ли смысл в потоках, если есть процессы
    #38365119
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаРmaytonИнтересно-бы было померять как Windows-создаёт процессы.

Я нашёл лишь сравнительные тесты где сравниваются скорости создания процессов,
открытия сокетов и работы memory-mapped files для *bsd, и linux.

http://bulk.fefe.de/scalability/

Насколько я помню ИМХО , возможно заблуждаюсь
Windoze без окон жить не умеют
Даже если окон не видно ноги евентов от ОС для процессов ростут из окон .
Поэтому ИМХО будет как минимум не быстрее чем в други ОС ,
где не нужно постоянно за собой тягать осколки окон.
А консольные windows-applications? Разве они создают эти осколки?
...
Рейтинг: 0 / 0
Есть ли смысл в потоках, если есть процессы
    #38365182
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.


Я другого способа труЪ кодинга не знаю :)
...
Рейтинг: 0 / 0
Есть ли смысл в потоках, если есть процессы
    #38365262
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
аналога fork-a в виндеfork - это COW как для дескрипторов, так и для исполняемого кода?
Для всего адресного пространства процесса, куда входит код программы, код либ, данные, стеки и прочее.
Про дескрипторы и прочие объекты ядра, привязанные к процессу, не в курсе.
аналога fork-a в виндеА аналога fork-a в винде нету, или наоборот аналога CreateProcess в POSIX нету?
Первое. По крайней мере в официальном АПИ.
...
Рейтинг: 0 / 0
Есть ли смысл в потоках, если есть процессы
    #38365313
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
аналога fork-a в виндеА аналога fork-a в винде нету, или наоборот аналога CreateProcess в POSIX нету?

В Винде fork нет.
Но есть в CygWin самопальная реализация аналога (а то как же в POSIX да без FORK-а). Но она такая медленная...
...
Рейтинг: 0 / 0
25 сообщений из 67, страница 2 из 3
Форумы / C++ [игнор отключен] [закрыт для гостей] / Есть ли смысл в потоках, если есть процессы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]