SymLinksIfOwnerMatch performance

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

C# developer

Functie omschrijving We are looking for a dutch native speaker Ik ben op zoek naar een back-end developer, die met name kennis & ervaring heeft van de programmeertaal C#. Jij gaat aan de slag bij een topspeler in de logistieke sector, die zich behalve met logistiek, ook bezig houdt met softwareontwikkeling. Welke taken komen hierbij kijken? Je gaat desktop- en webapplicaties onderhouden en optimaliseren, waarin je werkt met o.a. C#, ASP.NET, SQL Server en T-SQL. Je hebt regelmatig klantcontact om de wensen in kaart te brengen en te evalueren over de huidige draaiende applicaties. Je implementeert nieuwe functionaliteiten toe aan

Bekijk vacature »

Front-end Developer

Front-end Developers opgelet! Bij Luminis zijn ze opzoek naar jou. Lees de vacature en solliciteer direct. Luminis is een software- en technologiebedrijf met meerdere vestigingen. Vanuit deze vestigingen werken 200 professionals aan technisch hoogwaardige oplossingen voor klanten zoals KLM, Nike en Bol.com. Ook ontwikkelt Luminis eigen oplossingen op het gebied van cloud, Internet of Things, data intelligence, e-sports en e-learning. Luminis onderscheidt zich door aantoonbaar voorop te lopen in technologie en innovatie. Luminis heeft drie kernpunten die verankerd zitten in alles wat we doen: het omarmen van nieuwe technologie, meesterschap en kennis delen. Functiebeschrijving First things first! Het is belangrijk

Bekijk vacature »

Outsystems Developer Medior

Dit ga je doen Bouwen aan nieuwe en innovatieve applicaties; Maken van koppelingen tussen Outsystems en het bestaande applicatielandschap; Troubleshooting op bestaande software. Hier ga je werken De organisatie is internationale speler binnen de bouwbranche en richt zich op de infrastructuur, zowel boven als onder de grond. Ze zijn ruim 1100 man groot en maken op IT vlak een mooie groei door. Als ervaren Developer kom je te werken op een IT-afdeling van zo'n 25 man groot. Een aantal jaar geleden hebben ze de keuze gemaakt om zich meer te gaan richten op ontwikkeling en door de groei van de

Bekijk vacature »

Back end developer Digital agency

Functie Heb jij altijd al eens bij een bedrijf willen werken waar jij géén nummertje bent, die alleen maar uitvoerend werk doet? Dan zou je hier perfect passen! Tuurlijk, je werkt aan projecten voor grote of kleine bedrijven… Het enige verschil hier is, jouw mening telt hier écht. Jouw inbreng wordt gewaardeerd, serieus genomen en gebruikt. En vergeet niet, je werkt niet alleen aan deze projecten. Er werken in totaal ruim 20 developers en designers, onderverdeeld over 3 development teams. Voornamelijk bestaande uit Medior en Senior developers, die samen voor een inspirerende en ambitieuze omgeving zorgen. Hun visie is namelijk

Bekijk vacature »

PHP Laravel Ontwikkelaar

Functie omschrijving Weet jij alles over Laravel en krijg je energie van het developen van software hiermee? Laat het weten want wij zoeken een PHP/Laravel developer in regio 's-Hertogenbosch voor klein bedrijf welke softwareoplossingen maakt voor hun klanten. Jouw taken hierbij: Softwareapplicaties ontwikkelen en verder optimaliseren in veel diverse projecten op basis van Agile/Scrum. Documentatie schrijven over applicaties. Uitleg geven over software en applicaties Klantcontact hebben over bestaande applicaties. Techstack: PHP, Laravel, HTML, CSS, Javascript. Bedrijfsprofiel Deze organisatie zit in de regio van 's-Hertogenbosch en is een klein bedrijf. Er werken circa 15 medewerkers, verdeeld in meerdere teams, zoals back-end

Bekijk vacature »

Sportieve Junior C#.NET developer gezocht!

Bedrijfsomschrijving Wil jij werken aan webapplicaties bij de marktleider binnen de branche? Voor een klant in de buurt van Oosterhout ben ik op zoek naar een Fullstack .NET developer. Dit bedrijf bestaat bijna 10 jaar en is inmiddels uitgegroeid tot marktleider in Nederland en heeft tevens kantoren in meerdere landen in Europa. Dit bedrijf bouwt webapplicaties waarbij internationaal enkele honderdduizenden deelnemers, soms tegelijk, een beroep doen op de realtime data uit deze applicaties. Dit brengt erg veel technische uitdaging met zich mee. Ze ontwikkelen nieuwe applicaties maar ook bestaande applicaties worden uitgebreid en verbeterd. Hier kan jij een onderdeel van

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 »

Senior Java developer

Dit ga je doen Jouw taken als Senior Java Developer zijn: Het maken van strategische keuzes omtrent de nieuwbouw van applicaties; Het maken van technische ontwerpen; Hands-on mee ontwikkelen met het team (met o.a. Java FX, JDBC, SQL, REST, Jax-RS, JSON, Maven, JUnit en Spring (boot)); Reviewen van code en feedback geven op collega developers; Analyseren en oplossen van bugs/incidenten door het onderlinge verband te kunnen leggen van verschillende losstaande systemen. Hier ga je werken Het bedrijf waar je als Senior Java Developer komt te werken staat internationaal bekend om het testen van bodemstructuren door middel van echotechnieken en beeldherkenning.

Bekijk vacature »

C#.NET ontwikkelaar

Functie omschrijving Voor een softwarebedrijf in de omgeving van Veghel zijn we op zoek naar een C# developer. Word jij blij van ontwikkelen in C# en .NET? Lees dan snel verder! Jouw werkzaamheden zullen er als volgt uit gaan zien: Op basis van de wensen van de klant ga je samen met je collega's ga je op zoek naar de juiste oplossingen en je gaat dit uitwerken tot een mooi eindproduct. Je bouwt webshops, webapplicaties en websites, dit doe je door middel van ASP.NET, MVC Framework en C#. Je zorgt voor de optimalisering van bestaande software en de automatisering van

Bekijk vacature »

.NET developer

Functie Als .NET developer werk jij samen in een multidisciplinair ontwikkel team met 1-2 Senior .NET developers, twee front-end developers, Data Scientists en één UX designer. Als team werken jullie aan het ontwikkelen van een Cloud based applicatie en aan het stabieler maken van deze applicatie. Ook unit testing gaat erg belangrijk worden in jouw nieuwe functie. Samen met de Senior .NET ontwikkelaar wordt jij verantwoordelijk voor het ontwikkelen van de API. Jullie werken met veel data en incidenteel komen er ook data vraagstukken en zullen er wat queries gedraaid moeten worden. Dit betekend dat jij veel gaat werken met

Bekijk vacature »

Front-End React Developer

As a Front-End React Developer you improve the user-experience of our web applications for your colleagues in Coolblue. How do I become a Front-End React Developer at Coolblue? As a Front-End React Developer you are responsible for developing user interface components and implementing them using React.js concepts and workflows. You work with the UX Designer and get energy from coming up with creative solutions and present these within the team. During the day you gather and welcome feedback on your technical and soft skills. Would you like to become a Front-End React Developer at Coolblue? Read below if the job

Bekijk vacature »

Senior front-end developer (React)

Functie Momenteel zijn ze op zoek naar een ervaren front-end developer. Als senior werk je nauw samen met 5 collega developers. Een klein scrum team dus, met korte lijnen waardoor jouw ideeën snel tot uitvoering gebracht kunnen worden. De huidige applicaties worden veelal ontwikkeld met o.a. React, Redux, TypeScript. Ze zijn echt op zoek naar een kartrekker in het team. Naast het meedenken over, opzetten en uitvoeren van bijvoorbeeld de architectuur of toepassing van nieuwe technieken krijg je ook veel tijd om de meer junior (front-end) developers te begeleiden. Hierin nemen ze graag de tijd om mensen de ruimte te

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET Developer start jij in een team met 15 developers. In het team is er genoeg senioriteit om ervoor te zorgen dat jij de juiste begeleiding krijgt. Jij begint als eerst alle software pakketten en processen eigen te maken. Vervolgens ga jij deze software programmeren, onderhouden en testen. Ook ga jij research doen naar nieuwe mogelijkheden en zoek jij uit hoe je dit kan implementeren. Jullie werken intern op project basis en afhankelijk van het project werken jullie wel of niet iedere ochtend met een standup. Je gaat als Full stack developer aan de slag en gaat

Bekijk vacature »

Software Ontwikkelaar

Functie omschrijving Voor een echt familiebedrijf in de omgeving van 's-Hertogenbosch ben ik op zoek naar een Software Developer. Jij gaat in de functie van Software Developer werken met C# en .NET framework Jij gaat maatwerk software ontwikkelen en softwareoplossingen creëren. Daarnaast optimaliseer je de bestaande software. Oplossingen waar de klant echt iets aan heeft, jij krijgt er energie van op dit te realiseren. Je gaat werken in een Microsoft omgeving(ASP.NET) en gebruikt daarnaast C# en MVC. Samen met het huidige IT team binnen deze organisatie verwerk je de wensen van de klant tot een (eind)product. Bedrijfsprofiel Deze organisatie is

Bekijk vacature »

Software developer (PHP) - Utrecht centrum

Functie Ieder onderdeel van de software draait op aparte servers en het bestaat dus echt uit verschillende componenten. Het team bestaat uit 4 developers, een klein team dus met korte lijnen. Alles in intern ontwikkeld en je werkt aan alle facetten. Van uitbreiding van de core tot maatwerk voor de klant. Ook liggen er verschillende uitdagingen op servervlak en databases. Je zult de eerste periode veel samenwerken met de lead developer om vervolgens echt je gang te gaan binnen de software. In het team streven ze naast de hoogst haalbare kwaliteit. Hiervoor werken ze nauw met elkaar samen en levert

Bekijk vacature »

Pagina: « vorige 1 2 3 volgende »

Ben van Velzen

Ben van Velzen

01/06/2016 12:44:06
Quote Anchor link
Mogelijk performanceverlies treedt op in de volgende gevallen:
- FollowSymlinks staat uit
- SymlinksIfOwnerMatch staat aan

In deze gevallen wordt per path element met lstat() bekeken of het een symlink betreft, dus:
is /home een symlink?
is /home/ozzie een symlink?
etc etc. Als je pad diep genoeg doorloopt is er een meetbaar verschil in performance, maar of dat perceptueel ook aanwezig is durf ik niet te zeggen. Het grootste deel van de request bevindt zich in de applicatie, en wanneer het niet om je applicatie maar om statische bestanden gaat worden deze toch veelal gecached.

Wanneer FollowSymlinks gewoon aan staat wordt alleen op het opgevraagde bestand een stat() call gedaan, om te kijken of deze bestaat.

Lang verhaal kort: in de benchmarks zie je het terug, maar je merkt er eigenlijk niets van.
 
PHP hulp

PHP hulp

27/12/2024 13:48:45
 
Ozzie PHP

Ozzie PHP

01/06/2016 13:48:09
Quote Anchor link
@Thomas:

>> Ik zie zo direct niet echt een waarschuwing staan in het stukje waar je naar linkt, daar wordt enkel uitgelegd wat er gebeurt bij welke instelling.

Die hele pagina met als titel "Apache Performance Tuning" gaat over performance ;-)

Quote:
However, there are compile-time and run-time configuration choices that can significantly affect performance.


>> Waarom zet je niet meteen index.php #2 in de document root ...

Misschien wel omdat index2 de index is van een overkoepelend framework buiten de doc root ;)

@Ben van Velzen

>> ... In deze gevallen wordt per path element met lstat() bekeken of het een symlink betreft ... Wanneer FollowSymlinks gewoon aan staat wordt alleen op het opgevraagde bestand een stat() call gedaan

Is dit een andere uitleg dan jouw eerdere uitleg? Eerder vertelde je dat in beide gevallen lstat wordt uitgevoerd, maar dat bij SymlinksIfOwnerMatch nog de controle op eigenaar plaatsvindt.

>> Als je pad diep genoeg doorloopt is er een meetbaar verschil in performance

Oké ... maar nog even voor de goede orde. Als je index.php in var/www/vhosts/mijnsite.nl staat, dan vinden er dus 4 controles plaats per request ... want als index.php eenmaal geladen is neemt PHP het over en vinden er dus geen controles meer plaats, correct?
 
Thomas van den Heuvel

Thomas van den Heuvel

01/06/2016 14:30:17
Quote Anchor link
>> Misschien wel omdat index2 de index is van een overkoepelend framework buiten de doc root ;)

En de reden dat je dan een apart index bestand nodig hebt is?

Er bestaat zoiets als set_include_path().

Dit in combinatie met een autoloader = win.
Gewijzigd op 01/06/2016 14:31:02 door Thomas van den Heuvel
 
Willem vp

Willem vp

01/06/2016 14:31:29
Quote Anchor link
> Is dit een andere uitleg dan jouw eerdere uitleg? Eerder vertelde je dat in beide gevallen
> lstat wordt uitgevoerd, maar dat bij SymlinksIfOwnerMatch nog de controle op eigenaar plaatsvindt.

Zoals ik het interpreteer is de uitleg hetzelfde. Althans, in zijn laatste post beschreef Ben wat er gebeurt als FollowSymlinks aanstaat, en in de eerdere post wat er gebeurt als die instelling uitstaat (al lijkt de eerste post iets anders te suggereren, maar dat zal een typo zijn geweest).
 
Ben van Velzen

Ben van Velzen

01/06/2016 14:33:02
Quote Anchor link
>> Is dit een andere uitleg dan jouw eerdere uitleg? Eerder vertelde je dat in beide gevallen lstat wordt uitgevoerd, maar dat bij SymlinksIfOwnerMatch nog de controle op eigenaar plaatsvindt.

Nee, ik heb dat deel alleen weggelaten omdat het voor de performance geen verschil maakt. De systemcall zorgt voor de vertraging. Een simpele if (direntry.uid == uid) is niet langzaam te noemen.

>> Oké ... maar nog even voor de goede orde. Als je index.php in var/www/vhosts/mijnsite.nl staat, dan vinden er dus 4 controles plaats per request ... want als index.php eenmaal geladen is neemt PHP het over en vinden er dus geen controles meer plaats, correct?

5 controles, index.php kan ook een symlink zijn. Verder klopt het helemaal.
Gewijzigd op 01/06/2016 14:33:31 door Ben van Velzen
 
Ozzie PHP

Ozzie PHP

01/06/2016 14:38:29
Quote Anchor link
@Thomas

Autloader lijkt me logisch. Een aparte index omdat ik nog wat specifieke zaken wil kunnen instellen per vhost, maar wellicht iets om over na te denken.

@Ben

Oké. Lang verhaal kort. Dus qua performance maakt het niks uit en kunnen we dus 'veilig' kiezen voor SymlinksIfOwnerMatch in plaats van FollowSymlinks :-)
Gewijzigd op 01/06/2016 14:39:16 door Ozzie PHP
 
Ben van Velzen

Ben van Velzen

01/06/2016 14:50:41
Quote Anchor link
>> Oké. Lang verhaal kort. Dus qua performance maakt het niks uit en kunnen we dus 'veilig' kiezen voor SymlinksIfOwnerMatch in plaats van FollowSymlinks :-)

Voor het merken van het veschil maakt het niet uit, als je zware benchmarks gaat doen ga je enkele milliseconden extra zien. Veiligheid kent altijd een prijs, en in dit geval is de prijs dusdanig klein dat je er effectief niets van merkt.
 
Ozzie PHP

Ozzie PHP

01/06/2016 14:52:00
Quote Anchor link
Oké, top ... thanks!
 
Thomas van den Heuvel

Thomas van den Heuvel

01/06/2016 17:37:02
Quote Anchor link
En dan nu maar output buffering gaan gebruiken en queries optimaliseren met indexes zodat je echte winst kunt gaan pakken :p.
 
Ozzie PHP

Ozzie PHP

01/06/2016 20:33:23
Quote Anchor link
Wat voor vorm van output buffering, welke werkwijze, doel je dan op?
 
Ben van Velzen

Ben van Velzen

01/06/2016 20:56:57
Quote Anchor link
Ik gok erop dat Thomas bedoelt dat als je winst wil halen uit je Apache config dat je dan naar je applicatie moet gaan kijken ;-)
 
Ozzie PHP

Ozzie PHP

01/06/2016 21:02:27
Quote Anchor link
Ja, dat snap ik :-) Maar hij noemt specifiek output buffering ... ben dus benieuwd wat ie daarmee bedoelt.
 
Ben van Velzen

Ben van Velzen

01/06/2016 21:09:38
Quote Anchor link
Tsja, hoe minder vaak je contact hebt met de socket hoe sneller een pagina doorkomt. Iedere send operatie is immers een syscall en syscalls zijn traag. Ook kun je door slim te bufferen en flushen alvast het begin van de pagina renderen en alsnog bezig zijn met uitvoeren van je script.
 
Ozzie PHP

Ozzie PHP

01/06/2016 21:16:28
Quote Anchor link
Oké ... een tijdje terug hadden we het volgens mij ook over output buffering hier ... en ik zei toen ook al dat een aantal jaar eerder output buffering werd afgeraden hier op het forum.

>> Tsja, hoe minder vaak je contact hebt met de socket hoe sneller een pagina doorkomt.

Ik neem aan dat je hiermee bedoelt dat je in plaats van dat je in script A de header echoot en in script B de body en in script C de footer, dat je beter alles in een variabele kunt stoppen en alles pas aan het eind in 1x echoot (even simpel gezegd)?
 
Ben van Velzen

Ben van Velzen

01/06/2016 21:51:59
Quote Anchor link
Output buffering wordt in het algemeen afgeraden omdat het langzaam voelt en het "incorrect programmeren" in de hand werkt. Denk hierbij aan op de verkeerde punten headers versturen etc. Maar slim toegepast kan het sneller voelen. Buffer dus ook niet de gehele layout, maar doe dit in stappen. Zodra je alles voor de header van je site, en met name de css etc in de bron staat kun je flushen, dan kan de browser hier alvast mee aan de slag. Idem voor andere logische elementen.
 
Thomas van den Heuvel

Thomas van den Heuvel

01/06/2016 22:03:34
Quote Anchor link
Zelfs als je niet expliciet ob_start() etc. gebruikt heeft PHP intern verschillende buffers/lagen waartussen gecommuniceerd wordt. Hoe meer je opspaart/mag opsparen hoe minder vaak er geflusht wordt van de ene buffer naar de ander.
 
Ozzie PHP

Ozzie PHP

01/06/2016 23:50:39
Quote Anchor link
Ik snap even niet wat jullie precies bedoelen. Als je (bijv.) het mvc-model hebt dan render je pas op het allerlaatste moment je view (de complete pagina). Bedoelen jullie dat je tussentijds al iets naar het scherm kan sturen?
 
Ben van Velzen

Ben van Velzen

02/06/2016 00:15:58
Quote Anchor link
Het kan wel, maar zeker binnen MVC moet je daar even wat meer voor doen. Het is vaak de moeite niet, want de winst is in milliseconden, al kan de winst in de DOM al snel hoger oplopen, afhankelijk van hoe groot je pagina is.
 
Ozzie PHP

Ozzie PHP

02/06/2016 00:19:20
Quote Anchor link
Maar wat is dan het principe precies? We bouwen de header op en die flushen we? En daarna gaan we verder met de rest van de pagina?
 
Ward van der Put
Moderator

Ward van der Put

02/06/2016 08:29:50
Quote Anchor link
Dan sla je een paar stappen over, waaronder:

Afbeelding

Bad performance kills good sites. Je kunt beter éérst een cachingstrategie uitstippelen, voor server én client. Dan kom je er misschien ook achter, afhankelijk van de gekozen strategie, dat je een Content-Length header nodig hebt voor een persistent connection. En dat is best lastig: de lengte van content bepalen als je die content nog moet genereren. ;-)
 

Pagina: « vorige 1 2 3 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.