|
Модератор
|
||
Что имеют в виду, когда говорят о масштабируемости системы?05.01.2017, 14:51. Показов 2054. Ответов 7
Метки нет (Все метки)
Что имеют в виду, когда говорят о
масштабируемости системы? Что такое масштабируемость?Хочется простого внятного определения, с простыми примерами на C++.Как я сам понимаю данный термин?
_____________________________ Примечание: вопрос возник в связи с разбором паттерна "Одиночка" (Singleton). Довольно часто среди минусов данного паттерна упоминается, что он препятствует масштабируемости системы.
2
|
||
| 05.01.2017, 14:51 | |
|
Ответы с готовыми решениями:
7
Распределённые системы. Как именно реализовываются механизмы масштабируемости? Как сделать так,что, когда все детали имеют одинаковый вес, выводилось соответствующее сообщение об этом Говорят, что математика умрёт |
|
Неэпический
|
||||||
| 05.01.2017, 15:06 | ||||||
|
Простой пример на C++:
Отдали всё это заказчику, но вот беда, у него проц с четырьмя ядрами, и там можно задействовать четыре потока, а не два. А другой комп у него с процем двумя ядрами... Так что вышеприведенный код не подстроится под новое оборудование, хоть мильёнёдренный процессор ему подавай, он всё равно не будет жрать больше двух ядер.
1
|
||||||
|
Модератор
|
|
| 05.01.2017, 15:20 [ТС] | |
|
Croessmah, так, пока понятно. Написали прогу под заданные аппаратные требования, но при улучшении аппаратных характеристик прога лучше работать не будет. Тут ясно. Однако же, если пользоваться мои определением (другого пока никто не привёл) функциональность системы (программы) сохранена. Прога работает. Лучше работать не стала, но и ухудшения не наблюдаем. Или в данном примере под системой имеется ввиду аппаратная часть (количество ядер проца)?
А насчёт синглтона? Как он препятствует (может препятствовать) масштабируемости системы?
0
|
|
|
Ушел с форума
|
|
| 05.01.2017, 15:25 | |
|
Я бы сказал, что масштабируемость - это способность программной системы эффективно
использовать все доступные ресурсы, независимо от их количества. Пример с искусственным ограничением по количеству потоков уже привели выше, приведу еще один. Пусть, например, у нас есть программа, которая кушает в среднем 5-7 процентов CPU. Пока пользователь один, все хорошо и загрузка незаметна. Но как только программу запускают на сервере терминалов в множестве параллельных сессий, она начинает безбожно нагружать проц так, что работать становится вообще невозможно. Это пример программы, которая не масшабируется, ее авторы явно были не в курсе, что такое сервер терминалов, 'server consolidation' и т.д. Некоторые программы, которые работают с большими объемами данных, умеют загружать и хранить их целиком в оперативной памяти, без промежуточных кэшей. В таких случаях скорость доступа к данным напрямую зависит от объема установленной RAM. Здесь тоже можно сказать, что программа хорошо масшабируется по памяти. А ведь есть такие, которым сколько RAM и CPU не подавай - им все мало ![]() Добавлено через 3 минуты Не вижу причин, по которым использование синглтона могло бы как-то негативно сказаться на масшабируемости или тестируемости системы. Разумеется, это предполагает, что мы используем "правильные, хорошие" синглтоны... Добавлено через 15 секунд Не вижу причин, по которым использование синглтона могло бы как-то негативно сказаться на масшабируемости или тестируемости системы. Разумеется, это предполагает, что мы используем "правильные, хорошие" синглтоны...
1
|
|
|
Неэпический
|
|
| 05.01.2017, 15:30 | |
|
gru74ik, например, если взять многопоточное приложение,
то конкуренция за синглтон среди двух потоков может быть несущественной, но если потоков станет восемь, то конкуренция за синглтон может существенно стукнуть по производительности, так что увкличение количества потоков в четыре раза не даст четырехкратного увеличения производительности, и увеличение производительности железа ничего не даст, т.к. потоки всё равно будут простаивать в ожидании своей очереди.
0
|
|
|
Модератор
|
|||
| 05.01.2017, 15:31 [ТС] | |||
|
0
|
|||
|
Ушел с форума
|
|
| 05.01.2017, 15:41 | |
|
Ну я буду краток.
Хороший синглтон - это класс с реентрабельным полиморфным API, который не имеет побочных эффектов, связанных с временем жизни синглтона. Такой синглтон тоже может эффективно масшабироваться в многопоточной среде. Например, за счет "умных" блокировок: одна блокировка на поток, на сессию и т.д. Тестировать его можно через полиморфный API с моками, стабами и всеми остальными характерными "примочками" юнит-тестов. Простых примеров кода не приведу, потому что написать такой синглтон довольно сложно. Но не невозможно...
1
|
|
|
Модератор
|
|
| 05.01.2017, 17:01 [ТС] | |
|
Ага, я не один такой умник, оказывается.
0
|
|
| 05.01.2017, 17:01 | |
|
Помогаю со студенческими работами здесь
8
Говорят что пых регистрозависимый язык Говорят, что Яндекс банит за скрытый текст Почему говорят, что Linq To Sql умер?
Не катят игры, говорят что скорее всего из-за оперативы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|