2010-08-06 4 views
0

MacOS에서 고성능 인터 프로세스 통신 시스템을 찾고 있습니다. Xappleevent 대 알림

어떤 시스템이 가장 좋습니까? AppleEvents 또는 NSNotifications?

답변

1

고성능 (NSDistributedNotificationCenter를 통해 전송 된 알림)은 고성능 및/또는 안정성이 목표 인 경우 좋은 옵션이 아닐 수 있습니다. 여기에 애플이이 주제를 다루고있다.

분산 된 알림 게시는 값 비싼 작업이다. 알림은 배포 된 알림 용으로 등록 된 개체가있는 모든 작업에 배포되는 시스템 차원의 서버로 보내집니다. 알림 게시와 알림 도착 간의 대기 시간은 제한되지 않습니다. 사실 너무 많은 알림이 게시되고 서버의 대기열이 가득 차면 알림이 삭제 될 수 있습니다. http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSDistributedNotificationCenter_Class/Reference/Reference.html

는 "고성능"무슨 뜻에 따라 분산 객체, 또는 일반 오래된 유닉스 IPC 메커니즘 (소켓, 파이프, 공유 메모리 등)을 조사 할 수 있습니다.

1

송신자와 수신자를 모두 제어하면 두 프로세스 (man socketpair) 사이에 소켓을 열 수 있습니다. 이는 매우 높은 성능입니다. 또한 공유 위치 (예 :/tmp)에서 파일을 열고 한 프로세스에서 파일을 읽고 다른 프로세스에서 읽을 수 있습니다. 이는 매우 빠릅니다. 또한 로컬 컴퓨터에서 각 프로세스에 하나씩 두 개의 TCP/IP 포트를 열고 하나에서 다른 포트로 "네트워크를 통해"보낼 수 있습니다.

NSNotifications 또는 AppleEvent 두 가지만 선택하면 AppleEvents가 더 잘 수행 될 것입니다.