内存泄漏pyobj

2024-05-29 07:39:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一段代码:

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)

我的内存泄漏得很厉害。每次迭代都会增加大约30MB。当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
.
.

这样可以阻止泄漏。你知道吗


Tags: 代码importarraycolorcoregraphicspoolquartzcocoa
1条回答
网友
1楼 · 发布于 2024-05-29 07:39:49

我的应用程序也面临同样的内存使用问题,当它达到600MB时,我的应用程序崩溃,然后我使用自动释放池手动释放内存。你知道吗

 @autoreleasepool {       

//Write Your Code Here


     }    

创建一个自动释放池,然后检查你的内存使用情况。希望这对你有帮助

相关问题 更多 >

    热门问题