Optimaliseren

We optimaliseren uw programmatuur zodat u sneller kunt rekenen of grotere sommen kunt draaien. Dat doen we door slimmere rekenmethoden toe te passen of op een handigere manier te programmeren. We kunnen de performance van uw programmatuur vrijwel altijd minstens verdubbelen, maar meestal bereiken we veel meer.

Performance kan altijd beter

Bij rekenintensieve programmatuur is rekentijd en geheugengebruik vrijwel altijd een beperkende factor. Dan is verregaand optimaliseren van software belangrijk. Onze softwareontwikkelaars zijn bedreven in de volgende aspecten van optimalisatie:

  • Het analyseren van software
    Bij de analyse gaan we na waar de meeste rekentijd in gaat zitten of waar het geheugengebruik een bottleneck vormt. Daarbij maken we waar mogelijk gebruik van standaard performance analyse tools. Maar soms leveren deze tools niet de gezochte informatie. Dan maken we gebruik van tools en methoden die we zelf in de loop van de jaren ontwikkeld hebben. Daarnaast helpt het dat we al heel veel programmatuur gezien hebben, waardoor we vaak snel een vermoeden hebben van waar de problemen zitten.
  • Het versnellen van software
    We kunnen de rekentijd vaak al flink verkorten door nog eens goed na te denken over de rekenmethode. Een slimmer algoritme of een andere wiskundige benadering maakt soms een enorm verschil. Daarnaast kan vaak de efficiëntie van de software verhoogd worden. Bijvoorbeeld door het rekenintensieve gedeelte af te stemmen op specifieke hardware, of door juist een generieke bibliotheek te gebruiken die al vergaand geoptimaliseerd is.
  • Het reduceren van het geheugengebruik
    Door goed te kijken welke gegevens perse in het geheugen moeten zijn en daar efficiënte datastructuren bij te bedenken kunnen we het geheugengebruik soms flink terugbrengen. Daarnaast kan het gebruik van een andere rekenmethode helpen om het geheugengebruik te verminderen of het cachegebruik te verbeteren. Ook hier geldt weer: we hebben inmiddels zoveel grootschalige rekenprogrammatuur gezien dat we kunnen putten uit een grote gereedschapskist van creatieve oplossingen.
  • Parallellisatie
    Hoewel processoren geen hogere kloksnelheden meer bereiken, worden ze nog wel steeds krachtiger in termen van vectoroperaties en multi-coreberekeningen. Slim gebruik van moderne hardware kan dus een flinke versnelling opleveren maar vereist wel de nodige aanpassingen aan de software. Door het probleem in stukken op te delen kunnen alle rekenkernen effectief ingezet worden en wordt de rekentijd aanmerkelijk verkort. Als het nog sneller moet dan komen GPU’s, rekenclusters of cloud-omgevingen in beeld. Daarin zijn soms duizenden processoren of rekenkernen beschikbaar. Het programmeren voor dit soort systemen is een vak apart. Bij VORtech is die kennis aanwezig en we kunnen dus ook adviseren over de te nemen route.

Bij het versnellen van software is het belangrijk om er 100% zeker van te zijn dat de functionaliteit niet wijzigt. Om correctheid van de berekeningen te borgen is een uitgebreide testbank essentieel. Vaak is het nodig om bij het opzetten van de testen voldoende kennis te hebben van de onderliggende algoritmen.
Door alle functionaliteit te documenteren zorgen we ervoor dat uw eigen softwareontwikkelaars nog steeds de weg in de programmatuur kunnen vinden.

Programmatuur die geweldig presteert maar niet onderhoudbaar is, zal snel een probleem gaan vormen. Wij zorgen ervoor dat de leesbaarheid en onderhoudbaarheid van uw software niet wordt aangetast.

Geïnteresseerd?

Als u denkt dat onze ontwikkelaars iets voor u kunnen betekenen, neem dan gerust contact met ons op voor een vrijblijvend kennismakingsgesprek.

Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someonePrint this page
Social Media Auto Publish Powered By : XYZScripts.com