Skip to content

RP2 DVP PIO driver consumes memory for some reason: #2

@sfe-SparkFro

Description

@sfe-SparkFro

Replication code:

import cv2 as cv
from cv2_hardware_init import *
import gc

camera.open()
last_mem_free = gc.mem_free()

while True:
    mem_free = gc.mem_free()
    memory_used = last_mem_free - mem_free
    last_mem_free = mem_free
    print("Memory free: %d KiB" % (mem_free // 1024), end='\t')
    print("Memory consumed: %d KiB" % (memory_used // 1024), end='\n')

    key = cv.waitKey(1)
    if key != -1:
        break

camera.release()

Running after a soft reset prints:

Memory free: 7650 KiB   Memory consumed: 0 KiB
Memory free: 7611 KiB   Memory consumed: 38 KiB
Memory free: 7543 KiB   Memory consumed: 67 KiB
Memory free: 7476 KiB   Memory consumed: 67 KiB
Memory free: 7409 KiB   Memory consumed: 67 KiB
Memory free: 7343 KiB   Memory consumed: 65 KiB
Memory free: 7276 KiB   Memory consumed: 67 KiB
Memory free: 7208 KiB   Memory consumed: 67 KiB

Commenting out camera.open():

Memory free: 7649 KiB   Memory consumed: 0 KiB
Memory free: 7649 KiB   Memory consumed: 0 KiB
Memory free: 7649 KiB   Memory consumed: 0 KiB
Memory free: 7649 KiB   Memory consumed: 0 KiB
Memory free: 7649 KiB   Memory consumed: 0 KiB
Memory free: 7648 KiB   Memory consumed: 0 KiB

There shouldn't be any memory consumption here, because the driver is written to simply fill the buffer array, not allocate new arrays. So what would be causing the memory consumption?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions