Memory usage

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Junior Back end developer PHP, Symfony

Functie Wij hebben onlangs onze eerste collega’s aangenomen, waardoor ons development team momenteel uit 4 personen bestaat. We bouwen onze software op basis van een PHP-framework (wat op zichzelf een Symfony framework is). Qua ontwikkeling focussen wij ons op 3 focus velden; – API-ontwikkeling/ Component Creatie – Implementatie – Framework ontwikkeling; het toevoegen van nieuwe functionaliteit of interne microservices Onze senior software engineer focust zich momenteel op de laatste twee punten, maar wij komen handen te kort op het eerste veld. Daarom zijn wij op zoek naar een enthousiaste junior software engineer die graag de kneepjes van het vak wil

Bekijk vacature »

Medior Front-end Developer

Bij Getnoticed doen wij wat we leuk vinden, websites bouwen en online marketing. Voor veel van onze klanten doen we dan ook allebei. Wel zo fijn om campagnes te draaien voor conversiegerichte websites die in eigen beheer zijn. In onze vestiging in Nederweert zit onze development afdeling en worden de websites gebouwd. Op dit moment zijn we op zoek naar jou: dé Medior Front-end Developer die net als wij, het hoofd boven het maaiveld durft uit te steken! In het kort Even een paar punten die omschrijven wat deze toffe baan inhoudt: Het uitwerken van designs tot functionele layouts Je

Bekijk vacature »

Lead Fullstack developer

Functie omschrijving Ben jij een leergierige en ambitieuze junior developer met technische skills? Ben jij op zoek naar een werkgever die jouw de volledige vrijheid geeft om jezelf tot een volwaardige senior te ontwikkelen? Wij zijn op zoek naar een full stack developer die zich bezig wil bezig houden met het uitbreiden en verbeteren van de online webshop. Een onderdeel van jouw werkzaamheden is naast het beheren van de webshop ook om de processen en structuren te stroomlijnen. Werkzaamheden Onderhouden van de webshop (denk aan het bijhouden van de voorraad); Nieuwe functies toevoegen aan de product configurator door middel van

Bekijk vacature »

C++ Ontwikkelaar

Functieomschrijving Ben jij als software ontwikkelaar toe aan een nieuwe uitdaging? Dan zoeken wij jou! Voor het maken van de procesbesturingssoftware gebruiken onze projectteams een in C++ en C# geschreven tool. Dit is een gedistribueerd object framework wat alle kernfuncties biedt voor een procesautomatisering. Verder zullen jouw werkzaamheden o.a. bestaan uit: Ontwerpen, programmeren en testen van product aanpassingen; Analyseren van vragen en wensen van gebruikers en deze vertalen naar een functioneel ontwerp; Inzichtelijk maken van voortgang omtrent softwarewerkzaamheden, o.a. door middel van SCRUM; Continu toetsen van het effect van nieuwe releases op andere tools en processen; Implementeren van nieuwe product

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 »

Senior .NET Developer I goed salaris en deels thui

Bedrijfsomschrijving Mijn opdrachtgever is al ruim 20 jaar een gevestigde naam in de wereld van software ontwikkeling, met drie kantoren in de Randstad, waaronder Alphen aan den Rijn. Zij richten zich op het bouwen van IT-oplossingen die ervoor zorgen dat de productiviteit van klanten te allen tijden optimaal is. Hiervoor neemt jouw nieuwe werkgever het volledige ontwikkelproces tot haar rekening; van het eerste gesprek om de klantwensen in kaart te brengen, tot aan het uiteindelijke onderhoud van de opgeleverde oplossing. In totaal werken er inmiddels bijna 200 gemotiveerde IT-ers binnen deze organisatie. De gemiddelde leeftijd ligt rond de 35. Het

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET ontwikkelaar start jij in ons development team met twee andere .NET developers. Als team werken jullie in scrum en is er iedere ochtend om 11.00 een standup. Jij krijgt als junior .NET ontwikkelaar een inwerk traject dat echt specifiek wordt ingericht op basis van wat jij nodig hebt. Een van de grootste pluspunten bij ons is dat wij binnen ons bedrijf veel (technische) vrijheid geven en juist eigen initiatieven erg stimuleren. Jouw werkzaamheden gaan er bij ons als volgt uit zien: – Het ontwikkelen van nieuwe software samen met interne en eventueel externe ontwikkelaars; – Het

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 »

Front end developer Zorgplatform

Functie Jij als Front end ontwikkelen zult komen te werken samen met 1 PHP ontwikkelaar, 1 Python developer en een flexibele schil aan ontwikkelaars . Samen ga je ervoor zorgen dat de huidige producten doorontwikkeld worden. De Marketplace is geschreven in PHP Laravel en in de front end React. De roostersoftware is ontwikkeld in Python in combinatie met React in de front end. Jij zult als Front ender dus voornamelijk bezig zijn met het verbeteren van onze interfaces op onze verschillende producten. Momenteel ligt de uitdaging in het feit dat de roostersoftware breder schaalbaar moet worden zodat het voor meerdere

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 »

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 »

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 »

Software Ontwikkelaar C# .NET

Functie omschrijving C# .NET Developer gezocht. Ben jij een full stack developer die op zoek is naar een nieuwe uitdaging binnen een leuk snel groeiend bedrijf? Lees dan snel verder! Wij zijn op zoek naar een Developer met ervaring op het gebied van .NET die een organisatie in de regio Amersfoort gaat versterken. Jij gaat je binnen dit bedrijf vooral bezighouden met het verbeteren van de functionaliteiten van hun dataplatform. Samen met andere ontwikkelaars denk je mee in oplossingsrichtingen, architectuur en nieuwe technologieën. Bedrijfsprofiel De organisatie waar je voor gaat werken heeft een onafhankelijk dataplatform ontwikkelt voor de agrarische sector.

Bekijk vacature »

Junior Developer Low-code

Dit ga je doen Low-code ontwikkeling van software voor landelijk bekende organisaties; Samenwerken in een team van 10 collega's; Opleveren van mooie eindproducten, middels de Agile methodiek; Direct contact met de eindklant over de gewenste oplossingen. Hier ga je werken Als startende IT-professional kom je te werken in de regio van Lelystad bij een organisatie die met toonaangevende klanten uit heel Nederland samen werkt. De producten en diensten van de organisatie bereiken miljoenen Nederlanders. Hierbij komt een grote hoeveelheid informatie kijken en deze moet discreet en veilig verwerkt worden. De processen die hierbij horen worden door het IT team vormgegeven.

Bekijk vacature »

PHP Developer

Functie omschrijving Als PHP / Laravel developer zal je in een klein team terecht komen. Wij zijn op zoek naar een echte specialist, iemand die de balans weet te vinden tussen techniek en perfectie. In de aankomende jaren wilt dit bedrijf flink groeien en daarom zijn ze op zoek naar jou! Wat ga je doen? Je draagt bij aan het ontwikkelen en onderhouden van bestaande webapplicaties die boordevol functionaliteit zitten. Deze applicaties worden gebruikt door de organisatie zelf en ook door de klanten. Inmiddels wordt er gewerkt met Laravel 8 en zijn er diverse koppelingen naar externe leveranciers. Verder zal

Bekijk vacature »
Koen Vlaswinkel

Koen Vlaswinkel

07/12/2013 13:48:55
Quote Anchor link
Hallo,

Ik ben bezig om een groot bestand te parsen i.c.m. met Symfony2 en Doctrine. Nadat er ongeveer 310 regels krijg ik een foutmelding te zien dat ik over de 128 MB kom. Zoals je kan zien heb ik om te proberen dit op te lossen een paar regels onderaan toegevoegd met unset. Dit vermindert het geheugengebruik echter niet, het wordt juist meer (getest met memory_get_usage). Wat kan ik doen om mijn geheugen te minimaliseren? Bij regel 300 ben ik namelijk nog niet eens op de 20%.

Als jullie meer code nodig hebben, zeggen jullie het maar. Ik ga niet meteen alles posten, dat is nogal veel.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php
     /**
     * @param string $line
     */

    private function parseStudentLine($line) {
        $parts = explode(chr(9), $line);
        $student = $this->studentEntityRepository->findOneBy(array('code' => $parts[0]));
        if (is_null($student)) {
            $student = new Student($parts[0], $parts[1], $parts[2], $parts[3], $this->school);
            $this->entityManager->persist($student);
            $this->logger->debug(sprintf('Student %d (%s %s %s) added to database', $student->getCode(), $student->getFirstName(), $student->getInsertions(), $student->getLastName()));
        }


        $timetable = new Timetable($student, $this->startDate);
        unset($parts[0], $parts[1], $parts[2], $parts[3]);
        $lesson = null;
        foreach ($parts as $part) {
            if (strlen(trim($part)) == 0 || trim($part) == '0') continue;
            $lesson = $this->parseLesson($part);
            $foundLesson = $this->lessonEntityRepository->findOneBy(array('code' => $lesson->getCode()));
            if ($foundLesson === null) {
                $this->entityManager->persist($lesson);
            }
else {
                $lesson = $foundLesson;
            }

            $timetable->addLesson($lesson);
        }

        $this->entityManager->persist($timetable);
        $this->entityManager->flush();

        $this->logger->info(sprintf('Added timetable for student %d (%s %s %s)', $student->getCode(), $student->getFirstName(), $student->getInsertions(), $student->getLastName()));

        $this->entityManager->detach($timetable);
        $this->entityManager->detach($student);

        /** @var $lesson Lesson */
        foreach ($timetable->getLessons() as $lesson) {
            /** @var $teacher Teacher */
            foreach ($lesson->getTeachers() as $teacher) {
                $teacher = null;
                unset($teacher);
            }

            $lesson = null;
            unset($lesson);
        }

        $timetable = null;
        unset($timetable);
        $student = null;
        unset($student);
        $parts = null;
        unset($parts);
    }

?>
Gewijzigd op 07/12/2013 14:06:17 door Koen Vlaswinkel
 
PHP hulp

PHP hulp

14/05/2024 16:24:25
 
Ivo P

Ivo P

07/12/2013 14:11:26
Quote Anchor link
Aangezien je explode op tab doet:
Zouden de php functies als http://php.net/fgetcsv niet efficienter zijn?
 
Koen Vlaswinkel

Koen Vlaswinkel

07/12/2013 14:19:44
Quote Anchor link
Ivo P op 07/12/2013 14:11:26:
Aangezien je explode op tab doet:
Zouden de php functies als http://php.net/fgetcsv niet efficienter zijn?


Nee, niet het hele bestand heeft hetzelfde formaat, dus ik moet eerst beslissen aan welke methode ik de regel geef. fgetcsv heeft een file resource nodig, en die heb ik dus niet omdat niet alle regels hetzelfde formaat hebben.
 
Wouter J

Wouter J

07/12/2013 14:32:38
Quote Anchor link
Regel 36 - 52 zijn hier toch allemaal volkomen nutteloos? Door al die loops verspil je meer geheugen dan dat je vrij maakt door het unsetten. En waarom eerst een waarde (null) meegeven en daarna unsetten?

Hoe ziet je bestand er trouwens uit? Ik denk dat het parsen een stuk simpeler kan...

En als je deze method voor elke regel uitvoert zou ik eens de flush eruit halen en die pas aan het eind van het parsen aanroepen.
 
Koen Vlaswinkel

Koen Vlaswinkel

07/12/2013 14:41:24
Quote Anchor link
Het bestand is hier te vinden. Je hebt gelijk dat het een beetje onnuttig is, maar ik wist geen andere manier om geheugen vrij te maken. De flush staat er zodat ik kan detachen. Ik denk eigenlijk dat dat ook gewoon gebeurt met clear(). Dit voer ik dan ook uit in de methode die deze aanroept.

Na nog wat dingen te proberen, heeft het volgende alles opgelost:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$em
->getConnection()->getConfiguration()->setSQLLogger(null);
?>


Dit geeft blijkbaar zoveel overhead dat er veel geheugen wordt verspilt.
 



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.