@@ -0,0 +1,9 @@
+// +build !linux
+
+package main
+import "runtime/debug"
+func freeMemory() {
+ debug.FreeOSMemory()
+}
@@ -0,0 +1,20 @@
+// +build linux
+/*
+#include <features.h>
+#ifdef __GLIBC__
+#include <malloc.h>
+#else
+void malloc_trim(size_t pad){}
+#endif
+*/
+import "C"
+ C.malloc_trim(0)
@@ -5,7 +5,6 @@ import (
"os"
"os/signal"
"runtime"
- "runtime/debug"
"syscall"
"time"
)
@@ -38,7 +37,7 @@ func main() {
var logMemStats = len(os.Getenv("IMGPROXY_LOG_MEM_STATS")) > 0
for range time.Tick(time.Duration(conf.FreeMemoryInterval) * time.Second) {
- debug.FreeOSMemory()
+ freeMemory()
if logMemStats {
var m runtime.MemStats