سؤال

أنا أبحث عن نظام اتصالات عالي الأداء في MacOS X.

ما هو أفضل نظام؟ AppleEvents أو NSNotifications?

هل كانت مفيدة؟

المحلول

الإخطارات الموزعة (أي الإخطارات المرسلة من خلال NSDistributedNotificationCenter) ليست خيارًا جيدًا على الأرجح إذا كان هدفك هو الأداء العالي و/أو الموثوقية. إليكم هذا الموضوع الخاص بـ Apple:

يعد نشر إشعار موزع عملية باهظة الثمن. يتم إرسال الإشعار إلى خادم على مستوى النظام يوزعه على جميع المهام التي تحتوي على كائنات مسجلة للإشعارات الموزعة. الكمون بين نشر الإخطار ووصول الإخطار في مهمة أخرى غير محدود. في الواقع ، عند نشر الكثير من الإخطارات ويملأ قائمة انتظار الخادم ، قد يتم إسقاط الإخطارات. http://developer.apple.com/mac/library/documentation/cocoa/reference/foundation/classes/nsdistributedNotificalCenter_Class/Reference/Reference.html

اعتمادًا على ما تعنيه بـ "الأداء العالي" ، قد ترغب في النظر في الكائنات الموزعة ، أو آليات UNIX IPC القديمة البسيطة (مآخذ ، أنابيب ، ذاكرة مشتركة ، إلخ).

نصائح أخرى

إذا قمت بالتحكم في كل من المرسل والمستلم ، فيمكنك فتح مقبس بين العمليتين (SocketPair Man) ، وهو أداء مرتفع للغاية. يمكنك أيضًا فتح ملف في موقع مشترك (مثل /TMP) والكتابة إليه من عملية واحدة وقراءة من الآخر ، وهو سريع للغاية. يمكنك أيضًا فتح منفذي TCP/IP على الجهاز المحلي ، أحدهما في كل عملية ، ثم إرسال من أحدهما إلى "عبر الشبكة".

إذا كان اختيارك فقط هما NSNotifications أو AppleEvents ، فمن المحتمل أن يكون أداء AppleEvents أفضل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top