Immich kan op één client trager aanvoelen doordat rendering aan de clientzijde, het decoderen van afbeeldingen, de cachestatus en het netwerkpad extra werk toevoegen nadat de server heeft geantwoord.
Een gezin kan dezelfde bibliotheek bekijken vanuit een desktopbrowser, een oudere telefoon en een tablet, terwijl de Immich-server, opslag en database ongewijzigd blijven. Toch kan één apparaat tijdlijnen of voorbeelden later openen, omdat het end-to-endverzoek ook werk omvat dat buiten de server plaatsvindt. De nuttige vergelijking is daarom de reactietijd van de server tegenover de extra tijd die elke client nodig heeft om het resultaat te ontvangen, te decoderen, te cachen en te tekenen.
De client verandert het werk nadat Immich heeft geantwoord
Een Immich-verzoek eindigt niet wanneer de server JSON, een thumbnail-URL of een afbeeldingsrespons heeft voorbereid. De client moet die respons nog verwerken, de interface bijwerken, rendering inplannen en reageren op gebruikersinvoer. Een snelle server kan daarom samengaan met een traag aanvoelende client wanneer het apparaat of de browser extra tijd nodig heeft om de geretourneerde gegevens om te zetten in een zichtbaar, interactief scherm.
Dat onderscheid is vooral belangrijk in browsers, waar JavaScript, gebeurtenisafhandeling, stijlberekening, layout en een groot deel van het tekenen concurreren om werk op de hoofdthread. Als een oudere telefoon of een drukke browser die thread langer bezet houdt, kunnen tikken en scrollen vertragen, ook al voltooide de Immich-API ongeveer even snel als op een snellere desktop.
Daarom geeft alleen het vergelijken van server-CPU of databaselatentie geen volledig beeld van de ervaring. De bespreking van native clients en browserclients door ZimaSpace laat hetzelfde systeemprincipe zien: één backend kan verschillende uitvoerpaden aan de clientzijde bedienen. Bij Immich is de eerste diagnostische vraag of de vertraging optreedt voordat de respons aankomt of nadat de client met de verwerking ervan begint.
Het renderen van afbeeldingen kan snelle reacties traag laten aanvoelen
Bij het bekijken van foto's is het verschil tussen clients duidelijker, omdat een galerij niet alleen uit tekst en API-metadata bestaat. Een client kan veel thumbnails of een grotere voorbeeldweergave opvragen, sommige daarvan in het geheugen bewaren, gecomprimeerde afbeeldingsgegevens decoderen, ze schalen voor de viewport en meerdere afbeeldingen samenvoegen terwijl de gebruiker blijft scrollen. De hoeveelheid en timing van dat lokale werk kan sterk verschillen per apparaat, zelfs wanneer ze hetzelfde Immich-middel opvragen.
Gecomprimeerde formaten zoals JPEG en WebP moeten worden gedecodeerd voordat pixels kunnen worden weergegeven. Snellere CPU's, beter geoptimaliseerde decoders, meer beschikbaar geheugen en verschillende browserengines kunnen die fase verkorten. Op een zwakkere client kan het netwerk al klaar zijn terwijl decoderen en tekenen het deel vormen waarop de gebruiker daadwerkelijk wacht.
De praktische consequentie is dat een grotere of scherpere voorbeeldweergave niet gratis is alleen omdat de server die snel kan genereren. Afbeeldingen met een hogere resolutie vereisen meer geheugen voor gedecodeerde pixels en meer werk om te schalen en te tekenen. Als één client vooral traag wordt bij het openen van volledige voorbeelden of het snel scrollen door dichte tijdlijnen, terwijl eenvoudige metadataschermen responsief blijven, is het pad voor het renderen van afbeeldingen een waarschijnlijkere verklaring dan een capaciteitslimiet die de hele server betreft.
Een warme cachestatus verandert de snelheid bij herhaald bezoek
Een client die al door een album heeft gebladerd, kan thumbnails, scripts, metadata of gedecodeerde bronnen hergebruiken die een nieuwe client nog moet ophalen en verwerken. Daardoor verloopt een tweede ronde sneller, maar dat betekent niet dat de server plotseling meer capaciteit heeft. Het betekent dat een deel van het verzoekspad is weggevallen, omdat de client vanuit een warmere toestand begon dan tijdens de eerste ronde.
Uit echte browseronderzoeken blijkt dat cachehitpercentages verschillen per browser, versie, apparaat en tijdstip. De exacte percentages van Facebook zijn geen Immich-benchmark, maar het mechanisme is relevant: twee clients kunnen dezelfde server bereiken met een verschillende lokale cachegeschiedenis. Een desktopbrowser met een warme cache kan daardoor veel responsiever lijken dan een pas geïnstalleerde telefoonapp, zonder dat dit bewijst dat een van beide clients inherent sneller is.
Cache kan ook misleidende voor-en-na-tests veroorzaken. Als je hetzelfde album meerdere keren vernieuwt, kan download- en verwerkingswerk uit latere runs verdwijnen, waardoor de snelste run vaak hergebruik meet in plaats van een representatieve gezinssituatie. Als je clients wilt vergelijken, leg dan zowel een koud of pas geopend pad als een herhaalpad vast; het verschil daartussen levert op zichzelf nuttig bewijs over de mate waarin elke client afhankelijk is van lokaal hergebruik.
Wanneer clientverschillen de vertraging niet meer verklaren
Clientverschillen zijn niet langer de belangrijkste verklaring wanneer meerdere verder verschillende clients onder dezelfde belasting tegelijkertijd trager worden. Als een desktopbrowser, telefoon en tablet allemaal langer wachten op tijdlijngegevens of preview-responsen terwijl server-CPU, opslaglatentie, databaseactiviteit of netwerkgebruik stijgt, is de gedeelde infrastructuur een waarschijnlijkere beperking van de responsiviteit dan een implementatie van één specifieke client.
Bij end-to-endtiming moet je naar meer kijken dan naar het onderdeel dat het eenvoudigst te meten lijkt. Een latentieanalyse van Datadog laat zien dat roundtriplatentie netwerkoverdracht, proxies, verbindingspools en het decoderen door de applicatie kan omvatten, dus niet alleen de database zelf. Hetzelfde principe geldt voor Immich: een gezond databasecijfer kan vertraging elders tussen het begin van het verzoek en een gerenderd resultaat niet uitsluiten.
Een nuttige grenscontrole is symmetrie. Als slechts één client traag is terwijl een andere op hetzelfde LAN en met hetzelfde album snel blijft, verdienen clientuitvoering, caching of lokaal netwerkverkeer meer aandacht. Als elke client ongeveer tegelijkertijd dezelfde latentiegrens overschrijdt, vooral tijdens imports, het genereren van thumbnails, back-ups of andere hostactiviteiten, is de verklaring verschoven van clientvariatie naar een gedeelde beperking in server, opslag of netwerk.
Gebruik een gecontroleerde clienttest om de grens te vinden
Kies één representatief album en houd de serverversie, netwerklocatie, account, fotoset en status van achtergrondtaken constant. Test elke client afzonderlijk en leg drie waarneembare tijden vast: het laden van de eerste tijdlijn, het openen van dezelfde grote voorbeeldweergave en snel scrollen door een vast fotobereik. Noteer ook of de server tijdens elke run een piek in het gebruik laat zien, want een clientvergelijking is ongeldig als de backendbelasting tussen de metingen verandert.
Voer elke client eenmaal uit vanuit een bewust koude toestand en direct daarna opnieuw. Bij prestatietests worden resultaten voor het eerste en herhaalde bezoek vaak afzonderlijk bekeken, omdat gevulde caches werk uit latere verzoeken verwijderen. Bij Immich laat het verschil van koud naar warm zien hoeveel hergebruik de ervaring verandert, terwijl het verschil tussen clients onder dezelfde cacheconditie verschillen blootlegt die waarschijnlijker lokaal bij het apparaat of de applicatie liggen.
Beschouw een verschil alleen als clientgebonden wanneer het zich in ten minste drie runs herhaalt en de snellere client sneller blijft terwijl server- en netwerkomstandigheden vergelijkbaar blijven. Als alle clients tegelijk slechter presteren, stop dan met het afstellen van de client en onderzoek het gemeenschappelijke pad. Als alleen acties met veel afbeeldingen uiteenlopen, richt je dan op decoderen en renderen. Als het verschil alleen bij de eerste run optreedt, is cachestatus — niet duurzame servercapaciteit — de beter verdedigbare conclusie.
Tech & AI HUB
Meer om te lezen

Open modellen halen frontier-AI in—wordt 2026 het jaar waarin lokale AI goed genoeg wordt?
Open modellen worden goed genoeg voor meer lokale AI-taken, terwijl geavanceerde cloudmodellen nuttig blijven voor de moeilijkste redeneer- en agenttaken.

NVIDIA PAIR verandert je thuisnetwerk in een lokaal AI-cluster—heb je dan nog één grote GPU-server nodig?
NVIDIA PAIR verdeelt lokale AI-verzoeken over meerdere pc’s, waardoor rekenkracht flexibeler wordt en één homeserver gegevens en status persistent kan houden.

Waarom voelt Immich sneller aan via LAN dan via externe verbindingen?
LAN-verzoeken nemen meestal een kortere route met een lagere latentie. Externe toegang voegt capaciteitsbeperkingen van het WAN toe en kan extra DNS-, TLS-, proxy-,...

