Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / C++ Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5 6   вперед  Ctrl      все
 Re: Запись в реестр  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton

Я абсолютно поддержу этот aproach как родной для Unix/Linux подобных конфигураций. Он исторически
прижился и вообще файлы в Linux системах наполнены более широким смыслом нежели в Windows.
Сюда-же семантика скрытого фолдера (начинающийся с точки). Это все - наследние Unix/Linux.

Семантика скрытого фолдера, насколько я знаю, это был баг в первых версиях ФС Юникс.

И каким же таким более широким смыслом файлы наполнены в Юникс/Линукс нежели чем в Виндах?
28 дек 20, 15:54    [22255667]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
petrav,

почитай сам. Блочные устройства. Каналы и сокеты. С помощью канальных устройств (mknod)
я делал в Linux/Ext3 для Оракла такие штуки которые в Windows/NTFS принципиально невозможно
повторить.

Скрытый фолдер был скорее багом утилит листинга которые скрывали фолдер с предшетсвующей точкой "."
и эта традиция и сегодня используется в Linux/Unix и к моему ужасу ее перенесли на Windows
просто как порты исходников Linux приложений.

Я по прежнему настаиваю на пользе использования Windows registry для Windows приложений пока
мне не доказали обратное. Тоесть не доказали что реестр опасе или вреден или создает перформанс-проблемы.
28 дек 20, 16:26    [22255695]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton
petrav,

почитай сам. Блочные устройства. Каналы и сокеты.

Воля ваша, но могли бы конечно хотя бы один use case на пальцах пояснить.
28 дек 20, 16:46    [22255718]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
С ораклом? Ну вот по аналогии с этим. Почитай как толстяк Бурльсон делает экспорт БД в условиях нехватки
места.

http://www.dba-oracle.com/t_export_2_gig_limit.htm

И обрати внимание как работает mknod в операционке linux.

mknod compress_pipe p
mknod split_pipe p


Только у меня интереснее было. У меня на 1 физическом сервере стояло 2 БД. И я экспортировал одну
и импортировал в другую одновременно. А толстяк просто сохраняет по конвейеру в файл а потом архивирует gzip-ом.

В скобках замечу что утилита exp/imp НЕ УМЕЕТ работать с STDIN/STDOUT. Это важно.

И попробуй это повторить на Windows.
28 дек 20, 16:51    [22255721]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10925
mayton
И попробуй это повторить на Windows.
Отсутствие штатных утилит создания каналов, ещё не означает, что их нельзя создать в принципе
28 дек 20, 17:00    [22255737]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

mayton
Тоесть не доказали что реестр опасе или вреден или создает перформанс-проблемы.

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

Ну и, как всякое структурированное хранилище, иногда он имеет привычку портиться. После
чего следует п.3.

Posted via ActualForum NNTP Server 1.5

28 дек 20, 17:08    [22255752]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Dimitry Sibiryakov

mayton
Тоесть не доказали что реестр опасе или вреден или создает перформанс-проблемы.

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

Понимаешь. Мы не можем брать за правило - рассматривать исключения как норму или как основу для архитектур.

Если админ зобанил ветку пользователя - то да. Ну пиши в каталог пользователя. Потом он зобанит
каталог пользователя - ты будешь писать в веб-сокет ну и так далее. До полного абсурда.
Если админ не хочет чтобы софт работал - развеж мы тут ему помешаем?

Сообщение было отредактировано: 28 дек 20, 17:21
28 дек 20, 17:23    [22255773]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
Dimitry Sibiryakov,
1. Согласен. Не умеет реестр, пусть файл пишет
2. Настройки для всех обычно прав нет. Ну, MS не рекомендует.
3. Бэкап автоматом это супер
4. Портится положения окон? Ну и фиг с ними
28 дек 20, 17:25    [22255776]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Dimitry Sibiryakov

В-третьих, система считает его своей частью, поэтому бэкапит (и что самое плохое -
восстанавливает) целиком как часть точки восстановления когда ей в голову взбредёт.

А вот это уже интересно обсудить без админа. Просто как частный случай.
Был восстановлен старый снапшот реестра. Каково будет поведение приложения?
Я думаю - программист ответит нам.

Кстати поведение приложения хранящего конфиги на файлах не будет лучше
в данном случае. Тоже обсуждается.
28 дек 20, 17:25    [22255777]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Dimitry Sibiryakov

mayton
Тоесть не доказали что реестр опасе или вреден или создает перформанс-проблемы.

Во-первых, работа с ним тривиально сложнее. Топикстартер, вон, так и не осилил.

Не согласен. Я думаю что на файловых операциях мы ТС-а похороним еще быстрее.
Работая с реестром - он работает атомарно к ключами и значениями.

В файлах - больше стейта. Больше аномалий. Файл надо грамотно открыть. Грамотно распарсить.
Модифицировать. И закрыть. Много рутины короче для вместо того чтобы key-value
взят-положить.
28 дек 20, 17:29    [22255785]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
m_Sla
Member

Откуда:
Сообщений: 2709
GetPrivateProfileStringW - вроде проще реестра
28 дек 20, 17:40    [22255803]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
m_Sla
GetPrivateProfileStringW - вроде проще реестра

Это вообще полный капец. В msdn пишут что эта функция осталась только для совместимости с Windows-3.1.

Тоесть это не то что тухляк. Это уже археологическая находка.
28 дек 20, 17:45    [22255811]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton

Не согласен. Я думаю что на файловых операциях мы ТС-а похороним еще быстрее.
Работая с реестром - он работает атомарно к ключами и значениями.

С ключ-значение атомарно. Но есть ли большая польза от атомарности на уровне одного значения?

Поддерживает ли реестр транзакции? Файл заблокировать то не очень сложно.
28 дек 20, 17:54    [22255830]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
petrav,

В реестре есть дерево.
Класс такой в дельфи появился не давно. А в Си?
28 дек 20, 18:34    [22255874]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
petrav
mayton

Не согласен. Я думаю что на файловых операциях мы ТС-а похороним еще быстрее.
Работая с реестром - он работает атомарно к ключами и значениями.

С ключ-значение атомарно. Но есть ли большая польза от атомарности на уровне одного значения?

Поддерживает ли реестр транзакции? Файл заблокировать то не очень сложно.


Вот что-то есть https://docs.microsoft.com/en-us/windows/win32/api/winreg/nf-winreg-regopenkeytransacteda

надо читать и разбираться.
28 дек 20, 18:37    [22255878]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

PetroNotC Sharp
Настройки для всех обычно прав нет. Ну, MS не рекомендует.

Похоже, вы, ребята, не в теме. Почитайте на досуге про различия между
FOLDERID_LocalAppData, FOLDERID_RoamingAppData и FOLDERID_ProgramData в условиях roaming
profiles домена Windows. И если найдёте - то же самое про реестр.

Posted via ActualForum NNTP Server 1.5

28 дек 20, 18:48    [22255888]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
mayton,
Да не нужны там транзакции.
28 дек 20, 18:49    [22255889]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
Dimitry Sibiryakov,
Я не только читаю, но пишу туда
28 дек 20, 18:50    [22255890]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dima T
Member

Откуда:
Сообщений: 15689
mayton
m_Sla
GetPrivateProfileStringW - вроде проще реестра

Это вообще полный капец. В msdn пишут что эта функция осталась только для совместимости с Windows-3.1.

Тоесть это не то что тухляк. Это уже археологическая находка.

Вроде как с *.ini по другому никак не поработать штатными средствами. А так да, тухляк, начиная с Win7 ее опошлили добавив кэширование в виртуальном реестре, в итоге какие-то криворукие индусы это дописывали, поэтому работает, но иногда запись через WritePrivateProfileString() не происходит.
28 дек 20, 19:06    [22255904]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dima T
Member

Откуда:
Сообщений: 15689
petrav
mayton

Не согласен. Я думаю что на файловых операциях мы ТС-а похороним еще быстрее.
Работая с реестром - он работает атомарно к ключами и значениями.

С ключ-значение атомарно. Но есть ли большая польза от атомарности на уровне одного значения?

Поддерживает ли реестр транзакции? Файл заблокировать то не очень сложно.

SQLite - и транзакции, и один файл данных, и один файл исходника, и еще куча плюшек.
28 дек 20, 19:08    [22255907]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
Dima T
petrav
пропущено...

С ключ-значение атомарно. Но есть ли большая польза от атомарности на уровне одного значения?

Поддерживает ли реестр транзакции? Файл заблокировать то не очень сложно.

SQLite - и транзакции, и один файл данных, и один файл исходника, и еще куча плюшек.

+1
Но оверхед в цепочке
ini - - > Реестр - - > sqlite
28 дек 20, 19:16    [22255912]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Видите как интересно. За 30 лет эволюции Windows так и не обзавёлся лаконичным встроенным средством
для работы с файловыми конфигами. Вы все еще работаете с "мешком свойств". Даже не json/yaml.

SQLite надо обсуждать. У него тоже есть оверхед вида "журнал". Мало кому понравится если 1000 раз модифицировав
свойство ваш конфиг умножится в 100 раз по занимаемому месту. Тоесть нужно придумывать какие-то механизмы
самообслуживания. Схлопывания журнала. Или какую-то там архивацию.

В свете всего этого registry по прежнему выглядит привлекательнее.
28 дек 20, 19:26    [22255922]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dima T
Member

Откуда:
Сообщений: 15689
PetroNotC Sharp
Но оверхед в цепочке
ini - - > Реестр - - > sqlite

В смысле? sqlite медленнее читает/пишет чем ini или реестр? ini однозначно тормознее, т.к. индексов не предусмотрено, реестр тоже СУБД, хз быстрее ли он чем sqlite.
Да и не надо супер скоростей для чтения настроек, а если надо, то в переменных кэшировать и будет точно быстрее.
28 дек 20, 19:26    [22255923]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dima T
Member

Откуда:
Сообщений: 15689
mayton
SQLite надо обсуждать. У него тоже есть оверхед вида "журнал". Мало кому понравится если 1000 раз модифицировав
свойство ваш конфиг умножится в 100 раз по занимаемому месту. Тоесть нужно придумывать какие-то механизмы
самообслуживания. Схлопывания журнала. Или какую-то там архивацию.

Все уже есть, только включать надо PRAGMA schema.auto_vacuum
28 дек 20, 19:31    [22255926]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton
Видите как интересно. За 30 лет эволюции Windows так и не обзавёлся лаконичным встроенным средством
для работы с файловыми конфигами. Вы все еще работаете с "мешком свойств". Даже не json/yaml.

Есть библиотека MSXML.
28 дек 20, 19:39    [22255934]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5 6   вперед  Ctrl      все
Все форумы / C++ Ответить