benchmark tip

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Lead developer

Functie Als Lead developer wordt jij onderdeel van een multidisciplinair team van circa 23 software engineers. Als team werken jullie agile en zijn termen als Continuous Integration en Continuous Delivery dagelijkse koek. Jullie werken aan uitdagende en afwisselende projecten met als doel klanten een totaal oplossing aan te kunnen bieden. Jij wordt verantwoordelijk voor complete projecten waarbij jij als verantwoordelijke zorgt dat het project op de juiste manier blijft draaien. Zo haal jij ook de requirements op bij de klant en kijk jij samen met het team en met de salesafdeling hoeveel uren hiervoor nodig zijn. Daarnaast stuur jij jouw

Bekijk vacature »

Ervaren Magento developer gezocht!

Functie Je komt te werken in een zelfsturend team waarin vertrouwen voorop staat en inbreng en ideeën worden gewaardeerd. Ook staat innovatie centraal. Ze bieden jou de mogelijkheid om jezelf door te ontwikkelen. Denk hierbij aan cursussen en een persoonlijk ontwikkelplan. Je komt terecht in het team van momenteel 4 (ervaren) collega’s en zal meewerken aan de doorontwikkeling en nieuwbouw van de Magento platformen van meerdere opdrachtgevers volgens Agile/Scrum. Denk hierbij aan nieuwe functionaliteiten, UX en koppelingen met verschillende back-end systemen. Als ervaren developer zul je hiernaast ook andere developers assisteren en waar nodig de leiding nemen in het project.

Bekijk vacature »

Traineeship IT regio Amsterdam/Utrecht

Wat ga je doen? Het traineeship begint met een fulltime maand cursussen en praktijkdagen, waarin je de basis van het IT-vak leert op de Shared Servicedesk (SSD). Daarnaast ga je meteen aan de slag voor je eerste certificering! (ITILv4). Je start in een groep met 4 tot 10 deelnemers, waarmee jij gedurende die maand optrekt en je kennis kunt delen. Na het voltooien van de eerste maand ga je direct voor een langere periode aan de slag bij één van onze klanten of blijf je intern bij ons op de Shared Servicedesk. Je bent het eerste aanspreekpunt van de eindgebruikers

Bekijk vacature »

Software Programmeur PHP - JAVA

Functie Heb jij altijd al willen werken voor een bedrijf, dat veilige netwerkverbindingen levert, door middel van veilige oplossingen, die door middel van de nieuwste technologieën ontwikkelt zijn? Stop dan nu met zoeken! Voor een opdrachtgever in omgeving Moordrecht zijn wij op zoek naar een programmeur. Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen C / C++ / PHP. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten goed verlopen. Je gaat klanten ondersteunen op

Bekijk vacature »

Applicatieontwikkelaar ABAP

Bedrijfsomschrijving Functieomschrijving De kandidaat zal worden ingezet binnen een van de DevOps teams binnen SCI (Service Centrum Inburgering) voor het ontwerpen en bouwen in SAP ABAP van de binnen SCI gebruikte informatiesystemen. Voornaamste voorkomende werkzaamheden zijn het aanpassen van en bouwen van nieuwe programmatuur in ABAP (Objects), waarbij ook gebruikt wordt gemaakt van DDD (Domain Driven Design) en het opstellen/aanpassen van Functionele/Technische ontwerpen. Daarnaast moeten ook formulieren met SAP Smartforms worden aangepast. Verder speelt de overgang naar SAP4Hana en SAP CPI. Vanwege het veelvuldig gebruik van SAP PO is kennis hiervan een pré. Achtergrond opdracht Momenteel werken meerdere DevOps teams

Bekijk vacature »

PHP Developer

Functie omschrijving Als PHP Developer ga jij aan de slag met uitdagende software projecten. Jij gaat in deze functie software applicaties ontwikkelen. Deze software projecten zijn heel divers, en deze organisatie maakt software, van A tot Z. Klanten kunnen in elke sector werkzaam zijn, van profit tot non-profit. Deze software bouw je vooral in PHP en specifiek Laravel. Dit framework kent dus geen geheimen voor jou. De software die jij gaat ontwikkelen is heel divers, van urenregistratiesystemen tot compleet geautomatiseerde tools. In deze veelzijdige functie ga jij je zeker niet vervelen, elke dag bestaat weer uit nieuwe uitdagingen. Bedrijfsprofiel Deze

Bekijk vacature »

Software Developer

Dit ga je doen Je bent verantwoordelijk voor de warehouse applicatie die een integratie heeft met de PLC laag; Je ontwikkelt in C#/.Net; Je werkt mee aan de migratie naar .NET 6; Je bent verantwoordelijk voor het ontwikkelen van interfaces en het visualiseren van componenten; Je denkt mee over het design voor business oplossingen; Je bent verantwoordelijk voor het testen van de gebouwde oplossing. Hier ga je werken Voor een internationale organisatie in de transport zijn wij momenteel op zoek naar een Software Developer. Zij zijn wereldwijd de grootste speler en lopen voorop met het automatiseren van alle processen van

Bekijk vacature »

Back End Developer .NET

Dit ga je doen Ontwikkelen in C# .NET en werken aan nieuwbouw, uitbouw en onderhoud van de software (die communiceren met 68.000 sensoren, waardoor er meerdere miljoenen berichten per uur verwerkt worden); Samenwerken in Scrum Teams; Meewerken aan verschillende, uitdagende projecten; Werken met nieuwe technologieën en vrijheid krijgen om jezelf te ontwikkelen en door te groeien. Hier ga je werken Je komt als Developer te werken bij een organisatie die gespecialiseerd is in software die real-time wordt gebruikt. De software constateert waar werk moet worden uitgevoerd en de chauffeurs worden met een andere applicatie hierop geattendeerd. Ook wordt er direct

Bekijk vacature »

Junior Front end developer

Functie Jij als developer gaat ons helpen onze producten verder te ontwikkelen en in te zetten in de markt. Op dit moment bestaat ons SaaS product uit 3 componenten die zowel los als in een pakket gekocht kunnen worden. Het gaat hier om een online kaartapplicatie, een workflow tool en een monitoring tool. Momenteel zijn wij 3 jaar geleden gestart met de ontwikkeling. De tech-stack waarmee we werken is voornamelijk Javascript, Vue.js en Python. Daarnaast gebruiken wij FaundaDB als database en werken we veel met GIS applicaties. De uitdaging die we momenteel hebben is dat we momenteel een intern team

Bekijk vacature »

OutSystems Developer

Dit ga je doen Het van scratch af aan ontwikkelen van applicaties met OutSystems; Het aanhaken bij diverse projecten binnen de organisatie; Schakelen met de business; Meedenken over de mogelijkheden van het platform binnen de organisatie. Hier ga je werken Deze organisatie is een toonaangevende speler in de vastgoedbranche en telt momenteel ruim 500 medewerkers. Met meer dan 150 applicaties staat er een complex applicatielandschap, bestaande uit standaard- en maatwerkapplicaties. De maatwerkapplicaties worden ontwikkeld door een inhouse development team. Het doel voor de komende periode is het verder vernieuwen en optimaliseren van het huidige applicatielandschap. Zo staat de organisatie aan

Bekijk vacature »

Back-end .NET Developer

Functie omschrijving C# / .NET Developer gezocht voor een dynamische organisatie in de regio Houten! Voor een leuke organisatie in de regio Houten zijn wij op zoek naar een Back-end developer die klaar is voor een nieuwe uitdaging. In deze functie werk jij aan verschillende projecten en ga je vaak bij klanten op bezoek. Binnen deze functie kun je een grote mate van uitdaging, diversiteit en verantwoordelijkheid treffen. Bedrijfsprofiel Waar ga je werken? Het bedrijf waar je gaat werken is gespecialiseerd in het ontwerpen en implementeren van procesautomatisering en procesinformatisering. Zij doen dit onder andere voor de (petro)chemie, pharma, infra,

Bekijk vacature »

Traineeship Full Stack Java developer

Dit ga je doen Start jij op 7 augustus bij de Experis Academy dan kickstart jij jouw IT-carrière! We leiden je op tot een gewilde Full Stack Java Developer met alle kennis en vaardigheden die nodig zijn om de arbeidsmarkt te betreden. Wat kun je verwachten, hoe zit een dag in het leven van een Trainee eruit? Periode 1 Als Full Stack Java Developer Trainee volg je vanuit huis een op maat gemaakte onlinetraining die in het Engels wordt gegeven. De tijd die je kwijt bent aan het volgen van de training kun je vergelijken met een fulltime werkweek. In

Bekijk vacature »

C# Unity Developer

Functieomschrijving Ontwikkel jij mee door applicaties te bouwen die bijdragen aan het optimaliseren van processen? Voor een erkende werkgever in regio Tilburg zijn wij op zoek naar een Unity C# Developer die graag de uitdaging aangaat! Jouw werkzaamheden zullen er als volgt uitzien: Je bent een luisterend oor naar klanten en vertaalt hun wensen door naar bruikbare software; Je werkt aan innovatieve softwareoplossingen voor het verbeteren en/of vernieuwen van processen; Je bent verantwoordelijk voor het uitvoeren van updates/aanpassingen aan de reeds draaiende applicaties. Bedrijfsprofiel Je komt te werken voor een internationale werkgever in regio Tilburg. Samen met een vooruitstrevend team

Bekijk vacature »

Fullstack JavaScript developer (ReactJS, NodeJS, T

Functie Het team bestaat momenteel uit ruim 15 collega’s, waarvan ruim de helft in het ontwikkelteam werkzaam is. Er zijn gave plannen om het platform ook te gaan toepassen op bijv. vliegvelden, maar ook internationale groei zit in het verschiet en daarom zijn ze op zoek naar versterking. Als Fullstack JavaScript developer werk je nauw samen met 9 fullstack (Python en .NET) developers. Binnen het team ga jij je toespitsen op het creeren van de optimale toegankelijkheid en user experience. Om dit voor elkaar te krijgen zul je ontwerpen, programmeren, testen en implementeren. Het hele proces dus! Maar ook bijvoorbeeld

Bekijk vacature »

Junior Front end developer Onderwijssoftware

Functie Als Junior front end developer kom jij terecht in een klein, maar hecht team bestaande uit 5 andere developers (waarvan 2 senioren, 2 medior en 1 junior). Met de gezamenlijke missie om “ieder kind te helpen met onze software” wordt er dagelijks gepassioneerd en hard gewerkt aan ons in-house ontwikkeld platform. Deze software is gebaseerd is op AI, machine Learning en wetenschappelijke inzichten. Dagelijks zul jij werken met onze high traffic webapplicatie. We hebben ruim 300.00 gebruikers en meer dan 2 miljard records waar je te maken mee krijgt! Verder zul jij je bezighouden met: – Het ontwikkelen van

Bekijk vacature »

Pagina: 1 2 volgende »

Ozzie PHP

Ozzie PHP

14/03/2013 01:38:48
Quote Anchor link
Zomaar even een gratis tip die ik met jullie wil delen.

Als je in een class method (functie) meerdere keren een class property nodig hebt, dan kun je deze property beter eerst in een variabele stoppen. Ik had al zo'n vermoeden dat dat sneller zou zijn, maar ik heb het gebenchmarkt en het blijkt ook inderdaad iets sneller te zijn.

In plaats van dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if (isset($this->data[$key])) {
    if ($this->data[$key]['foo'] === 'bar') return $this->data[$key]['bar'];
}

?>


...kun je beter dit doen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if (isset($this->data[$key])) {
    $data = $this->data[$key];
    if ($data['foo'] === 'bar') return $data['bar'];
}

?>
 
PHP hulp

PHP hulp

04/05/2024 07:14:28
 
Wouter J

Wouter J

14/03/2013 08:49:37
Quote Anchor link
En hoeveel scheelt dat nou?
 
TJVB tvb

TJVB tvb

14/03/2013 09:20:50
Quote Anchor link
Heb je ook je geheugen gebruik getest? Dat kan juist weer iets vergroten (is vermoeden zonder meteen getest te hebben)
 
Ozzie PHP

Ozzie PHP

14/03/2013 12:39:08
Quote Anchor link
@Wouter: ik heb de test al weer weggegooid. Het scheelt niet gruwelijk veel maar wel wat. En hoe vaker je binnen een functie rechtstreeks de property aanspreekt, des te groter het verschil wordt. In principe zou je dus moeten zeggen... vaker dan 1x dezelfde property aanspreken, dan eerst in een variabele stoppen.

@TJVB: nee, ik heb het geheugenverbruik niet getest, maar je praat over 1 variabele binnen een functie. Zodra de functie niet wordt gebruikt wordt de geheugenruimte vrij gemaakt. Ik kan me dus niet voorstellen dat dat heel spannend is.

Deze optimalisatie zal er ook niet voor zorgen dat je applicatie ineens gruwelijk sneller wordt. Persoonlijk vind ik het soms netter om een property in een variabele te stoppen in plaats van telkens $this->blabla[$key] te moeten doen. En als het dan ook nog snelheidsvoordeel oplevert? Tja, dan is er geen reden om het niet te doen. 2 Vliegen in één klap. Maar je moet het natuurlijk alleen doen als je meer dan 1x de property aanspreekt. Dit is bijvoorbeeld totaal nutteloos:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
public function getObject($key) {
  $object = $this->object[$key];
  return $object;
?>


Dat doe je uiteraard gewoon zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
public function getObject($key) {
  return $this->object[$key];
?>
Gewijzigd op 14/03/2013 12:40:09 door Ozzie PHP
 
Wouter J

Wouter J

14/03/2013 13:26:35
Quote Anchor link
Wat mij betreft hoort dit dus weer onder het kopje 'nutteloze microoptimalisatie' en 'voorkeur'.
 
TJVB tvb

TJVB tvb

14/03/2013 13:31:06
Quote Anchor link
PHP heeft je geheugen pas vrij aan het einde van het request (of je moet handmatig de garbage collector aanroepen)
En zoals Wouter al zegt, dit is microoptimalsiatie.
 
Ozzie PHP

Ozzie PHP

14/03/2013 14:06:38
Quote Anchor link
Ja, en wat dan nog als het micro-optimalisatie is? Ik geef het gewoon als tip. En zoals bijna alles is ook dit een kwestie van persoonlijke voorkeur, maar dan wel eentje met voordelen. Ik zeg helemaal niet dat je het moet doen, ik geef het gewoon mee als tip. En... altijd dan weer heel erg leuk als er zo ongelofelijk vriendelijk wordt gereageerd... ahum.
 
TJVB tvb

TJVB tvb

14/03/2013 14:08:36
Quote Anchor link
Sorry Ozzie, het was niet onvriendelijk bedoeld. Maar ik bedoelde met mijn opmerkingen over het geheugen dat een optimalisatie op 1 punt nadelig kan zijn op een ander punt.
 
Ozzie PHP

Ozzie PHP

14/03/2013 14:11:41
Quote Anchor link
Oké dat kan ik nog begrijpen, maar als ik de 2 reacties van Wouter lees (met name het woordje "nutteloze"), dan vind ik het jammer dat er niet eens een keertje positief wordt gereageerd. Het is meteen weer "hakken waar we hakken kunnen". Ik geef hier gewoon goedbedoeld een tip.
 
Wouter J

Wouter J

14/03/2013 16:29:47
Quote Anchor link
Quote:
maar als ik de 2 reacties van Wouter lees

jammer dat je hier dan meteen gaat generalizeren door al mijn reactie in dit topic slecht te keuren. Die eerste was gewoon een goed bedoelde vraag, want als het veel uitmaakt ga ik het echt wel aanpassen (zoals ik bijv. ook heb gedaan toen iemand me vertelde dat de pReg lib traag was en captured groups al helemaal)
 
Willem vp

Willem vp

14/03/2013 17:26:31
Quote Anchor link
Als je écht wilt optimaliseren op snelheid, moet je al die OO-zooi overboord gooien en procedureel gaan werken. ;-)

Overigens is het niet alleen bij class properties sneller om ze in een variabele te zetten, ook bij array-waardes scheelt het een paar CPU-cycles. PHP kent namelijk eigenlijk helemaal geen arrays, maar implementeert ze onder water als een hash table. Wanneer je een array-waarde opvraagt, moet PHP eerst een hash berekenen en vervolgens een linked list aflopen om de waarde te vinden.

Maar ook dan blijft het een micro-optimalisatie. De voornaamste reden om al dan niet gebruik te maken van variabelen zou in mijn ogen de leesbaarheid van de code moeten zijn. Soms is het leesbaarder om variabelen te gebruiken, soms niet.

Als je door een verhoogde leesbaarheid van je code over een paar maanden een minuut minder lang op je code hoeft te studeren om te begrijpen wat het ook weer doet, heb je al meer gewonnen dan je met micro-optimalisaties kunt bereiken.
 
Ozzie PHP

Ozzie PHP

14/03/2013 17:34:00
Quote Anchor link
@Wouter: als gevolg van je 2e reactie heb ik dan blijkbaar een verkeerde conclusie getrokken over je 1e reactie.

Anyhow, ik vind het jammer dat je iets gelijk bestempelt als nutteloos. Dat is nergens voor nodig. Iedere optimalisatie hoe klein ook is sowieso nuttig.

Een micro-optimalisatie lijkt in 1e instantie misschien niet zo heel spannend, maar stel je het volgende eens voor. Iemand op een webshop vraagt een productlijst op van 100 producten. Jij hebt een class met daarin een property $products waarin die 100 producten staan. Per product toon jij in de webshop een titel, een thumbnail, een korte omschrijving, 3 eigenschappen, een productcode, de beschikbaarheid en de prijs. Dat zijn al 7 aanroepen. Dat betekent dat jij 700 keer een trage aanroep doet. Ik doe per product slechts 1x een trage aanroep. De 700 aanroepen die ik daarna doe zijn allemaal sneller. En dat zal zeker een verschil maken.
 
- Raoul -

- Raoul -

14/03/2013 17:34:01
Quote Anchor link
Het is wel een goede tip, maar ik betwijfel of iemand echt hier rekening mee gaat houden tijdens het programmeren om 0.01 microseconde te besparen.
 
Ozzie PHP

Ozzie PHP

14/03/2013 17:35:21
Quote Anchor link
Je hoeft er ook geen rekening mee te houden, maar het is beter voor je leesbaarheid en het levert snelheidswinst op. Maar zoals ik al zei, je moet helemaal niks. Het is slechts een tip.
 
Willem vp

Willem vp

14/03/2013 17:45:48
Quote Anchor link
Ozzie PHP op 14/03/2013 17:34:00:
Dat betekent dat jij 700 keer een trage aanroep doet. Ik doe per product slechts 1x een trage aanroep. De 700 aanroepen die ik daarna doe zijn allemaal sneller. En dat zal zeker een verschil maken.

In de benchmarks die ik ooit (jaar of vijf geleden) heb gedaan was het verschil iets van 0,15 seconden voor 100.000 aanroepen. Voor die 700 trage aanroepen waar je het over hebt, praat je dus over een verschil van maar liefst een hele milliseconde. Ik denk niet dat de gemiddelde gebruiker daar wakker van ligt. Een goed geplaatste index op je productendatabase levert meer snelheidswinst op.
 
Ozzie PHP

Ozzie PHP

14/03/2013 17:50:25
Quote Anchor link
Ach ja, iedereen gewoon lekker doen waar ie zelf zin in heeft. Ik zal voortaan m'n bevingen niet meer posten hier.
 
Ward van der Put
Moderator

Ward van der Put

14/03/2013 18:07:18
Quote Anchor link
Ozzie PHP op 14/03/2013 17:50:25:
Ach ja, iedereen gewoon lekker doen waar ie zelf zin in heeft. Ik zal voortaan m'n bevingen niet meer posten hier.

Jammer, van alleen maar OOP-huiswerk van scholieren en OOP-theorie van studenten wordt een PHP-forum ook niet beter.
 
Ozzie PHP

Ozzie PHP

14/03/2013 19:31:22
Quote Anchor link
Precies! Spijker op z'n kop Ward. Maar blijkbaar wordt het jammer genoeg door sommigen niet zo heel erg gewaardeerd.
 
Willem vp

Willem vp

14/03/2013 19:55:27
Quote Anchor link
Ozzie PHP op 14/03/2013 17:50:25:
Ik zal voortaan m'n bevingen niet meer posten hier.

Die bevindingen -en de discussie die erop volgt- zijn juist interessant. Het enige wat ik jammer vind is dat je alleen maar zegt dát het sneller is, maar er verder niet bij uitlegt wat je precies hebt gedaan en wat de resultaten (snelheidsverschillen) waren, want dat maakt de materie juist een stuk inzichtelijker.

In de meeste gevallen zijn micro-optimalisaties zonde van je tijd, maar het is wel belangrijk om te weten of iets al dan niet een micro-optimalisatie is, juist omdat je dan kunt inschatten of het de moeite waard is om te gaan optimaliseren. Heb je een seconde snelheidsverschil bij 100 operaties, of pas bij 100.000? Op een van mijn servers krijg ik via http-requests grote hoeveelheden data binnen (ik praat dan over pieken van een half miljoen records die in een kwartier tijd binnenkomen van een stuk of 400 clients) en dan kijk ik echt wel naar micro-optimalisaties. De eerste (grote) optimalisatie die ik dan overigens doe is PHP aan de kant schuiven. ;-)

PHP is een zeer complex stuk gereedschap dat is opgebouwd uit verschillende andere stukken gereedschap (arrays, loopjes, objecten, noem ze maar op). Om optimaal van dat gereedschap gebruik te kunnen maken moet je veel van de ins en outs weten, en die kunnen juist in een discussie als deze boven komen drijven.

Om maar eens wat te noemen: in plaats van een while-loop is het efficiënter om een for-loop te gebruiken. En foreach is zelfs nóg een klein beetje efficiënter. Gebruik in de conditie van je for-loop nooit een functie of een array-reference, maar een simpele variabele. En wil je iets doen met arrays, dan kun je beter gebruik maken van de ingebouwde array-functies van PHP en niet zelf gaan lopen knoeien met loopjes of wat dan ook.
 
Pieter Rekvelt

Pieter Rekvelt

16/03/2013 10:46:51
Quote Anchor link
--> De eerste (grote) optimalisatie die ik dan overigens doe is PHP aan de kant schuiven.

@Willem VP
Hoe en waarmee ga je dan verder?
Gewijzigd op 16/03/2013 10:49:18 door Pieter Rekvelt
 
Wouter J

Wouter J

16/03/2013 14:15:07
Quote Anchor link
Ik denk een meer volwassene taal zoals ASP.net of scala of zoiets.
Gewijzigd op 16/03/2013 14:15:31 door Wouter J
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.