我正在寻找一个高性能的macos进程间通信系统。
最好的系统是什么?AppleEvents还是NSNotifications
发布于 2010-08-07 08:51:48
如果您的目标是高性能和/或可靠性,则分布式通知(即通过NSDistributedNotificationCenter发送的通知)很可能不是一个好的选择。以下是苹果自己对这个问题的看法:
发布分布式通知是一项开销很大的操作。通知被发送到系统范围的服务器,该服务器将通知分发给具有为分布式通知注册的对象的所有任务。发送通知和通知到达另一个任务之间的延迟是无限的。事实上,当发布的通知太多,并且服务器的队列被填满时,通知可能会被丢弃。http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSDistributedNotificationCenter_Class/Reference/Reference.html
根据您所说的“高性能”的含义,您可能希望研究分布式对象,或普通的老式Unix IPC机制(套接字、管道、共享内存等)。
发布于 2011-07-15 01:58:05
如果您同时控制发送方和接收方,则可以在两个进程( man套接字对)之间打开一个套接字,这是相当高的性能。您还可以打开共享位置(如/tmp )中的文件,并从一个进程写入该文件,然后从另一个进程读取该文件,这是相当快的。您还可以在本地计算机上打开两个TCP/IP端口,每个进程一个端口,然后“通过网络”从一个端口发送到另一个。
如果您只有两个选择是NSNotifications或AppleEvents,那么AppleEvents可能会表现得更好。
https://stackoverflow.com/questions/3427560
复制相似问题