Wie man PostgreSQL lächerlich langsam macht?

2025-07-28
Wie man PostgreSQL lächerlich langsam macht?

Dieser Artikel fordert den Leser heraus, PostgreSQL so langsam wie möglich zu machen, indem er Parameter in der Datei `postgresql.conf` anpasst, ohne die CPU zu drosseln oder Indizes zu löschen. Durch eine Reihe sorgfältig ausgewählter Anpassungen, darunter die drastische Reduzierung der Größe des Pufferspeichers (`shared_buffers`), die aggressive Auslösung von Autovacuum und Analyse (`autovacuum_*` Parameter) und die Konfiguration von WAL (`wal_*` Parameter) für maximale Schreibfrequenz und E/A-Konkurrenz, gelingt es dem Autor, den TPS von PostgreSQL um mehr als das 7000-fache zu reduzieren, von 7000+ auf weniger als eine einstellige Zahl, sogar unter 0,1 TPS. Der Autor beschreibt die Begründung und die Auswirkungen jeder Parameteränderung und liefert eine reproduzierbare Konfiguration. Dies ist ein faszinierendes Experiment, das die tiefgreifende Wirkung der Datenbankparametereinstellung zeigt.

Mehr lesen
Entwicklung Parameteroptimierung

JavaScript-Benchmarking: Ein Chaos aus JIT-Kompilern, Engine-Unterschieden und Ungenauigkeiten bei der Zeitmessung

2024-12-24
JavaScript-Benchmarking: Ein Chaos aus JIT-Kompilern, Engine-Unterschieden und Ungenauigkeiten bei der Zeitmessung

Das Benchmarking der JavaScript-Performance ist notorisch schwierig. Dieser Artikel hebt die Herausforderungen hervor: Die dynamischen Optimierungen des JIT-Compilers führen zu stark variierenden Ergebnissen zwischen den Läufen; verschiedene JavaScript-Engines (wie V8 und JavaScriptCore) weisen erhebliche Leistungsunterschiede auf, wobei der gleiche Code dramatisch unterschiedlich läuft; und Browser reduzieren die Zeitgenauigkeit absichtlich, um Timing-Angriffe zu mindern, was präzise Messungen erschwert. Der Autor schlägt vor, serverseitig Tools wie d8 zu verwenden, um die Optimierungsstufen und die Garbage Collection besser zu steuern, während browserseitige Tests stark von den begrenzten Informationen abhängen, die von den Entwicklertools bereitgestellt werden. Kurz gesagt, JavaScript-Benchmarking erfordert eine sorgfältige Berücksichtigung der JIT-Kompilierung, Engine-Variationen und Zeitgenauigkeit, was es deutlich komplexer macht als in anderen Sprachen.

Mehr lesen