Programm Details

Mittwoch, 23.01.2019   |   14:45 - 15:30 Uhr   |    KMi 6.5

Der einfache Weg zur effizienten Software

Wir leben in einer Zeit, wo Geschwindigkeit und Performance fast das Wichtigste ist. Auch bei Softwareprodukten ist es wichtig, dass diese möglichst schnell und ressourcenschonend ihre Aufgabe erledigen. Aber warum ist es immer noch häufig nicht der Fall? Dabei ist die Lösung relativ simpel. Performante und ressourceneffiziente Software zu entwickeln ist meist leichter, als man denkt. Mit den richtigen Datenstrukturen und der Auswahl geeigneter Algorithmen können Programme sehr viel performanter arbeiten, ohne Threading, asynchroner oder andere parallele Programmierparadigmen anwenden zu müssen. Ca. 80 % der Performance-Steigerung, kann man mit Hilfe dieser einfachen Tricks umsetzen. Die restlichen 20 % werden mit Hilfe der parallelen und asynchroner Programmierung erreicht. Für Businessanwendungen reichen im Normalfall einfache Änderungen, damit der Kosten-Nutzen-Effekt maximal ist. Insgesamt gibt es drei Bereiche, die ein Softwareentwickler nutzen kann, um effiziente Software entwickeln zu können. 1.: Wahl der, für dieses Problem, geeignetsten Datenstruktur. Es kann einen enormen Unterschied machen, ob eine Liste, ein Hashset oder ein Dictonary verwendet wird. Wenn ein Softwareentwickler dies berücksichtigt, dann kann dies einen großen Performance-Sprung bewirken. Der 2. Punkt ist die richtige Wahl geeigneter Algorithmen für die verwendeten Datenstrukturen. Wenn man beispielsweise eine sortierte Liste verwendet, dann kann es außerordentlich nützlich sein, mit der binären Suche die Liste zu durchsuchen. Der 3. und letzte Punkt ist die sinnvolle Abfrage von Datenbank-Tabellen. Ein Softwareentwickler muss sich vorher im Klaren sein, wann er welche Daten benötigt und in welchem Umfang. Des Weiteren sollten so wenig Datenbank-Abfragen wie nötig vorgenommen werden, um den SQL-Server nicht zu belasten. Im Vortrag zeige ich kleine Beispiele, mit denen man erkennt, dass einfache, kleine Kniffe eine enorme Wirkung haben. Mein Ziel ist es, dass jeder Softwareentwickler sich das nächste Mal, wenn er vor einem Problem steht, die richtigen Fragen stellt, damit die entwickelte Software nicht zum Flaschenhals der Performance wird.



Florian Lenz
Software & Consulting Lenz
Softwareentwickler & Projektmanager