1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

Added periodic calls to malloc_trim(0) to reduce memory consumption

This commit is contained in:
Klaus Schmidinger 2022-11-28 10:44:01 +01:00
parent abb82a2396
commit 6888ea68b6
3 changed files with 13 additions and 2 deletions

View File

@ -3625,6 +3625,7 @@ Onur Sent
for fixing handling the S2SatelliteDeliverySystemDescriptor for transponders broadcasting for fixing handling the S2SatelliteDeliverySystemDescriptor for transponders broadcasting
in "backwards compatibility mode" according to ETSI EN 300 468 in "backwards compatibility mode" according to ETSI EN 300 468
for pointing out some potentially mistakable code in cSectionHandler::SetStatus() for pointing out some potentially mistakable code in cSectionHandler::SetStatus()
for adding periodic calls to malloc_trim(0) to reduce memory consumption
Helmut Binder <cco@aon.at> Helmut Binder <cco@aon.at>
for improving calculating signal strength and quality for improving calculating signal strength and quality

View File

@ -9780,7 +9780,7 @@ Video Disk Recorder Revision History
out by Onur Sentürk). out by Onur Sentürk).
- Official release. - Official release.
2022-11-23: 2022-11-28:
- Added UPDATE-2.6.0, which was missing in the official 2.6.0 release. - Added UPDATE-2.6.0, which was missing in the official 2.6.0 release.
- Fixed unexpected calls of the '-r' script when a recording is interrupted and - Fixed unexpected calls of the '-r' script when a recording is interrupted and
@ -9809,3 +9809,5 @@ Video Disk Recorder Revision History
- Added support for kernel based LIRC driver (thanks to Marko Mäkelä). Use the - Added support for kernel based LIRC driver (thanks to Marko Mäkelä). Use the
command line option '--lirc=/dev/lirc0' to use this. Requires kernel version 5.10 command line option '--lirc=/dev/lirc0' to use this. Requires kernel version 5.10
or above. or above.
- Added periodic calls to malloc_trim(0) to reduce memory consumption (thanks to
Onur Sentürk).

10
vdr.c
View File

@ -22,13 +22,14 @@
* *
* The project's page is at http://www.tvdr.de * The project's page is at http://www.tvdr.de
* *
* $Id: vdr.c 5.9 2022/11/26 13:37:06 kls Exp $ * $Id: vdr.c 5.10 2022/11/28 10:44:01 kls Exp $
*/ */
#include <getopt.h> #include <getopt.h>
#include <grp.h> #include <grp.h>
#include <langinfo.h> #include <langinfo.h>
#include <locale.h> #include <locale.h>
#include <malloc.h>
#include <pwd.h> #include <pwd.h>
#include <signal.h> #include <signal.h>
#include <stdlib.h> #include <stdlib.h>
@ -74,6 +75,7 @@
#define MINCHANNELWAIT 10 // seconds to wait between failed channel switchings #define MINCHANNELWAIT 10 // seconds to wait between failed channel switchings
#define ACTIVITYTIMEOUT 60 // seconds before starting housekeeping #define ACTIVITYTIMEOUT 60 // seconds before starting housekeeping
#define MEMCLEANUPDELTA 3600 // seconds between memory cleanups
#define SHUTDOWNWAIT 300 // seconds to wait in user prompt before automatic shutdown #define SHUTDOWNWAIT 300 // seconds to wait in user prompt before automatic shutdown
#define SHUTDOWNRETRY 360 // seconds before trying again to shut down #define SHUTDOWNRETRY 360 // seconds before trying again to shut down
#define SHUTDOWNFORCEPROMPT 5 // seconds to wait in user prompt to allow forcing shutdown #define SHUTDOWNFORCEPROMPT 5 // seconds to wait in user prompt to allow forcing shutdown
@ -1578,6 +1580,12 @@ int main(int argc, char *argv[])
cSchedules::Cleanup(); cSchedules::Cleanup();
// Plugins housekeeping: // Plugins housekeeping:
PluginManager.Housekeeping(); PluginManager.Housekeeping();
// Memory cleanup:
static time_t LastMemoryCleanup = 0;
if ((Now - LastMemoryCleanup) > MEMCLEANUPDELTA) {
malloc_trim(0);
LastMemoryCleanup = Now;
}
} }
} }