Connect with us

Künstliche Intelligenz

Analyse: Wie die Dominanz von Big-Tech und der KI-Hype die Wirtschaft bedrohen


Technik hat etwas Faszinierendes: Viele bekommen leuchtende Augen, wenn ein neuer Prozessor den PC beschleunigt, Computerspiele fotorealistische Welten zaubern oder eine künstliche Intelligenz die Antwort auf jede Frage der Welt zu kennen scheint. Für deren Entwicklung schien die Marktwirtschaft lange das ideale Umfeld zu sein: Ideen und Produkte treten in freien Wettbewerb, die besten setzen sich durch und erleichtern das Leben aller – so jedenfalls die Idealvorstellung von Adam Smith, der am Vorabend der Französischen Revolution die Grundlagen der kapitalistischen Ordnung entwarf.

Mehr als zweihundert Jahre später tritt der Kapitalismus jedoch in eine neue Phase. Statt Fabrikhallen und Eisenbahnnetze entstehen heute gigantische Rechenzentren und immer schnellere Datenautobahnen. Doch diese globale Infrastruktur wird nicht von einer Vielzahl konkurrierender Unternehmen errichtet, sondern von einer Handvoll US-Giganten dominiert. Zu diesen „Magnificent Seven“ (M7), wie sie an den Börsen heißen, gehören Nvidia, Microsoft, Apple, Amazon, Alphabet, Meta sowie das Firmenkonglomerat von Elon Musk um Tesla und SpaceX. Gemeinsam erreichen sie inzwischen einen Marktwert von 18 Billionen Euro.

Damit scheint ein ökonomischer Kipppunkt erreicht: Eine kleine Gruppe von Konzernen verfügt – zumindest nach aktuellem Handelswert ihrer Anteilsscheine – über eine Kapitalmacht, die der Jahreswirtschaftsleistung aller Unternehmen und knapp 450 Millionen Bürgern der Europäischen Union entspricht. Auf den folgenden Seiten analysieren wir, wie es zu diesem kometenhaften Aufstieg kommen konnte und welche Rolle künstliche Intelligenz dabei spielt.


Das war die Leseprobe unseres heise-Plus-Artikels „Analyse: Wie die Dominanz von Big-Tech und der KI-Hype die Wirtschaft bedrohen“.
Mit einem heise-Plus-Abo können Sie den ganzen Artikel lesen.



Source link

Künstliche Intelligenz

Effizientes C++: Die versteckten Kosten des Rückgabedatentyps auto


Im heutigen Beitrag möchte ich mich mit dem Schreiben von effizientem C++-Code befassen. Dieses Thema lässt sich nicht in einem einzigen Beitrag behandeln. Zum Start möchte ich mich auf die Steuerung der Zeit konzentrieren, die der Compiler benötigt, und dabei ein Element der Sprache herausgreifen: auto.

Weiterlesen nach der Anzeige


Portrait von Andreas Fertig

Portrait von Andreas Fertig

Andreas Fertig ist erfahrener C++-Trainer und Berater, der weltweit Präsenz- sowie Remote-Kurse anbietet. Er engagiert sich im C++-Standardisierungskomitee und spricht regelmäßig auf internationalen Konferenzen. Mit C++ Insights ( hat er ein international anerkanntes Tool entwickelt, das C++-Programmierenden hilft, C++ noch besser zu verstehen.

Ich halte die Typinferenz auto für eine großartige Erweiterung der Sprache. Mit der C++14-Version von auto als Rückgabedatentyp ist es ein guter Weg, flexiblere und akkuratere Funktionen zu schreiben. Allerdings geht das zu Kosten eines längeren Kompiliervorgangs.

Aber beginnen wir ohne auto als Rückgabedatentyp. Hier ist eine Dummy-Funktion, die nichts Interessantes macht:


int Fun(bool b, int val)
{
  if(b) {
    return val * 2;
  } else {
    return val / 2 * 3;
  }
}


Ich brauchte für das Beispiel lediglich eine Funktion mit einem Rumpf, der für den Compiler nicht völlig trivial war. Da es im heutigen Beitrag um effizientes C++ geht, möchte ich über die Zeit sprechen, die zum Kompilieren dieser wenigen Zeilen Code erforderlich ist. Dabei geht es nicht unbedingt um die absoluten Zahlen, da diese auf verschiedenen Rechnern unterschiedlich sein werden.

Wie kannst du deinen Compiler überhaupt messen? Eine Möglichkeit ist der Linux-Befehl time. Dieser liefert jedoch nur wenige Informationen, die nicht dabei helfen, deine Build-Zeiten zu verbessern. Wenn dir ein Build langsam erscheint, benötigst du kein Tool, das dir sagt, dass du recht hast, sondern ein Tool, das dir zeigt, wo eine mögliche Beschleunigung möglich ist.

Wenn time nicht das richtige Tool ist, was dann? Ganz einfach: dein Compiler! Zumindest Clang. Er verfügt über die hilfreiche Befehlszeilenoption -ftime-trace. Damit kann Clang für jede Objektdatei eine .json-Datei mit zahlreichen Daten erstellen. Du kannst die Informationen beispielsweise mit Chrome und seinem Tracing Viewer untersuchen. Öffne einfach einen Tab und gib chrome://tracing ein. Lade dann die JSON-Datei. Für den obigen Code auf meinem Rechner mit Clang 19 sieht die Visualisierung so aus:

Weiterlesen nach der Anzeige


Screenshot von Chrome mit den Tracing-Ergebnissen von Clang

Screenshot von Chrome mit den Tracing-Ergebnissen von Clang

Screenshot von Chrome mit den Tracing-Ergebnissen von Clang

Ein Wort zu meiner Vorgehensweise: Ich gehe davon aus, dass die Funktion Fun in einer Header-Datei steht und in der aktuellen Übersetzungseinheit nicht verwendet wird. Einfachheitshalber habe ich keinen anderen Code eingefügt oder verwendet. Ich habe eine .cpp-Datei mit dem oben gezeigten Code wie folgt compiliert:


clang++ -c a.cpp -ftime-trace


Zurück zur Visualisierung, auch wenn sie etwas kompakt ist. Die obere Leiste mit der Aufschrift ExecuteCompiler benötigt 6,499 ms.

Hier ist eine modifizierte Version des vorherigen Codes. Die einzige Änderung, die ich vorgenommen habe, ist die auto statt int als Rückgabedatentyp.


auto Fun(bool b, int val)
{
  if(b) {
    return val * 2;
  } else {
    return val / 2 * 3;
  }
}


Wenn ich diesen Code messe, erhalte ich folgende Ergebnisse:


Screenshot von Chrome mit den Tracing-Ergebnissen von Clang

Screenshot von Chrome mit den Tracing-Ergebnissen von Clang

Dieses Mal benötigt ExecuteCompiler 8,114 ms. Das sind ungefähr 1,5 ms mehr. Ja, das stimmt, das ist nur ein einzelner Datenpunkt. Vielleicht haben wir es hier mit Jitter zu tun. Das kann sein. Vielleicht gibt es Aufrufe, bei denen die beiden Zahlen näher beieinander liegen, aber es ist unwahrscheinlich, dass sie jemals gleich werden. Ich bin mir hier sicher, weil im zweiten Trace ein zusätzlicher Schritt erscheint: ParseFunctionDefinition. Dieser Schritt ist nur vorhanden, wenn man auto als Rückgabedatentyp für die Funktion verwendet oder die Funktion tatsächlich aufruft. Aber ich gehe davon aus, dass Fun in einer Header-Datei deklariert ist.

Das zweite Codebeispiel benötigt wegen ParseFunctionDefinition länger zum Kompilieren. Mit auto von C++14 als Rückgabedatentyp muss der Compiler die Funktionsdefinition nachschlagen, wenn er die Deklaration analysiert. Ohne auto verschiebt der Compiler die Analyse des Funktionsrumpfs, bis er wirklich benutzt wird.

Wenn du die Dauer des Kompiliervorgangs optimieren möchtest, solltest du auf Funktionen achten, die auto als Rückgabedatentyp in Header-Dateien verwenden.


(rme)



Source link

Weiterlesen

Künstliche Intelligenz

Real User Monitoring: Dynatrace lenkt den Observability-Fokus auf Anwender


Mit der Observability-Plattform von Dynatrace lassen sich nahezu alle wichtigen Aspekte eines IT-Systems überwachen: Anwendungen, Plattform, Systemleistung, Infrastruktur und viele weitere. Doch eine bedeutende Komponente rund um das Verwenden von Applikationen und Diensten fehlte: die Anwenderinnen und Anwender. Im Rahmen seiner Perform-Konferenz kündigte das Unternehmen nun Dynatrace RUM Experience an – Real User Monitoring im Frontend, das die bisherige Classic-Variante ablöst. Erklärtes Ziel ist es, mit dem neuen Baustein die Brücke vom Überwachen der IT-Performance bis zu den Nutzerinteraktionen mit Web- und Mobile-Applikationen zu schlagen.

Weiterlesen nach der Anzeige


Logo der Konferenz Mastering Observabilkity 2026

Logo der Konferenz Mastering Observabilkity 2026

(Bild: AtemisDiana/Shutterstock)

Mehr zu Observability bietet die Online-Konferenz Mastering Observability von iX und dpunkt.verlag am 16. April 2026. Die Konferenz widmet sich unter anderem den Herausforderungen automatisierter Observability für KI- und agentenbasierte Systeme.

Was genau ist Dynatrace RUM Experience und warum ist diese Funktion nützlich? Die Erfahrungen, die Anwenderinnen und Anwender beim Nutzen von Single-Page-Applikationen (SPAs) und mobilen Anwendungen sammeln, können entscheidende Hinweise auf potenzielle Fehlfunktionen geben. Solche Fehler sind in der Regel das Ergebnis einer Reihe von Nutzerinteraktionen. Ohne den Kontext – was hat der Anwender wann geklickt? – ist deren Analyse häufig schwierig oder gar nicht möglich, sodass sich auch die Fehlfunktionen nicht beheben lassen. Noch komplizierter wird die Situation, wenn mehrere miteinander verlinkte Applikationen ins Spiel kommen.

RUM setzt den Fokus auf die Nutzerinteraktion als das fehlende Bindeglied zwischen Telemetriedaten im Frontend und Systeminformationen im Backend. Die Analyse der daraus gewonnenen Erkenntnisse liefert dann auch Antworten auf businessrelevante Fragen, etwa an welcher Stelle und warum ein potenzieller Kunde eine Verkaufsseite verlassen hat. War nur eine nicht intuitive Navigation der Grund oder das zu langsame Laden von Daten oder beides – oder gab es noch andere Ursachen?


Dashboard der Dynatrace RUM Experience

Dashboard der Dynatrace RUM Experience

Dashboard der neuen Dynatrace RUM Experience

(Bild: Dynatrace)

Weiterlesen nach der Anzeige

Die standardmäßige Oberfläche von RUM enthält drei vorgefertigte Elemente: Experience Vitals, Error Inspector und Users & Sessions. Erstere verknüpft Telemetriedaten vom Frontend mit Anfragen an das Backend. So kann festgestellt werden, wo Leistungsprobleme in der Infrastruktur die Schnittstelle zu den Nutzern unnötig verlangsamen. Dabei kommen Industriestandards wie Core Web Vitals oder ANR (Application Not Responding) zum Einsatz. Der Error Inspector führt eine erste Analyse aufgetretener Fehler durch. Danach gruppiert und priorisiert er diese. So können sich Administratoren und Entwickler auf solche Fehler konzentrieren, die am wichtigsten und kritischsten sind. Users & Sessions erlaubt das Nachvollziehen der tatsächlichen Nutzerinteraktionen. Wo hat sich der Anwender in der Menüstruktur verirrt? Wo hat das Laden von Daten zu lange gedauert und der Nutzer die Anwendung verlassen? Insbesondere der letzte Punkt ist für Webshopbetreiber von dringender Bedeutung. Im Gespräch mit heise developer ließen einige Dynatrace-Kunden durchblicken, dass manchmal allein die Farbänderung eines Banners schon einen Umsatzzuwachs von über zehn Prozent bewirken kann.

Die Datenverwaltung für RUM erfolgt in Grail (Data Lakehouse) und Smartscape (Dependency Graph) – ergänzt durch erweiterte Richtlinien zum Datenschutz. Das beginnt mit den bekannten Zugriffsregeln und Regeln zur Dauer der Datenaufbewahrung. Am anderen Ende steht das Generieren von Prüfberichten bezüglich der Einhaltung der Datenschutzrichtlinien.

Zum leichteren Start hat Dynatrace die ersten Schritte mit RUM für Web-Anwendungen und/oder Mobile-Applikationen dokumentiert. Im Idealfall ist das Setup innerhalb weniger Minuten erledigt. Im Falle von Web-Anwendungen muss der Dynatrace OneAgent dort laufen und die Applikation instrumentieren können. Zu den unterstützten Webservern zählen unter anderem Apache, NGINX, IIS und Node.js. In anderen Fällen sind mehr manuelle Schritte zum Aufsetzen von RUM nötig, die entsprechend länger dauern. Im Mobile-Umfeld erstreckt sich die Unterstützung von Android und iOS bis hin zu plattformübergreifenden Anwendungen, die mit React Native, Flutter oder .NET MAUI programmiert sind. Da auch das neue RUM Experience auf der Inspektion von HTTP-Kopfzeilen und Cookies basiert, müssen für dessen Einsatz Firewalls entsprechend freigeschaltet sein – so wie bisher schon für RUM Classic.

Die neue Dynatrace RUM Experience lässt sich laut Ankündigung im Blog ab sofort nutzen. Sämtliche Funktionen und Apps sind im Rahmen einer Dynatrace Platform Subscription auf SaaS-Tenants der Version 330 oder höher standardmäßig verfügbar.


(map)



Source link

Weiterlesen

Künstliche Intelligenz

Opel Astra Facelift: Kein Schaltgetriebe mehr zu haben


Im Dezember 2025 stellte Opel den überarbeiteten Astra vor. Ab sofort kann er bestellt werden, die Auslieferung dürfte noch im Frühjahr beginnen. Man mache den Kunden ein Angebot, das sie überzeuge, sagt Opel Deutschland-Markenchef Patrick Dinger. Zweckoptimismus gehört zu seinem Job, doch etwas nüchterner betrachtet dürfte der Astra trotz seiner Qualitäten eine schwierige Zeit vor sich haben. Denn Opel hat an einigen Stellen die Chance verpasst, das Auto fit für die zweite Hälfte seiner geplanten Bauzeit zu machen.

Weiterlesen nach der Anzeige

Es gibt ein flotter agierendes Infotainmentsystem und eine leichte Umgestaltung der Front, die das Auto etwas rundlicher erscheinen lässt. Dazu verspricht Opel nochmals weiter verbesserte Sitze. Im Kern war es das dann schon mit den äußerlichen Neuerungen. Dazu kann die Traktionsbatterie des Astra Electric auch Strom für externe Verbraucher liefern. Tiefgreifender sind die Veränderungen bei den Antrieben. Der Basisbenziner fliegt ebenso aus dem Sortiment wie die Option auf ein Schaltgetriebe. In der ersten Preisliste des überarbeiteten Modells sind nur noch Versionen enthalten, die dem Fahrer diese Aufgabe abnehmen. Das dürfte den bisherigen Vorlieben der meisten Kunden entgegenkommen, verschiebt aber die Preise ein Stück weit nach oben.

Finanziell ist das neue Grundmodell der 1,2-Liter-Hybrid mit 107 kW und elektrifiziertem Sechsgang-Doppelkupplungsgetriebe. Der Diesel mit 96 kW und Achtgang-Wandlerautomatik kostet schon rund 1600 Euro mehr. Vom 2025 vorgestellten Plug-in-Hybrid ist Opel offenkundig sehr überzeugt, denn der kostet nochmals fast 500 Euro mehr als der Astra Electric.

Im PHEV kombiniert Opel einen 1,6-Liter-Vierzylinder, der 110 kW leistet, mit einem 92-kW-E-Motor, der in einem Siebengang-DKG steckt, und einer 17,2-kWh-Batterie. Leider kann weiterhin nur einphasig mit bis zu 7,4 kW geladen werden. Dass Opel wenigstens diese Ladeleistung nun endlich ohne weitere Zusatzkosten reicht, ist nur ein schwacher Trost. Denn genutzt werden kann das in der Regel nur an öffentlicher Ladeinfrastruktur. An privaten Wallboxen ist meist bei 3,7 kW Schluss. Die Reichweite im WLTP gibt Opel mit 82 bis 84 km an. Vielleicht lockt Interessenten ja, dass kein anderer Astra derzeit so schnell ist wie der Plug-in-Hybrid: 225 km/h Spitze und 7,6 bzw. 7,7 Sekunden (Kombi) stellen die anderen Modelle diesbezüglich in den Schatten.

Der Astra Electric wurde mit einer minimal größeren Batterie ausgestattet, die nun 58 statt 54 kWh bietet. Damit könne man, so schreibt es Opel, bis zum ersten Ladestopp rund 35 km weiter reisen als bisher. Das bezieht sich auf den WLTP und dürfte in der Praxis eine recht optimistische Einschätzung sein. Bis zu 454 km im Zyklus werden in vielen Fahrprofilen vermutlich dennoch reichen. Dennoch wird sich manch ein Interessent fragen, warum es in anderen Konzernmodellen auf dieser Basis möglich ist, wenigstens mit 120[ ]kW in der Spitze laden zu können, während es im Astra bei 100 kW bleibt. Leben müssen die Kunden der elektrifizierten Versionen auch mit einem deutlich kleineren Kofferraum. Die Verbrenner fassen 422 (Limousine) bis 597 Liter (Kombi) Im Astra Electric bleiben davon 352 bis 516 Liter übrig, im Plug-in-Hybrid nur 310 bis 466.

Weiterlesen nach der Anzeige

In die Kalkulation der Preise für den Astra Electric dürfte eingeflossen sein, dass ein Teil der Kundschaft auf eine Kaufprämie hoffen darf. Doch ein Listenpreis von mindestens 37.990 Euro ist angesichts der eher durchschnittlichen technischen Eckdaten kein Sonderangebot, um es einmal zurückhaltend zu formulieren. Sollte Opel das Interesse entwickeln, den Elektroauto-Anteil der Astra-Verkäufe anzuheben, wird das wohl nur über sinkende Preise klappen. Die Förderung schiebt den Listenpreis des Astra Electric unter Umständen unter den des Hybridmodells. Vielleicht hilft das ein Stück weit, auch die real zu zahlenden Preise in ein Fenster zu schieben, in dem mehr Astra-Interessenten als bisher den batterieelektrischen Antrieb (Test) in Erwägung ziehen. Von seinen Umgangsformen her ist er unverändert der angenehmste und hätte daher eine größere Resonanz verdient.

Mehr zur Marke Opel



Source link

Weiterlesen

Beliebt