I am writing app that extract data from DB to array of structures.

        void getSingleTrackInfo()
        {
                
                foreach(item; getTablesGPSSensorList)
                {
                        ResultRange result = mysqlconnection.query(sqlquery);
                        auto MySQLPointsLonLat = result.array;
                        
                        carGPSPoint cargpspoint; // create struct
                        carGPSPoint [] cargpspoints; // create array of 
structures

                        foreach(i, point;MySQLPointsLonLat)
                        {
                                cargpspoint.id = point[0].coerce!ulong;
                                cargpspoint.recordDate = point[1].coerce!string;
                                cargpspoint.velocity = point[2].coerce!double;
                                cargpspoint.lat = point[3].coerce!string;
                                cargpspoint.lon = point[4].coerce!string;
                                cargpspoints ~=cargpspoint;
                                        
                        }

                }
        }


I expected that on every step:
`foreach(item; getTablesGPSSensorList)` structures `carGPSPoint` will be recreated and memory will be free. But App after starting begin eat memory, and do it till reach 1750 of RAM. After it it's not crush, but simply stop other processing.

1. By the code on every iterate `carGPSPoint` should be recreated and memory should be free, why this does not happen?
2. How to free my memory?

Reply via email to