Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift CGImage到NSData的速度太慢_Swift_Performance_Swift2_Nsdata_Nsbitmapimagerep - Fatal编程技术网

Swift CGImage到NSData的速度太慢

Swift CGImage到NSData的速度太慢,swift,performance,swift2,nsdata,nsbitmapimagerep,Swift,Performance,Swift2,Nsdata,Nsbitmapimagerep,我正在创建一个应用程序,其中许多屏幕截图被拍摄、转换为NSData并保存。使用我现有的代码,一切正常,没有错误,但运行正常 bitmap.representationUsingType(NSBitmapImageFileType.NSJPEGFileType, properties: [NSImageCompressionFactor:0.1]) 需要很长时间 代码如下: let ref=CGWindowListCreateImage(CGRect.infinite, CGWindowList

我正在创建一个应用程序,其中许多屏幕截图被拍摄、转换为NSData并保存。使用我现有的代码,一切正常,没有错误,但运行正常

bitmap.representationUsingType(NSBitmapImageFileType.NSJPEGFileType, properties: [NSImageCompressionFactor:0.1])
需要很长时间

代码如下:

let ref=CGWindowListCreateImage(CGRect.infinite, CGWindowListOption.OptionAll, 0, CGWindowImageOption.Default)
let bitmap=NSBitmapImageRep(CGImage: CGBitmapContextCreateImage(context)!)
let data=bitmap.representationUsingType(NSBitmapImageFileType.NSJPEGFileType, properties: [NSImageCompressionFactor:0.1])

有没有更有效或更快的方法来实现这一点?

您的问题是什么?你做了什么?您尝试过什么?我尝试过制作NSImage,但将该NSImage转换为NSData的速度总是很慢。您是否在主线程上执行所有这些操作?是的,我已经测试了脚本在没有representationusingtype行的情况下运行的速度,速度明显更快。我会让它在后台队列上运行。我不知道为什么你需要截图,为什么他们需要尽快完成。释放主队列不会提高速度。但它将允许用户继续使用应用程序,而繁重的事情发生在一个单独的线程上。p、 使用
@USERNAME
在评论中称呼其他用户,然后他们会收到通知。