benchmark tip

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

PHP Developer - Draag bij aan de maatschappij!

Bedrijfsomschrijving Wil jij als applicatieontwikkelaar deel uitmaken van een gedreven ontwikkelteam en werken aan innovatieve producten? Dan hebben wij dé uitdaging voor jou! Wij zijn op zoek naar een enthousiaste collega die samen met ons de technische ondergrond van onze producten verder wil ontwikkelen met behulp van PHP. Met jouw expertise geef je de finishing touch aan onze producten om jezelf steeds opnieuw weer te verrassen. Functieomschrijving Bij ons staan innovatie en creativiteit centraal. Wij zijn op zoek naar een enthousiaste PHP ontwikkelaar die nieuwe ideeën en inzichten kan inbrengen en daarmee zichzelf en het team verder kan laten groeien.

Bekijk vacature »

.NET Developer Microservices

Dit ga je doen Je taken zullen voornamelijk bestaan uit: Het ontwikkelen van software, inclusief vormgeving, implementaties, integraties en (automatisch) testen (.NET, C#, Azure, Docker, Microservices, Angular); Het in kaart brengen van software requirements; Zorgen dat jouw code kwalitatief hoogstaand is; Het uitvoeren van risico analyses; Een bijdrage leveren aan het continuous quality improvement process. Hier ga je werken Dat kanker een verschrikkelijke ziekte is die de wereld uit geholpen moet worden, is duidelijk. Binnen deze Gelderse organisatie die duizenden ziekenhuizen van producten voorziet, proberen ze daar via technische innovaties aan bij te dragen. Samen met 10 collega .NET developers

Bekijk vacature »

Low code Developer

Dit ga je doen Je richt je op het doorontwikkelen van bestaande applicaties en het geheel van scratch af aan opzetten van nieuwe applicaties binnen een low code platform; Je beoordeelt technisch ontwerpen en maakt de vertaalslag naar de technische oplossingen binnen het platform; Je voert testwerkzaamheden uit; Je adviseert de organisatie op jouw vakgebied; Je schakelt met business analisten en de architect om tot mooie oplossingen te komen; Je lost bugs op en denkt mee over een structurele oplossing. Hier ga je werken Het gaat om een bekend internationaal handelsbedrijf met ruim 800 medewerkers, verdeeld over verschillende deelbedrijven. Deze

Bekijk vacature »

.Net Front-end Ontwikkelaar

Wij zoeken een .Net Front-end Ontwikkelaar! Omschrijving Kun jij snel schakelen en ben je stressbestendig? Dan zoeken wij jou! Als .Net Front-end Ontwikkelaar help je mee aan de webapplicatie die over de hele wereld door allerlei bedrijven wordt gebruikt. Je werkt daarnaast mee aan nieuwe en verbeterde functionaliteiten en helpt met het oplossen van bugs. Over de opdrachtgever Je komt te werken in een ambitieus team dat zich blijft ontwikkelen. Dit is alle informatie die we nu kunnen delen over de werkplek. Als jij de .Net Front-end Ontwikkelaar bent voor deze job, vertellen we je snel nóg meer. Eisen Heb

Bekijk vacature »

Software Programmeur PHP - JAVA

Functie Wil jij bij een platte en informele organisatie werken? Lees dan snel verder! Voor een opdrachtgever in omgeving Rotterdam dat zich gespecialiseerd heeft in het realiseren van veilige netwerkverbindingen zijn wij op zoek naar een leuke software developer ter versterking van het huidige team. Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen PHP, JAVA en Node.js. Je gaat klanten ondersteunen op het gebied van geleverde software en webapplicaties. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn

Bekijk vacature »

Robot Programmeur

In het kort Drie redenen waarom deze vacature uniek is! Programmeren van zelflerende robots Werken op kantoor en testen in de bedrijfshal Je krijgt verantwoordelijkheid, vrijheid en je mag werken naar eigen inzicht De organisatie Hier ga je aan de slag Een bedrijf dat innovatieve robottoepassingen ontwerpt en bouwt voor onder andere de staal industrie, energie- bouw- en agrarische sector. De robots die vaak in combinatie met diverse randapparatuur geleverd worden vormen een totaaloplossing voor de klant. Dit zijn klanten over de hele wereld, van België en Duitsland tot China, India, maar ook in Nederland. Projecten waar momenteel aan wordt

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 »

Applicatieontwikkelaar Java EE

Bedrijfsomschrijving De IV- organisatie van de Belastingdienst is verantwoordelijk voor en verzorgt de ICT- voorzieningen. Het merendeel van de applicaties wordt op dit moment door de IV- organisatie zelf ontwikkeld, onderhouden en beheerd in het eigen data center. Naast de zorg voor continuïteit op de massale heffing- en inningsprocessen die plaatsvinden binnen een degelijke, stabiele omgeving, wordt er tevens volop gewerkt aan modernisering van het IV- landschap. Dit gebeurt deels intern door gebruik te maken van de expertise die intern aanwezig is, maar ook door het aantrekken van (kant-en-klaar) oplossingen en expertise uit de markt. Functieomschrijving De afdeling IV –

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Lead developer

Functie Als lead developer wordt jij verantwoordelijk voor een van onze development teams. Samen met de Software Architect bewaak jij de kwaliteit en uitvoering van onze complexe vraagstukken. Daarnaast ben jij verantwoordelijk voor het inschatten, designen en ontwikkelen van middelgrote tot grote veranderingen in de software. Ook coördineer jij het proces rondom complexe technische vraagstukken. Verder bestaat jouw takenpakket uit het volgende: – Het aansturen van jouw development team; – Het begeleiden van Junior Software Engineers; – Het maken van technische analyses m.b.t. nieuwe aanvragen en het tijdsbestek inschatten voor de uitvoering hiervan; – Het uitvoeren van de ontwikkeling van

Bekijk vacature »

PHP Developer - medior functie

Functieomschrijving Ben jij innovatief en wil jij je kennis graag delen met jouw nieuwe collega's? Lees dan snel verder! Voor een leuke opdrachtgever in de omgeving van Roosendaal zoeken wij een Symfony developer. Of je nou junior, medior of senior bent, je krijgt hier alle vrijheid en verantwoordelijkheid om jouw eigen loopbaan te ontwikkelen. Je gaat je hier bezig houden met en inspelen op de actualiteiten van jouw vakgebied. Techstack: Symfony, PHP, mySQL. Kennis van Svelte is helemaal mooi meegenomen. Bedrijfsprofiel Al sinds '99 is dit webbureau actief. De kernwaarden binnen het bedrijf zijn integer, dienstbaar en deskundig. Je komt

Bekijk vacature »

Senior Organisatieontwikkelaar

Als Organisatieontwikkelaar zorg je ervoor dat we in het magazijn van Coolblue altijd vooruit voetballen op het gebied Medewerker en Organisatie Ontwikkeling. Zo draag je bij aan een toekomstbestendig magazijn waar we klanten én medewerkers elke dag blijven verwonderen. Wat doe je als Senior Organisatieontwikkelaar bij Coolblue? Als Organisatieontwikkelaar werk je voor het magazijn van Coolblue. Je krijgt er energie van om continue te bouwen aan een toekomstbestendige organisatie. Dat doe je samen met 17 collega's in het HR-team, ieder met een eigen specialisme. Je werkt graag zelfstandig en je weet snel je weg te vinden als verandermanager. Ook ben

Bekijk vacature »

Software Developer C++ en Perl

Ben je een slimme en enthousiaste universitair opgeleide bèta die graag bij een relatief klein softwarebedrijf wil werken waar de sfeer goed is en eigen inbreng gewaardeerd wordt? Wij, IntelliMagic in Leiden, ontwikkelen technisch hoogwaardige software op het gebied van IT infrastructuur performance analytics. Het type software zorgt voor intellectueel interessante uitdagingen. We ontwerpen de producten zelf en verkopen deze als off-the-shelf software aan grote bedrijven in Europa en de VS. Wij zoeken een ervaren C++ software engineer met kennis van Perl voor een van onze ontwikkelteams. Werkzaamheden Samen met de andere ontwikkelaars specificeren, ontwerpen en implementeren van nieuwe functionaliteit

Bekijk vacature »

PHP Developer

Functie omschrijving Voor een bedrijf in Den Bosch zoek ik een PHP Developer, die al wat werkervaring heeft. Jij gaat aan de slag met de verdere professionalisering van de interne applicaties en software. In de functie ga je verder: Verdere ontwikkeling eigen CRM systeem, vooral middels PHP; Bouwen van verschillende API's & koppelingen; Meedenken om de software/applicaties te verbeteren/optimaliseren; Aan de slag met de interne tooling. Bedrijfsprofiel Dit bedrijf is actief binnen de telecombranche. Het hoofdkantoor zit in regio van Den Bosch en er werken ruim 70 medewerkers, verdeeld over verschillende afdelingen. De afdeling Development bestaat uit vijf collega's, onder

Bekijk vacature »

Java Developer / Sociaal domein

Dit ga je doen Nieuwbouw en doorontwikkeling; Beheer en wanneer nodig onderhoud; Bijdrage leveren in het functioneel- en technisch ontwerptraject; Analyseren van productie verstoringen; Meedenken over vernieuwingen en verbeteringen. Hier ga je werken De organisatie waar jij komt te werken focust zich op software development met een maatschappelijk tintje. De afdeling software ontwikkeling bestaat uit vijf verschillende scrum teams, met allen hun eigen focus gebied. Zo zijn er een aantal teams die zich focussen op specifieke applicaties, maar is er ook een team gericht op projecten. Binnen de organisatie staat innovatie en kwaliteit voorop. Een aantal applicaties draait nog op

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

18/05/2024 09:40:29
 
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.