SUX.

SUX ist ein Satz von leistungsstarken Versorgungsunternehmen von grundlegenden und fortschrittlichen kurzen Datenstrukturen in C ++ und Java.
Jetzt downloaden

SUX. Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • LGPL
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Sebastiano Vigna
  • Website des Verlags:
  • http://archive4j.dsi.unimi.it/

SUX. Stichworte


SUX. Beschreibung

SUX ist ein Satz von leistungsstarken Versorgungsunternehmen von grundlegenden und fortschrittlichen kurzen Datenstrukturen in C ++ und Java. SUX ist ein Satz von leistungsstarken Hilfsprogrammen der grundlegenden und fortgeschrittenen kurzen Datenstrukturen in C ++ und Java. Hier sind einige wichtige Funktionen von "SUX": · Eine neuartige, breitwörterbasierte Implementierung von Rang / ausgewählten Abfragen für bis zu 264 Bits ist sehr wettbewerbsfähig mit bekannten 32-Bit-Implementierungen auf 64-Bit-Architekturen (zusätzlicher Platz, der erforderlich ist, beträgt 25% für das Ranking und 12,5% -37,5% für die Auswahl); · Spark Rang / Select-Strukturen zum Speichern von Zeiger, variablen Bit-Arrays usw. .; · Java-Code Implementieren minimaler perfekter Hash mit rund 3 Bit pro Zeichenfolge (auch mit einigen Broadword-Ideen). Warum C ++? C ++ saugt. Nein, das ist nicht der Grund. Das Problem ist, dass, wenn Sie experimentell Ihre Rang- / Auswählenimplementierungen vergleichen möchten, eine Sprache benötigen, die Sie in die Steuerung setzt - jeden einzelnen rechnerischen Aspekt, einschließlich Cache-Misses, Perturbs das Ergebnis. Der C ++ - Code in SUX verwendet nur C ++ für den Namespace-Handling. Kein objektorientiertes oder anderweitiges bizarres Merkmal der Sprache wird verwendet. Warum Java? Schreiben in Java-Code, der (im Wesentlichen), dass (im Wesentlichen) Bits hin und vorbei ist, vielleicht eine schlechte Sache erscheinen. Man sollte jedoch folgende Punkte berücksichtigen: · Verbesserungen in JVMs lässt Niedrigniveau-Code in Java schneller und schneller in Java verfasst werden. Oft die Leistungsstrafe w.r.t. Eine äquivalente C / C ++ -Anwendung ist relativ klein. · Nachbildende Techniken können auf verschiedene Arten gemischt werden, und eine objektorientierte Sprache macht es sehr einfach, mit unterschiedlichen Implementierungen derselben Schnittstelle zu spielen. · Eine objektorientierte Sprache macht es möglich Um Schnittstellen wie Bitvector zu schreiben, die ein breites Spektrum an Zugang und Methoden bereitstellen, die in geeigneter Klassen (z. B. LongArrayBitVector) effizient gemacht werden können. · Wenn Sie Ihre Datenstruktur überzeugt haben, können Sie es einfach in C / C ++ neu schreiben .What ist neu in dieser Version: · Diese Version bietet eine neue monotone minimale perfekte Hash-Funktion, die Protokolllog L-Bits pro Zeichenfolge verwendet, wobei L die Saitenlänge in Bits ist.


SUX. Zugehörige Software