طريقة سريعة لإضافة 2 صفائف تعويم كبيرة في Android. اختياري JNI أو OpenGL ES

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

سؤال

أنا ببساطة بحاجة إلى إضافة floatarray1 إلى floatarray2 لتخزين النتيجة في floatarray2 .. لا توجد صفيف ثالث .. جميع المصفوفات هي أبعاد واحدة ولكنها كبيرة جدًا ... من المحتمل أن تسمح لي بنظام التشغيل بالابتعاد عنها. كحد أقصى أحتاج إلى صفيفان تعويم مع 40،000 عوام لكل منهما ... لكن يمكنني أن أفلت من 1/10 أفترض الحد الأدنى.

هل ترغب في القيام بذلك في 1/30 أو 1/60 من الثانية ولكن هذا لا يبدو ممكنًا؟ أيضًا إذا كان الرمز هو JNI أو NDK أو OpenGL ES هذا جيد .. هل لدى Android لغة تجميع أو رمز الجهاز الشبيه يمكنني استخدامه بطريقة أو بأخرى؟

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

المحلول

نظرًا لأن التعويم يساوي 32 بت ولديك 40000 عوام في كل صفيف ستحتاجه:

40000 * 32 * 2 = 2.560.000 بت

وهو 320.000 بايت. ليس الكثير من الذاكرة الحكيمة أود أن أقول لأن الحد الافتراضي لتطبيق Android هو 16 ميجابايت.

فيما يتعلق بالأداء ، ستحصل بالتأكيد على بعض السرعة باستخدام JNI. لن يعطيك OpenGL فائدة كافية أعتقد لأن إنشاء سياق OpenGL يستغرق بعض الوقت أيضًا.

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