Entwicklung & Code
Google will Android durch Optimierungen am Kernel schneller machen
Google führt einen neuen Optimierungstrick ein, um den Linux-Kernel von Android schneller laufen zu lassen. Dazu analysiert das System, wie Smartphone und Apps im Alltag genutzt werden und organisiert dann den Code von Android neu. Damit sollen die am häufigsten verwendeten Komponenten effizienter laufen. Dafür wird das Android LLVM-Toolchain-Team (LLVM stand ehemals für Low Level Virtual Machine) die automatische feedback-gesteuerte Optimierung (AutoFDO) in den Kernel integrieren.
Weiterlesen nach der Anzeige
Optimierungen am Herzstück
Das LLVM-Toolchain-Team erklärt in einem Blogbeitrag im Android-Developers-Blog, dass der LLVM-Compiler bei einer Standard-Softwareerstellung Tausende kleiner Entscheidungen treffe, „beispielsweise ob eine Funktion inline ausgeführt werden soll und welcher Zweig einer Bedingung wahrscheinlich genommen wird, basierend auf statischen Codehinweisen“. Diese Heuristiken seien zwar nützlich, so die Entwickler, „sie sagen jedoch nicht immer die Codeausführung während der tatsächlichen Nutzung des Telefons genau voraus“.
AutoFDO verwende dafür hingegen reale Ausführungsmuster, um den Compiler zu steuern. Laut Google stellen die Muster „die häufigsten Befehlsausführungspfade dar, die der Code während der tatsächlichen Nutzung nimmt, und werden durch Aufzeichnung der Verzweigungshistorie der CPU erfasst“. Weiter heißt es, dass diese Daten zwar von Flottengeräten gesammelt werden können, Google synthetisiere diese bei der Entwicklung für den Kernel in einer Laborumgebung unter Verwendung repräsentativer Workloads, wie etwa der Ausführung der 100 beliebtesten Apps.
Dabei verwende das LLVM-Toolchain-Team einen Sampling-Profiler, um diese Daten zu erfassen und zu identifizieren, welche Teile des Codes häufig und welche weniger oft genutzt werden. „Wenn wir den Kernel mit diesen Profilen neu erstellen, kann der Compiler viel intelligentere Optimierungsentscheidungen treffen, die auf die tatsächlichen Android-Workloads zugeschnitten sind“, so Google.
Weiterlesen nach der Anzeige
Google verfolge bei der Technik eine „standardmäßig konservative“ Strategie, womit der Hersteller sicherstellen möchte, dass AutoFDO die Geschwindigkeit verbessere, ohne dabei Kompromisse in anderen Bereichen wie der Zuverlässigkeit einzugehen.
Vorteile
Die Vorteile des Verfahrens sind laut Google klar messbar: Interne Tests auf Pixel-Geräten zeigten eine Reduktion der Bootzeit des Betriebssystems um ein Prozent und eine Verbesserung beim Kaltstart von Apps um rund vier Prozent. Diese Änderungen führen in der Praxis zu einer „flüssigeren Benutzeroberfläche, schnellerem App-Wechsel, längerer Akkulaufzeit und insgesamt zu einem reaktionsschnelleren Gerät für den Endbenutzer“, führt Google aus.

AutoFDO soll das Android-System beschleunigen.
(Bild: Google)
Der Android-Kernel ist einer der wichtigsten Bestandteile von Googles mobilem Betriebssystem. Er bildet gewissermaßen das Herzstück von Android und steuert die Kommunikation zwischen CPU, Apps und der Hardware. Google zufolge macht der Kernel etwa 40 Prozent der CPU-Rechenzeit auf Android-Geräten aus. Entsprechend können schon kleinere Optimierungen einen Einfluss auf die Leistung eines Smartphones haben.
AutoFDO wird derzeit über das Generic-Kernel-Image in den Kernel-Zweigen android16-6.12 (Linux-Kernel 6.12 für Android 16) und android15-6.6 bereitgestellt. Die Unterstützung soll auch auf neuere GKI-Versionen ausgeweitet werden, wie beispielsweise die kommende Version android17-6.18. Google ist außerdem daran interessiert, AutoFDO auf Herstellermodule auszuweiten, die mit dem Driver Development Kit (DDK) erstellt wurden. Das „Generic Kernel Image“ wurde mit Android 11 eingeführt und soll die Kernel-Fragmentierung beheben.
Lesen Sie auch
(afl)
Entwicklung & Code
Interview zur „SaaSpocalypse“: Das Zeitalter der Wegwerfsoftware naht
Die Diskussion um eine mögliche „SaaSpocalypse“ treibt die Softwarebranche seit Monaten um. Der Begriff bringt die Sorge auf den Punkt: dass generative KI und vor allem autonome KI-Agenten das klassische Geschäftsmodell von Software-as-a-Service infrage stellen. Wir sprachen mit dem Tech-Analysten Philipp Klöckner darüber, wohin die Entwicklung geht.
Weiterlesen nach der Anzeige
iX: Derzeit wird viel über die SaaSpocalypse gesprochen, selbst große Anbieter wie Salesforce oder SAP stehen an der Börse unter Druck. Ist das eine Überreaktion oder ein fundamentaler Wandel des Softwaremarkts?

Philipp Klöckner arbeitet seit mehr als zwanzig Jahren im Berliner Tech-Ökosystem und ist einer der bekanntesten Start-up-Investoren Deutschlands. Der Tech-Analyst teilt seine Erfahrung im Doppelgänger-Podcast und als Keynote-Speaker in seiner Vortragsreihe „Beyond the AI Hype“.
(Bild: Hubert Boesl)
Philipp Klöckner: Beides. In einigen Bereichen ist die Reaktion übertrieben, in anderen Fällen sollten Unternehmen tatsächlich vorsichtig sein. Besonders unter Druck geraten Firmen mit klassischen „Per-Seat“-Modellen – also Anbieter, die pro Mitarbeiter abrechnen. Dazu zählen typische Kollaborations- und Projektmanagementtools wie Asana, Monday.com oder Teile der Atlassian-Suite wie Jira.
Der Hintergrund ist weniger, dass KI bereits massiv Jobs ersetzt, sondern dass viele Unternehmen das Overhiring der Coronazeit korrigieren und ihre Organisationen verschlanken. Weniger Mitarbeiter bedeuten automatisch geringeres Wachstum für solche SaaS-Modelle. Zudem lässt sich ein einfaches Kollaborationstool mit Nutzerverwaltung heute relativ schnell KI-gestützt entwickeln. Dadurch steigt der Wettbewerbsdruck erheblich.
Gleichzeitig halte ich manche Marktreaktionen für überzogen. Wenn etwa Anthropic ein neues Feature ankündigt und daraufhin Cybersecurity- oder Observability-Aktien zweistellig fallen, verwechselt das die Realität des Unternehmenseinkaufs mit Tech-Euphorie. Unternehmen wechseln ihre Kernsoftware nicht kurzfristig. Vertrauen, langfristige Verträge und hohe Lock-in-Effekte spielen eine enorme Rolle.
Was allerdings schwieriger wird: Neukundengewinnung. Start-ups, die heute beginnen, werden sich häufiger fragen, ob sie klassische SaaS-Produkte überhaupt noch kaufen oder bestimmte Lösungen selbst bauen. KI senkt die Einstiegshürden erheblich. Trotzdem sollte man die Wirtschaftlichkeit bestehender Software nicht unterschätzen. SaaS-Unternehmen arbeiten oft mit Rohmargen von 80 bis 90 Prozent. Wer Software selbst entwickelt, muss inklusive Wartung, Sicherheit und Zuverlässigkeit günstiger sein als eine bestehende Lizenzlösung – und das ist keineswegs trivial. Ich glaube deshalb nicht, dass Fortune-500-Unternehmen ihre ERP- oder CRM-Systeme kurzfristig durch Vibe-Coding-Lösungen ersetzen werden.
Low-Code- und No-Code-Plattformen haben schon früher versprochen, dass jeder Software bauen kann. Was ist diesmal anders?
Der Unterschied liegt vor allem in den Anforderungen an den Nutzer. Bei No-Code brauchte man oft noch relativ fortgeschrittene Produktmanagement- oder Toolkenntnisse. Mit generativer KI reicht heute Sprache als Interface: Wer ein Problem gut beschreiben kann, kommt deutlich schneller zu funktionierender Software.
Weiterlesen nach der Anzeige
Das heißt aber noch nicht automatisch, dass daraus professionelle Produkte entstehen, die man problemlos anderen Unternehmen verkaufen kann. Besonders schwierig bleibt die Integration in bestehende Legacy-Systeme. Die eigentliche Stärke von KI liegt momentan eher darin, neue und vergleichsweise einfache Lösungen „from scratch“ zu entwickeln – insbesondere in Nischenmärkten, für die sich früher kein eigenes Softwareunternehmen gelohnt hätte.
Gehen wir damit in die Richtung hyperindividualisierter Software und hin zu Mikromärkten?
Ja, das halte ich für wahrscheinlich. Vor einigen Jahren tauchte auf der OMR-Messe der Begriff „Disposable Software“ auf – also Wegwerfsoftware. Früher lag der Fokus darauf, möglichst modular und wiederverwendbar zu entwickeln. Künftig könnte Software viel stärker situativ entstehen.
Mit KI kann man für relativ geringe Kosten kleine Anwendungen generieren, testen und später wieder verwerfen oder komplett neu bauen. Dadurch verändert sich auch die Architekturphilosophie: Statt hochgradig modularer Systeme könnten häufiger Monolithen entstehen, die bei Änderungen einfach neu generiert werden. Das könnte bedeuten, dass Software künftig stärker „on demand“ entsteht und weniger langfristig gepflegt wird.
Entwicklung & Code
Neu in .NET 10.0 [26]: Weitere Überladungen in der Klasse OrderedDictionary
Die erst in .NET 9.0 eingeführte generische Klasse System.Collections.Generic.OrderedDictionary bot bisher schon eine Methode TryAdd(), die versucht, ein Element hinzuzufügen. Neben der bestehenden Variante TryAdd(TKey key, TValue value) gibt es nun in .NET 10.0 auch die Methode mit drei Parametern TryAdd(TKey key, TValue value, out int index). Diese neue Überladung liefert im dritten Parameter den Index zurück, falls es das Element in der Menge schon gibt.
Weiterlesen nach der Anzeige

Dr. Holger Schwichtenberg ist technischer Leiter des Expertennetzwerks www.IT-Visions.de, das mit 53 renommierten Experten zahlreiche mittlere und große Unternehmen durch Beratungen und Schulungen sowie bei der Softwareentwicklung unterstützt. Durch seine Auftritte auf zahlreichen nationalen und internationalen Fachkonferenzen sowie mehr als 90 Fachbücher und mehr als 1500 Fachartikel gehört Holger Schwichtenberg zu den bekanntesten Experten für .NET und Webtechniken in Deutschland.
Analog dazu gibt es für die Methode TryGetValue() nun ebenfalls eine neue Überladung, die nicht nur den Wert eines Eintrags liefert, sondern auch die Position des gefundenen Elements per Index.
(Bild: King / stock.adobe.com)

Das ist neu in .NET 11.0: Dr. Holger Schwichtenberg und weitere Experten präsentieren am 17. November 2026 auf der Online-Konferenz betterCode() .NET 11.0 die Änderungen für Entwicklerinnen und Entwickler in .NET SDK, C# 15.0 und mehr. Bis zur Veröffentlichung des Programms sind vergünstigte Blind-Bird-Tickets verfügbar.
Folgender Beispielcode nutzt TryAdd(TKey key, TValue value, out int index) in der Klasse OrderedDictionary:
public void Run()
{
CUI.Demo("OrderedDictionary: TryAdd() mit Index and TryGetValue()");
OrderedDictionary websites = new();
websites.Add("Heise", "www.Heise.de");
websites.Add("Software & Support", "www.entwickler.de");
websites.Add("IT-Visions", "www.IT-Visions.de");
websites.Add("Microsoft", "www.Microsoft.com");
var key = "IT-Visions";
var value = "www.IT-Visions.de";
foreach (var item in websites)
{
CUI.OL(item.Key + " -> " + item.Value);
}
CUI.BR();
// --- ALT: TryGetValue() mit 2 Parametern
if (websites.TryGetValue(key, out string? value1))
{
int index3 = websites.IndexOf(key); // Nochmals nachschauen nach der Position
CUI.Success($"Element {value1} wurde gefunden an der Position {index3}.");
}
// --- NEUE Überladung bei TryGetValue() mit Parameter index
if (websites.TryGetValue(key, out string? value4, out int index4))
{
CUI.Success($"Element {value1} wurde gefunden an der Position {index4}.");
}
// --- ALT: TryAdd() mit 2 Parametern
if (!websites.TryAdd(key, value))
{
int index1 = websites.IndexOf(key); // Nochmals nachschauen nach der Position
CUI.Warning($"Element {value} ist bereits vorhanden an der Position {index1}!");
}
else
{
CUI.Success($"Element {value} wurde hinzugefügt.");
}
// --- NEUE Überladung von TryAdd() liefert jetzt auch den Index (Position) zurück
if (!websites.TryAdd(key, value, out int index2))
{
CUI.Warning($"Element {value} ist bereits vorhanden an der Position {index2}!");
}
else
{
CUI.Success($"Element {value} wurde hinzugefügt.");
}
}

Ausgabe des Beispielcodes (Abb. 1)
(rme)
Entwicklung & Code
.NET 11.0 Preview 5 vereinfacht das statische serverseitige Rendering in Blazor
Die fünfte Vorschauversion der kommenden .NET-Version 11.0 ist gestern Abend erschienen. Parallel dazu gab es auch die Version 11904.113 der für .NET 11.0 notwendigen Insiders-Variante von Visual Studio 2026. Alternativ ist eine Arbeit mit Visual Studio Code und dem im SDK mitgelieferten Kommandozeilencompiler möglich.
Weiterlesen nach der Anzeige

Dr. Holger Schwichtenberg hat Fachbücher zu .NET 10.0, C# 14.0, Blazor 10.0 und Entity Framework Core 10.0 veröffentlicht. Er arbeitet als Berater und Trainer bei www.IT-Visions.de.
(Bild: King / stock.adobe.com)

Das ist neu in .NET 11.0: Dr. Holger Schwichtenberg und weitere Experten präsentieren am 17. November 2026 auf der Online-Konferenz betterCode() .NET 11.0 die Änderungen für Entwicklerinnen und Entwickler in .NET SDK, C# 15.0 und mehr. Bis zur Veröffentlichung des Programms sind vergünstigte Blind-Bird-Tickets verfügbar.
Sortieren und Paging beim bei Blazor Static SSR
Bei dem in .NET 8.0 eingeführten statischen serverseitigen Rendering (Blazor Static SSR), das als eine Ablösung für ASP.NET Core MVC und ASP.NET Core Razor Pages verstanden werden kann, funktioniert das Tabellensteuerelement QuickGrid, das Microsoft im NuGet-Paket Microsoft.AspNetCore.Components.QuickGrid liefert, bisher nur eingeschränkt. Lediglich bei den interaktiven Varianten Blazor Server und Blazor WebAssembly sowie Blazor Hybrid stehen alle Funktionen des QuickGrid-Steuerelements zur Verfügung.
Seit Blazor 11.0 Preview 5 ist es möglich, dass das QuickGrid-Steuerelement auch in statisch serverseitig gerenderten Blazor-Seiten sortieren und blättern kann. Wenn das Grid nicht interaktiv ist, werden die sortierbaren Spaltenüberschriften und die Seitennavigation als erweiterte HTML-Formulare gerendert, die ihren Zustand über URL-Abfrageparameter (Query String) übertragen. Lädt eine Nutzerin oder ein Nutzer die Seite neu oder kopiert die URL und öffnet sie erneut, bleiben Sortierung und aktuelle Seite erhalten. Dadurch lassen sich diese Zustände einfach per URL teilen oder als Lesezeichen speichern.
Lesen Sie auch
Im Schnelltest zeigte sich: In Zusammenarbeit mit Entity Framework Core als Datenquelle mit Paging in der Datenbank erzeugt das Blättern einen Laufzeitfehler: „InvalidOperationException: A second operation was started on this context instance before a previous operation completed. This is usually caused by different threads concurrently using the same instance of DbContext.“
Weiterlesen nach der Anzeige
Das folgende Beispiel funktioniert aktuell nur korrekt, wenn es immer alle Datensätze lädt und das Paging im RAM ausführt via
private List
@page "/QuickGridSSR"
@using Microsoft.AspNetCore.Components.QuickGrid
@using Microsoft.EntityFrameworkCore
@inject IDbContextFactory DbFactory
@implements IAsyncDisposable
QuickGrid SSR
p.FlightNo)" Title="FlugNr" Sortable="true" />
p.Departure)" Title="Abflugort" Sortable="true">
p.Destination)" Title="Zielort" Sortable="true">
p.FlightDate)" Title="Datum" Format="dd.MM.yyyy" Sortable="true" />
p.FreeSeats)" Title="Freie Plätze" />
@code {
private readonly PaginationState pagination = new() { ItemsPerPage = 15 };
private DA.WWWings.WwwingsV1EnContext context;
private IQueryable flightSet => context.Flights;
protected override void OnInitialized()
{
context = DbFactory.CreateDbContext();
}
// IAsyncDisposable implementieren, um den DbContext korrekt zu verwerfen, wenn die Komponente nicht mehr benötigt wird
public async ValueTask DisposeAsync()
{
if (context != null)
{
await context.DisposeAsync();
}
}
}
Listing: QuickGrid mit Blazor Static SSR mit Zugriff auf eine Datenbank via Entity Framework Core

Das vorherige Listing zur Laufzeit (Seite 1)
Vereinfachte Session-Handhabung
Blazor Static SSR unterstützt seit der Einführung in .NET 8.0 die in ASP.NET Core verfügbaren serverseitigen Sessions (Cookie .AspNetCore.Session mit Session-ID, Speicherung der Daten im RAM oder einem persistenten Speicher) zur Datenübergabe zwischen Seiten. Bisher mussten Entwicklerinnen und Entwickler dafür das Session-Objekt im HttpContext-Objekt verwenden und komplexe Objekte selbst per JSON serialisieren:
@inject IHttpContextAccessor HttpContextAccessor
…
var HttpContext = HttpContextAccessor.HttpContext;
var json = System.Text.Json.JsonSerializer.Serialize(regForm);
HttpContext.Session.SetString("Formulardaten", json);
beziehungsweise
BO.RegistrationData daten =
System.Text.Json.JsonSerializer.Deserialize(
HttpContext.Session.GetString("Formulardaten") ?? string.Empty);
In .NET 11.0 Preview 5 hat Microsoft nun die Annotation [SupplyParameterFromSession] eingeführt, die die Handhabung von Session-Variablen genauso einfach macht wie von Query-String-Parametern [SupplyParameterFromQuery], Form-Daten [SupplyParameterFromForm] und TempData-Werten [SupplyParameterFromTempData], wobei letztere Annotation erst in .NET 11.0 Preview 4 eingeführt wurde.
Entwicklerinnen und Entwickler annotieren in einer Seite eine oder mehrere Properties mit der Annotation [SupplyParameterFromSession]. Dabei sind einfache und komplexe Datentypen möglich, während [SupplyParameterFromTempData] auch in Preview 5 weiterhin nur mit einfachen Datentypen funktioniert:
[SupplyParameterFromSession]
public string Message { get; set; }
[SupplyParameterFromSession]
public BO.RegistrationData RegData { get; set; }
Session-Werte werden dabei automatisch mit System.Text.Json in JSON serialisiert.
Analoge Properties deklarieren Entwicklerinnen und Entwickler in den Folgeseiten und können dann auf die Werte ohne weiteres Zutun zugreifen. Voraussetzung ist wie bisher, dass in der Startseite die Sessions aktiviert wurden:
builder.Services.AddDistributedMemoryCache();
builder.Services.AddSession();
…
app.UseSession();
-
Apps & Mobile Entwicklungvor 3 MonatenMähroboter ohne Begrenzungsdraht für Gärten mit bis zu 300 m²
-
Künstliche Intelligenzvor 3 MonateniPhone Fold Leak: Apple spart sich wohl iPad‑Multitasking
-
Künstliche Intelligenzvor 3 Monaten
JBL Bar 1300MK2 im Test: Soundbar mit Dolby Atmos, starkem Bass und Akku‑Rears
-
Künstliche Intelligenzvor 3 MonatenOscars 2026: Was die heise‑Leser anders entschieden hätten
-
Social Mediavor 3 MonatenVon Kennzeichnung bis Plattformpflichten: Was die EU-Regeln für Influencer Marketing bedeuten – Katy Link im AllSocial Interview
-
Künstliche Intelligenzvor 3 MonatenEmpfehlungsalgorithmen bei TikTok erklärt: Die Maschine hinter dem Endlos‑Feed
-
Künstliche Intelligenzvor 3 Monaten
Top 10: Die besten Wireless‑Adapter für Carplay im Test – iPhone kabellos nutzen
-
Künstliche Intelligenzvor 2 MonatenWeitere Entlassungswelle bei Disney: Bis zu 1000 Mitarbeiter betroffen
