内存泄漏pyobjc
Memory leak pyobjc
我写了以下代码:
import array
import Cocoa
import Quartz
import Quartz.CoreGraphics as qcg
while True:
imageRect = qcg.CGRectMake(0, 0, 1280, 800)
imageRef = qcg.CGWindowListCreateImage(imageRect,
qcg.kCGWindowListOptionOnScreenOnly,
qcg.kCGNullWindowID,
qcg.kCGWindowImageDefault)
bitmap = Cocoa.NSBitmapImageRep.alloc()
bitmap.initWithCGImage_(imageRef)
a = array.array('L', [255]*4)
color = bitmap.getPixel_atX_y_(a, 50, 22)
time.sleep(1)
我遇到了严重的内存泄漏。每次迭代都会增加大约 30 MB。它发生在 python 执行此行时:
color = bitmap.getPixel_atX_y_(a, 50, 22)
在 Objective-C 文档中没有关于此类行为的警告。如何防止这种泄漏?
编辑:
.
.
a = array.array('L', [255]*4)
pool = Cocoa.NSAutoreleasePool.alloc().init()
color = bitmap.getPixel_atX_y_(a, 50, 22)
del pool
.
.
这会阻止泄漏。
我在我的应用程序中也面临同样的内存使用问题,因为它达到 600 mb 然后我的应用程序崩溃,然后我通过使用自动释放池手动释放内存。
@autoreleasepool {
//Write Your Code Here
}
创建一个自动释放池,然后检查您的内存使用情况。希望对您有所帮助
我写了以下代码:
import array
import Cocoa
import Quartz
import Quartz.CoreGraphics as qcg
while True:
imageRect = qcg.CGRectMake(0, 0, 1280, 800)
imageRef = qcg.CGWindowListCreateImage(imageRect,
qcg.kCGWindowListOptionOnScreenOnly,
qcg.kCGNullWindowID,
qcg.kCGWindowImageDefault)
bitmap = Cocoa.NSBitmapImageRep.alloc()
bitmap.initWithCGImage_(imageRef)
a = array.array('L', [255]*4)
color = bitmap.getPixel_atX_y_(a, 50, 22)
time.sleep(1)
我遇到了严重的内存泄漏。每次迭代都会增加大约 30 MB。它发生在 python 执行此行时:
color = bitmap.getPixel_atX_y_(a, 50, 22)
在 Objective-C 文档中没有关于此类行为的警告。如何防止这种泄漏?
编辑:
.
.
a = array.array('L', [255]*4)
pool = Cocoa.NSAutoreleasePool.alloc().init()
color = bitmap.getPixel_atX_y_(a, 50, 22)
del pool
.
.
这会阻止泄漏。
我在我的应用程序中也面临同样的内存使用问题,因为它达到 600 mb 然后我的应用程序崩溃,然后我通过使用自动释放池手动释放内存。
@autoreleasepool {
//Write Your Code Here
}
创建一个自动释放池,然后检查您的内存使用情况。希望对您有所帮助