


Eine neue Version der plattformübergreifenden Terminaldatenbank WCDB von WeChat ist Open Source und bietet neue Unterstützung für C++ und Kotlin
Laut Nachrichten vom 9. April handelt es sich bei WCDB um eine Terminaldatenbank, die auf SQLite Open Source basiert und vom WeChat-Team bereitgestellt wird. Seit der Open-Source-Veröffentlichung im Juni 2017 wurden mehr als zehn Versionen veröffentlicht.
Als eine der am häufigsten genutzten Apps in China und sogar weltweit deckt WeChat intern Datenbanken für verschiedene Unternehmen ab und die Anzahl der gespeicherten Nachrichten kann Millionen oder sogar mehrere zehn Millionen erreichen. Diese riesige Datenmenge und die immer umfangreicheren Anwendungsszenarien haben zu ständig aktualisierten Anforderungen und Herausforderungen für WCDB geführt, und das ursprüngliche Code-Framework ist nach und nach schwer zu bewältigen.
Daher hat WeChat ab 2019 beschlossen, die Abwärtskompatibilität der Schnittstelle aufzugeben und alle Anstrengungen zu unternehmen, um eine neue und leistungsfähigere Version von WCDB zu erstellen. Nach mehreren Iterationen wurden die Schnittstellenschicht und die Kernlogikschicht von WCDB umfassend verbessert und es wurden auch viele neue Funktionen hinzugefügt.
Jetzt hat WeChat angekündigt, dass die neue Version von WCDB, ein großes Upgrade, Open Source sein wird Zu den wichtigsten Änderungen und Aktualisierungen gehören:
Umfangreichere Unterstützung für Entwicklungssprachen: zusätzliche Unterstützung für C++, vollständige Unterstützung für Java und Kotlin-Sprachen ORM, das mehr Terminalplattformen abdeckt;
Leistungsstärkere SQL-Ausdrucksfunktionen: Winq wurde neu geschrieben, gestärkt usw.;
Flexiblere Datenerweiterungsfunktionen: Datenmigration, Datenkomprimierung usw.;
Detailliertere Leistungsoptimierungsfunktionen: FTS5-Optimierung, unterbrechbare Transaktionen usw.
WCDB Version 1.0 unterstützt drei Entwicklungssprachen: Objective-C, Swift und Java. Mit Ausnahme der drei Sprachen von WCDB, die dieselbe Version von SQLite und denselben Satz an Sicherungs- und Reparaturlogik verwenden Der Code wird unabhängig entwickelt.
Während WCDB weiter iteriert, werden viele der neuen Funktionen von WCDB online in der ObjC-Version entwickelt und verifiziert. Die Swift- und Java-Versionen befinden sich im Grunde in einem Zustand, in dem die Iteration gestoppt wird, und die Unterschiede zwischen ihnen werden immer größer. Im Idealfall sollte WCDB in verschiedenen Sprachversionen über die gleichen Fähigkeiten verfügen. Wenn die neue Logik der ObjC-Version jedoch in Swift und Java erneut implementiert wird, ist dies nicht nur eine hohe Arbeitsbelastung, sondern auch fehleranfällig. Es muss noch einmal online verifiziert werden, was nicht ganz der Realität entspricht.
Glücklicherweise ist die Kernlogik der
ObjC-Version von WCDB in C++ implementiert, und ObjC wird nur zur Implementierung der Schnittstellenschichtlogik verwendet. Viele Bibliotheken, die mehrere Entwicklungssprachen unterstützen, verwenden die Sprache C++ zur Implementierung der Kernlogik, während andere Sprachen nur zur Implementierung der Schnittstellenschicht verwendet werden, beispielsweise die sehr beliebte clientseitige NoSQL-Datenbankkomponente realmDB. WCDB kann auch nach dieser Idee entworfen werden, sodass die ObjC-Version von WCDB nur geringfügige Anpassungen erfordert und die Kernlogik vollständig in C++ implementiert ist. Swift und Java greifen über die Bridging-Methode auf die C++-Kernlogik zu.
Um die Datenbankentwicklungsanforderungen verschiedener Szenarien auf jeder Seite von WeChat vollständig zu unterstützen, hat WCDB außerdem seine Unterstützung für C++ und Kotlin erweitert und deckt damit die gängigen Sprachen für die Terminalentwicklung vollständig ab.
Auf Schnittstellenebene unterstützt die neue Version von WCDB vollständig die fünf wichtigsten Terminalentwicklungssprachen C++, Java, Kotlin, Swift und ObjC und deckt die vier wichtigsten Terminalplattformen Android und iOS ab , Windows und Linux. Gleichzeitig hat WeChat auch Winq neu geschrieben und verbessert, „um es Entwicklern zu ermöglichen, beliebiges SQL mit nativer Syntax in verschiedenen Sprachen zu schreiben“.

Die neue Version von WCDB ist Open Source auf Github
. Die Projektadresse ist dieser Website beigefügt:https://github.com/Tencent/wcdb
Das obige ist der detaillierte Inhalt vonEine neue Version der plattformübergreifenden Terminaldatenbank WCDB von WeChat ist Open Source und bietet neue Unterstützung für C++ und Kotlin. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Verzeichnis Was ist prägnant (beweisen) Welches Risikokapital unterstützt prägnant (beweisen)? Wie prägnant (beweist) Arbeitsprinzip SP1ZKVM und Prover Network Opsuccinct Technology Cross-Chain-Überprüfung beweisen Token Economics Token Details 2025, 2026, 2027-2030 prägnant

Stabile Münzen sind Kryptowährungen, deren Wert mit stabilen Vermögenswerten wie dem US -Dollar oder Gold verbunden ist. Sie wollen das Problem großer Preisschwankungen in Währungen wie Bitcoin lösen. Sie erreichen die Preisstabilität durch einen Verankerungsmechanismus und sind hauptsächlich in drei Kategorien unterteilt: 1. Stabile Münzen mit gesetzlichen Währungsbehörden wie USDT und USDC werden von US -Dollar -Reserven unterstützt, und Benutzer können 1: 1 austauschen. 2. Stabile Münzen mit Krypto-Vermögenswerten wie DAI und CRVUSD werden durch über-kollateralisierte digitale Vermögenswerte wie Ethereum erzeugt und haben dezentrale Merkmale; 3.. Zu den Top 10 Stablecoins, die derzeit in der Marktkapitalisierung eingestuft wurden, gehören: 1. USDT, die früheste und liquide Dollar Stablecoins; 2. USDC, um zu entsprechen und

Die Verwendung von zehntausend Kapitalfunktionen, um die Freiheit der Wohlstand auf dem großartigen Währungsmarkt zu erlangen, ist ein verlockendes Thema und eine dornige Straße. Dies ist kein einfaches Mathematikspiel, es testet die Wahrnehmung, Mentalität, Ausführung und Glück einer Person. Der folgende Inhalt ist keine Anlageberatung, sondern eine Analyse der Herausforderungen, die auf dieser Straße und der praktischen Erfahrung, die erforderlich sind, um eine Literatur zu sein, auftreten.

Verwenden Sie die SeekG- und Tellg -Methoden von STD :: IfStream, um die Dateigröße über Plattformen hinweg zu erhalten. Verwenden Sie durch Öffnen einer Binärdatei und der Positionierung bis zum Ende TellG (), um die Anzahl der Bytes zurückzugeben. 2. Es wird empfohlen, STD :: Dateisystem :: File_Size für C 17 und höher zu verwenden. Der Code ist präzise und Fehler werden durch Ausnahmen behandelt. Der C 17 -Standard muss aktiviert sein; 3. Auf POSIX-Systemen kann die Funktion stat () verwendet werden, um die Dateigröße effizient zu erhalten, die für leistungsempfindliche Szenarien geeignet ist. Die entsprechende Methode sollte basierend auf dem Compiler und der Plattform ausgewählt werden.

Die Reaktion der Katalog -Community auf die Veröffentlichung von CETN -Verschlüsselungsderivaten (Crypto Exchange Trading Notes (CETN) durch die FCA wird noch verboten. Riccardo Tordera von The Payments Association sagte gegenüber CoinTelegraph, dass das Aufheben des Verbots einzelne Anleger es ermöglicht, Entscheidungen auf eigenes Risiko zu treffen. Die britische Financial Conduct Authority (FCA) hat die Beteiligung der Einzelhandelsinvestoren an Crypto Exchange Traded Notes (CETNs) beschränkt, ein Schritt, der eine positive Reaktion von Branchenführern erhalten hat und als wichtige Schritt zur Förderung der britischen Integration in das globale digitale Vermögensökosystem und die Verbesserung der Wettbewerbsfähigkeit als Finanztechnologie-Hubs angesehen wird. Am Freitag kündigte die FCA offiziell den Rückzug früherer Investitionen in Einzelhandelskunden an.

Beim Öffnen der Software oder des Spiels erscheint plötzlich eine Eingabeaufforderung, dass "die Anwendung nicht normal starten kann (0xc0000906" ", und viele Benutzer werden verwirrt und wissen nicht, wo sie anfangen sollen. Tatsächlich werden die meisten dieser Fehler durch Beschädigung von Systemdateien oder fehlende Laufzeitbibliotheken verursacht. Beeilen Sie sich nicht, das System neu zu installieren. Dieser Artikel bietet Ihnen mehrere einfache und effektive Lösungen, mit denen Sie das Programm schnell wiederherstellen können. 1. Was ist der Fehler von 0xC0000906? Der Fehlercode 0xc0000906 ist eine häufige Start -Ausnahme in Windows -Systemen, was normalerweise bedeutet, dass das Programm die erforderlichen Systemkomponenten oder die Ausführungsumgebung beim Ausführen nicht laden kann. Dieses Problem tritt häufig beim Ausführen großer Software oder Spiele auf. Zu den Hauptgründe gehören: Die erforderliche Laufzeitbibliothek ist nicht installiert oder beschädigt. Das Software -Installationspaket ist endlos

Verwenden Sie zum Verwalten des Starts von Linux -Diensten den Befehl systemctl. 1. Überprüfen Sie den Dienststatus: SystemCtlstatus kann überprüfen, ob der Dienst ausgeführt, aktiviert oder deaktiviert ist. 2. Aktivieren Sie das Service -Startup: Wenn es gleichzeitig gestartet wird, verwenden Sie SudosystemCTlenable-nownginx. 3.. Deaktivieren Sie das Service -Startup: Wenn es gleichzeitig gestoppt wird, verwenden Sie Sudosystemcctldisabl

memory_order_relaxed is suitable for scenarios where only atomicity is required without synchronization or order guarantee, such as counters, statistics, etc. 1. When using memory_order_relaxed, operations can be rearranged by the compiler or CPU as long as the single-threaded data dependency is not destroyed. 2. Im Beispiel erhöhen mehrere Threads den Atomzähler, da sie sich nur um den Endwert kümmern und der Betrieb konsistent ist, die entspannte Speicherreihenfolge sicher und effizient. 3. Fetch_add und Load liefern keine Synchronisation oder sequentielle Einschränkungen, wenn sie entspannt werden. 4. In dem Fehlerbeispiel wird die Synchronisation der Produzentenkonsumenten unter Verwendung von Entspannung implementiert, wodurch der Verbraucher nicht updatierte Datenwerte lesen kann, da keine Bestellgarantie vorliegt. 5. Der richtige Weg ist
