Почему реестр Windows существует? [закрытый]

Сохраняя оператор преобразования внутри класса, вы даете автору класса контроль над тем, как он может быть преобразован (он не позволяет пользователям создавать неявных преобразований). Как разработчик, я бы счел это преимуществом, так как неявное преобразование имеет свои проблемы

. Разница заключается в том, что можно передавать один объект как другой и проходить через преобразование. функция. Первый сообщает, что объект имеет данный тип, а второй показывает новым читателям, что между этими двумя типами есть разница, и что преобразование необходимо.

38
задан pnuts 20 September 2014 в 18:22
поделиться

9 ответов

  1. Централизованное - что полезно для роуминга профили.
  2. Транзакционный - что усложняет разбить твой конфигурации.
  3. Безопасность - Вы можете принудительно выполнять чтение / запись с большей детализацией, чем файл (для каждого ключа / значения).
50
ответ дан 27 November 2019 в 03:22
поделиться

Кроме того, степень детализации файловой системы: один кластер для каждого значения - это слишком много, поэтому вам нужно найти компромисс, где заканчивается файловая система и начинается файл настроек. Это, конечно, не дает вам единообразного API. Так почему бы не объединить все настройки в несколько ключевых файлов и предоставить единый API для доступа к ним? БАМ - реестр.

(И поскольку MS обычно считает API более важным, чем формат, неудивительно, что файлы непрозрачны)

[голос Раймонда Чена] Помните, он был разработан для компьютеров, где 4 МБ ОЗУ было достаточно. [/ Голос Раймонда Чена]

7
ответ дан 27 November 2019 в 03:22
поделиться

Он создал единую точку входа для управления конфигурацией приложения всей системы. Это был бы хороший пример использования встроенной сетевой базы данных (например, Raima, используемой Rational) или текстовой базы данных (cdb Бернштейна).

-2
ответ дан 27 November 2019 в 03:22
поделиться

Я считаю, что они сделали это для поддержки отдельной настройки для каждого пользователя, входящего в систему. В Unix есть понятие домашнего каталога, а в Windows его нет.

1
ответ дан 27 November 2019 в 03:22
поделиться

Так что, когда двоичный реестр будет поврежден, вы просто сдадитесь и купите новейшую версию Windows для новой установки.

10
ответ дан 27 November 2019 в 03:22
поделиться

Во-первых, быстрее читать и записывать в реестр во время сеанса пользователя.

0
ответ дан 27 November 2019 в 03:22
поделиться

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

Однажды я прочитал несколько исследовательских работ именно по этой теме (имена приведены ниже), и в основном авторы использовали ограниченный скользящее окно размера по отсортированному списку строк. Они будут только сравнивать (используя алгоритм расстояние редактирования ) N * N строк внутри окна, тем самым снижая вычислительную сложность. Если любые две строки выглядели одинаково, они объединялись в кластер (путем вставки записи в отдельную таблицу кластеров).

За первым проходом по списку последовал второй проход , где строки были перевернуты перед сортировкой. Таким образом, строки с разными головками имели еще один шанс приблизиться достаточно близко, чтобы их можно было оценить как часть того же окна. На этом втором проходе, если строка выглядела достаточно близко к двум (или более) строкам в окне, и эти строки уже были частями своих собственных кластеров (найденных на первом проходе), тогда два кластера будут объединены (путем обновления таблицы кластеров), и текущая строка будет добавлена ​​во вновь объединенный кластер. Этот подход к кластеризации известен как алгоритм поиска объединения .

Затем они улучшили алгоритм, заменив окно списком основных X по существу уникальных прототипов . Каждая новая строка будет сравниваться с каждым из X лучших прототипов. Если строка будет выглядеть достаточно близко к одному из прототипов, она будет добавлена ​​в кластер прототипа . Если бы ни один из прототипов не выглядел достаточно похожим, строка стала бы новым прототипом , вытесняя самый старый прототип из верхнего списка X. (Для решения, какая из строк в кластере прототипа должна использоваться в качестве нового прототипа, представляющего весь кластер, использовалась эвристическая логика). Опять же, если бы строка выглядела похожей на несколько прототипов, все их кластеры были бы объединены.

Однажды я реализовал этот алгоритм для дедупликации записей имен / адресов с размерами списков около 10-50 миллионов записей, и он работал хорошо. чертовски быстро (и дубликаты тоже удалось найти).

В целом для таких проблем, Самая сложная часть, конечно, - найти правильное значение порога подобия . Идея состоит в том, чтобы фиксировать все дублирования без получения слишком большого количества ложных срабатываний . Данные с разными характеристиками обычно требуют разных пороговых значений. Выбор алгоритма расстояния редактирования также важен, поскольку одни алгоритмы лучше подходят для ошибок распознавания текста, в то время как другие - для опечаток, а третьи - для фонетических ошибок (например, при получении имени по телефону).

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

7
ответ дан 27 November 2019 в 03:22
поделиться

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

1
ответ дан 27 November 2019 в 03:22
поделиться

В этой статье обсуждаются файлы INI и реестр: http://blogs.msdn.com/oldnewthing/archive/2007/11/ 26 / 6523907.aspx

12
ответ дан 27 November 2019 в 03:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: