هل هناك عرض النطاق الترددي تحسن من تثبيت نظام تشغيل 32 بت على 64 بت الجهاز ؟

StackOverflow https://stackoverflow.com/questions/254368

سؤال

كانوث اعترضت مؤخرا على أنظمة 64 بت ، قائلا ان البرامج التي تتناسب مع 4 غيغابايت من الذاكرة ، "فعالية رمي نصف ذاكرة التخزين المؤقت" لأن مؤشرات ضعف حجم على نظام 32 بت.

سؤالي هو:يمكن أن هذه المشكلة يمكن تجنبها عن طريق تثبيت نظام تشغيل 32 بت على 64 بت الجهاز ؟ و هل هناك أي عرض النطاق الترددي المكثف المعايير التي تدل على ميزة في هذه الحالة ؟

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

المحلول

والجواب هو: نعم يمكن إلى حد ما، على الرغم من أن الفارق في الأداء من غير المرجح أن تكون كبيرة

.

وأي مؤشر لاختبار هذا سوف تضطر إلى القيام بالكثير من قرار المؤشر، والتي سوف يكون من الصعب فصل من الضوضاء. تصميم معايير التي لن تحسين بعيدا من الصعب. هذه المقالة حول معايير جافا معيبة تم نشره من قبل شخص في استجابة على سؤال آخر، ولكن العديد من المبادئ وصفها في سينطبق هذا على هذا.

نصائح أخرى

وعرض النطاق الترددي ليست في الحقيقة المصطلح الصحيح هنا. ما كانوث كان يتحدث في الحقيقة عن وكثافة البيانات، من حيث صلته تخزين البصمة. تخيل أن لديك ذاكرة التخزين المؤقت البيانات 16KB L1: إذا كنت تخزين بحتة المؤشرات، يمكنك تخزين 2 ^ 14/2 ^ 2 = 2 ^ 12 = 4096 مؤشرات 32 بت، ولكن فقط 2048 مؤشرات 64-بت. إذا كان أداء التطبيق الخاص بك يعتمد على القدرة على تتبع أكثر من 2K مخازن مختلفة، قد ترى فائدة أداء حقيقية من مساحة عنوان 32 بت. ومع ذلك، فإن معظم كود الحقيقي ليس بهذه الطريقة، ومزايا الأداء الحقيقي من نظام التخزين المؤقت وغالبا ما تأتي من القدرة على تخزين عدد صحيح المشترك وهياكل البيانات الفاصلة العائمة، وليس كميات كبيرة من المؤشرات. إذا مجموعة العمل الخاصة بك ليست مؤشر الثقيلة، والجانب السلبي من 64 بت يصبح يكاد يذكر، ورأسا على عقب ويصبح أكثر وضوحا إذا كنت أداء الكثير من الحساب صحيح 64-بت.

وأنا لا أعتقد أن اعترض كانوث لأنظمة 64 بت. قال فقط أن استخدام مؤشرات 64 بت على نظام يحتوي أقل من 4GB ذاكرة الوصول العشوائي غير الغبية (على الأقل إذا كان لديك الكثير من المؤشرات مثل تلك الموجودة في قائمة مرتبطة المزدوج). لا أستطيع أن أقول أنني أتفق معه، وهنا 3 طرق مختلفة يمكن اتخاذها. دعونا نفترض لديك وحدة المعالجة المركزية قادرة 64 بت التي يمكن أيضا تشغيل في وضع 32 بت مثل بعض إنتل كور ديو.

1 - كل شيء 32 بت، ونظام التشغيل، وAPPZ، كل منهم. ولذلك عليك أن مؤشرات 32 بت ولكن لا يمكنك استخدام سجلات إضافية / تعليمات المتوفرة على وضع 64 بت.

2 - كل شيء 64 بت، ونظام التشغيل، وAPPZ، كل منهم. ولذلك عليك أن مؤشرات 64 بت و يمكنك استخدام سجلات إضافية / تعليمات المتوفرة على وضع 64 بت. ولكن لديك أقل من 4GB ذاكرة الوصول العشوائي، وذلك باستخدام مؤشرات 64 بت تبدو حمقاء. ولكن، أليس كذلك؟

و3 - نظام التشغيل هو 64 بت و OS المثير للاهتمام بالتأكد من أن كل المؤشرات / رمز البيانات في 0x00000000 - 0xFFFFFFFF النطاق (الذاكرة الظاهرية !!!). وABI يعمل بطريقة غريبة جدا أن كافة التعليمات البرمجية / أبقت مؤشرات البيانات في الذاكرة / ملفات واسعة 32 بت ولكن يتم تحميلها إلى سجلات 64 بت ومدده صفر. إذا كان هناك موقع كود للقفز، مترجم / ABI يفعل ما يلزم من الإصلاح المنبثقة ويفعل الفعلي القفزة 64 بت. بهذه الطريقة، مؤشرات هي 32 بت ولكن APPZ يمكن أن يكون 64 بت وهذا يعني أنها يمكن الاستفادة من السجلات 64 بت والتعليمات. هذه العملية شيء من هذا القبيل thunking، وأعتقد ؛-P

واستنتاجي هو ::

والخيار 3RD يبدو قابلة للتنفيذ بالنسبة لي ولكنها ليست مشكلة سهلة. من الناحية النظرية يمكن أن تعمل لكنني لا أعتقد أنه من الممكن. وأعتقد أيضا أن مقولته "عندما تظهر هذه القيم المؤشر داخل البنية، فإنها لا نضيع نصف الذاكرة، ورمي بفعالية بعيدا نصف ذاكرة التخزين المؤقت." مبالغ فيه ...

رأيت في مكان ما أن أفضل مزيج (على x86 وحدة المعالجة المركزية) هو استخدام نظام تشغيل 64 بت و 32 بت التطبيقات.

مع نظام تشغيل 64 بت يمكنك الحصول على:

  • القدرة على التعامل مع أكثر من 4 غيغابايت من مساحة العنوان
  • أكبر يسجل للمساعدة في بيانات-عمليات النسخ

مع 32 بت التطبيق يمكنك الحصول على:

  • أصغر المؤشرات
  • أقل وأصغر يسجل لانقاذ على مفاتيح السياق

سلبيات:

  • جميع المكتبات يجب أن تتكرر.صغيرة من الفضاء HD المعايير.
  • جميع المكتبات تحميل تتكرر على ذاكرة الوصول العشوائي.ليست صغيرة جدا...

من المستغرب أن هناك لا يبدو أن يكون أي النفقات العامة عند التحول وسائط.أعتقد أن كسر من userspace إلى نواة التكاليف نفسه ، بغض النظر عن البت userspace.

بالطبع هناك بعض التطبيقات التي تستفيد من مساحة العنوان.ولكن كل شيء آخر يمكنك الحصول على 5 ٪ إضافية الأداء من خلال البقاء في 32-بت.

و أنا لا أهتم بهذه صغيرة تسريع.ولكن لا "الإساءة" لي تشغيل 32-بت فايرفوكس على 64 بت كوبونتو آلة (كما رأيت في بعض المنتديات)

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