Jakie są różnice między gconf a dconf?

57

Czytałem dużo dyskusji na temat nowego narzędzia konfiguracyjnego Ubuntu: gconf jest zastąpiony przez dconf.

Dlaczego dokonuje się tej zmiany? Dlaczego jest o tym tyle debaty? Czy utworzenie narzędzia do migracji gconf2dconf jest zbyt trudne?

nkint
źródło

Odpowiedzi:

65

gconfzwykle używa zaplecza XML, podczas gdy dconfużywa własnego binarnego obiektu blob. Już na podstawie tej zmiany można wyciągnąć kilka punktów:

  • Binarny dostęp do odczytu jest znacznie szybszy niż parsowanie XML
  • Zgodnie z sekcją dotyczącą projektowania dconf , logowanie do Gnome składa się z tysięcy operacji odczytu i tylko kilku zapisów. Do gconftych tysięcy statystyk, tysięcy odczytów i tysięcy analiz. dconfbinarna kropla będzie atakować te bez obciążania systemu za pomocą tysiąca IOP.
  • XML jest bardziej przenośny
  • XML jest w dużej mierze czytelny dla człowieka i edytowalny.
  • System oparty na plikach można bez problemu oddzielić i porcjować
  • Zepsucie monolitycznego pliku binarnego może oznaczać, że całość umrze. Uszkodzenie pojedynczego pliku boli tylko ten segment gconf.

Wiele argumentów dotyczy argumentów za i przeciw rejestrowi systemu Windows.

W moim rozumieniu interfejs tego zaplecza ustawień byłby taki sam jak gconf: przez GSettings. Umożliwiłoby to dystrybutorom i użytkownikom wybranie jednego i wyłączenie, jeśli zajdzie taka potrzeba.

Oli
źródło
1
bardzo jasna odpowiedź. czytając swoją odpowiedź (expecially ostatni punkt 3) myślę, że nawet jeśli gconf wolniejszy jest lepiej ..
nkint
21
Inną dużą różnicą jest to, że odczytywanie ustawień z dconf odbywa się całkowicie w procesie, przy czym IPC występuje tylko w przypadku zapisów i powiadomień o zmianie. Natomiast prawie każda operacja GConf obejmuje IPC. Być może przeceniasz zalety GConf również za pomocą XML: jedyną obsługiwaną metodą dostępu do bazy danych GConf jest interfejs GConf API, a bezpośrednia edycja plików XML podczas działania gconfd może mieć nieoczekiwane rezultaty.
James Henstridge
2
Myślę, że główną zaletą korzystania z czegoś opartego na tekście jest możliwość uratowania jego części za pomocą dowolnego edytora tekstu, gdy plik zostanie częściowo uszkodzony (ale wydaje mi się, że teoretycznie można napisać narzędzie, które może uratować również części binarnych obiektów blob) ?).
JanC
3
Myślę, że najlepszym sposobem na uratowanie byłoby poddanie ~ / .config kontroli wersji, co pozwoli ci po prostu cofnąć, jeśli coś pójdzie nie tak. To naprawiłoby również wszelkie zamierzone zmiany konfiguracji z nieprzewidzianymi skutkami ubocznymi.
Jo-Erlend Schinstad,
1
@ Jo-ErlendSchinstad coś poszło nie tak, zawsze ma również możliwość spieprzenia plików kontrolnych VCS.
Ruslan