فهم وقت التشغيل الديناميكي الهدف
-
14-09-2019 - |
سؤال
أحصل على قدمي مبللة في الهدف - ج والكاكاو (أعرف، ربما متأخرا، لكن مهلا يجب أن أبدأ في مكان ما) ولاحظت أن جميع الكائنات مخصصة من كومة الكومة.
هل هناك أي سبب لماذا هذا هو المعيار في الهدف - ج؟ حاولت البحث في كل مكان (ونعم، حتى على Stackoverflow)، لكن لم أتمكن من العثور على أي سبب صريح، باستثناء "هذا هو ما هو عليه". أنا حريص بشكل خاص لأن الهدف - C يعتبر مجموعة فائقة صارمة من C مع ميزات OO.
إذا فاتني مقال على interblag. أو وظيفة على Stackoverflow عن طريق الخطأ في هذا الموضوع، يرجى بدء إيقاف التشغيل رشيقة. :)
المحلول
أعتقد أن هذا يدين لتراث Smalltalk.
أيضا، يمكنك القول أن الكائنات المخصصة المكدس هي خصوصية من C ++. عدد قليل جدا من اللغات القيام بذلك، ثم في الغالب كتحسين منخفض المستوى للمترجم. في C ++، من المعقول، لأن أحد الأهداف المعلنة كان ليكون بالضبط كأداء كما عادي ج.
لماذا تشعر أن هذا يتعارض مع حقيقة أن الهدف - C هو مجموعة فائقة من ج؟ بعد كل شيء، لا يمكن أن تخصيص عادي C كائنات على المكدس ... ولا في أي مكان. struct
S، OTOH، يسمح به على المكدس، سواء على ج والهدف
نصائح أخرى
أنا لا أجيب بالضبط على سؤالك، ولكن نظرا لأنك تفهم وقت تشغيل OBJ-C، فهذا يحدث. يمكنك تخصيص كائنات باستخدام NSZONES بشكل أكثر كفاءة. لن تحصل عليها على المكدس، ولكن على الأقل يمكنك تجنب بعض مشاكل التجزئة والأداء:رابط النص