сколько мнений мундштуков обычно доступно в стандартной системе?putereads мьютекс число и производительность
Имеет много мьютексов pthreads ухудшает производительность?
ответ
Несколько ответов:
- Вы задаете неправильный вопрос. Если вам нужно более 1000 или около мьютексов, вы, скорее всего, что-то сделаете .
- Столько, сколько вам нужно. Метутекс, не связанный с процессом, не обычно использует любые ресурсы, кроме Оперативная память.
- Наличие множества неиспользуемых мьютексов ухудшает производительность точно так же, как и множество целых чисел; то есть вовсе не (при условии достаточной ОЗУ).
Я не согласен. Я бы сказал это наоборот: если вам нужен только один мьютекс, вы, вероятно, делаете что-то не так, как код блокировки, а не данные. Было бы очень разумно делать объектно-ориентированное программирование для * каждого объекта * для хранения одного или нескольких мьютексов. –
В Linux обычный мьютекс стоит ровно 24 байта. Это не слишком обременительно для многих случаев использования. – bdonlan
@bdonlan Вы неверны. В Linux/i386 с glibc мьютекс действительно стоит 24 байта. В Linux/x86_64 с glibc он стоит 40. Легко представить, что он стоит от 40 до 24 байтов в Linux для другого процессора или при использовании чего-то другого, кроме glibc. Кроме того, инициализация мьютекса * может быть довольно дорого (особенно если у вас есть 10 000 из них). Кроме того, ОП никогда не говорил, что использует Linux для начала. –
POSIX позволяет реализовать мьютексы как ресурс на системном уровне, но такая реализация будет считаться крайне низким качеством, и я не могу представить, чтобы кто-нибудь ее использовал. В действительности, при современных реализациях (думаю, Linux) количество мьютексов, которые вы можете использовать, ограничено только виртуальным адресным пространством. (На самом деле у вас может быть даже больше, до общего размера физической памяти/свопа плюс размер файловой системы, если вы используете mmap
и munmap
для их отображения и при необходимости.)
Что касается производительности, то на 32-битной glibc, разблокировка надежных мьютексов - это операция O(n)
, где n
- это число надежных мьютексов, заблокированных в настоящее время. Это связано с использованием односвязного списка, в котором требуется двусвязная; они закончили пространство в своей структуре pthread_mutex_t
, чтобы соответствовать обеими указателями. Эта проблема применима только к прочным мьютексам, которые редко используются на практике и только для 32-разрядных Linux/glibc. Для всех других типов мьютексов количество мьютексов имеет без воздействия на производительность. Тем не менее, количество мьютексов в настоящее время влияет на производительность, но это сложный вопрос, выходящий за рамки простого ответа.
- 1. CUDA, мьютекс и atomicCAS()
- 2. Синхронизация и мьютекс
- 3. C++: Мьютекс и освобождение
- 4. Число Takeuchi в Clojure (производительность)
- 5. C++ мьютекс и константная корректность
- 6. Мьютекс и Семафор в Java
- 7. Мьютекс и событие в Windows
- 8. Состояние переменной и общий мьютекс
- 9. Lightweight мьютекс
- 10. , когда использовать мьютекс
- 11. Как круговойбуфер улучшает производительность и конкурирует за определенный адрес памяти (мьютекс приостанавливает другой)?
- 12. Число столбцов влияет на производительность запросов?
- 13. Влияет ли число удаленных запросов на производительность?
- 14. Число столбцов в представлении влияет на производительность?
- 15. Одновременный доступ нескольких потоков и глобальный мьютекс
- 16. Разница btween станд :: атомное и станд :: мьютекс
- 17. Возможная ситуация взаимоблокировки: прерывание и мьютекс
- 18. Что такое «разделенный мьютекс»?
- 19. Зачем нужен нулевой мьютекс?
- 20. несколько процессов, один мьютекс
- 21. замена подталкивание :: мьютекс
- 22. ищет решение развивать мьютекс
- 23. C# мьютекс через ссылку
- 24. Мьютекс на рабочий стол
- 25. Брошенный мьютекс исключение
- 26. как создавать пользовательский мьютекс
- 27. замок, монитор, Мьютекс
- 28. Когда использовать рекурсивный мьютекс?
- 29. подталкивания заказ мьютекс
- 30. Мьютекс процесса по функции
Вы имеете в виду, что много заблокированных потоков на мьютексе ухудшают производительность? – Cipi
@Cipi нет, я имею в виду наличие многих мьютексов независимо от статуса – Anycorn