के साथ मूल कोड को अनुकूलित करने के लिए मैं साइगविन और विंडोज 7 का उपयोग कर मूल कोड संकलित कर रहा हूं। मुझे इंटरनेट पर कई अनुकूलन युक्तियां मिलीं।एंड्रॉइड-एनडीके (स्पीड ऑप्टिमाइज़ेशन)
APP_OPTIM := release
ndk-build NDK_DEBUG=0
-DNDEBUG
LOCAL_CFLAGS += -O2
लेकिन मुझे यह समझ में नहीं आता कि एप्लिकेशन.एमके और एंड्रॉइड.एमके पर इन्हें कैसे सेट किया जाए। मैंने उपरोक्त युक्तियों को लागू करके कई मामलों की कोशिश की। लेकिन, मुझे नहीं लगता कि अनुकूलन मेरे मूल कोड में लागू होता है।
Application.mk
APP_PROJECT_PATH := $(shell pwd)
APP_MODULES := native_lib
APP_OPTIM := release
APP_BUILD_SCRIPT := Android.mk
APP_ABI := armeabi
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := crypto
LOCAL_SRC_FILES := lib/libcrypto.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := native_lib
LOCAL_SRC_FILES := nativeC.c \
AES/main.c \
AES/aes.c \
LOCAL_C_INCLUDES := ./lib
LOCAL_SHARED_LIBRARIES := crypto
LOCAL_CFLAGS += -O2
LOCAL_CFLAGS += -march=armv6 -marm -mfloat-abi=softfp -mfpu=vfp
LOCAL_LDLIBS += -ldl
include $(BUILD_SHARED_LIBRARY)
मैं कई टिप्पणियां की उम्मीद है।
अलावा में,
पहले, मैं ऊपर ध्वज के साथ और इसके बिना के बीच मामलों की तुलना करने की कोशिश की। (उदाहरण के लिए मैंने APP_OPTIM के साथ अपना प्रोग्राम संकलित किया: = application.mk में रिलीज़ करें, और उसके बाद मैं इसके बिना या APP_OPTIM: = डीबग, फिर से संकलित करता हूं।) लेकिन, मुझे चलती गति का कोई भी परिवर्तन दिखाई नहीं दे रहा है।
दूसरा, यह सबसे महत्वपूर्ण है, मेरा प्रोग्राम दो मॉड्यूल की गति की तुलना करता है। (सुविधा के लिए, मैं उन्हें मॉड्यूल ए, बी कहते हैं) मॉड्यूल ए प्रीबिल्ट (जो एंड्रॉइड.एमके में libcrypto.so है) है। और मैं मॉड्यूल बी में अनुकूलन लागू करना चाहता हूं। सबसे पहले, मैंने पीसी में मॉड्यूल ए और बी की गति परीक्षण (विजुअल स्टूडियो 2010) की तुलना की। जब मैंने पीसी में मॉड्यूल ए और बी की कोशिश की, तो मॉड्यूल बी ए से तेज है (बेशक, मैंने मॉड्यूल ए का प्रीकंपल किया और मैं पुस्तकालय को कॉल करके इसका उपयोग करता हूं।) अब मैं पीसी के लिए अपना प्रोग्राम पोर्ट कर रहा हूं एंड्रॉयड के लिए। लेकिन एंड्रॉइड में, मॉड्यूल बी ए
से बहुत धीमी है इसलिए मैंने निष्कर्ष निकाला कि यह अनुकूलित नहीं है।
सारांश में,
- मैं ध्वज के साथ और इसके बिना के बीच गति की तुलना में।
- पीसी में इस प्रोग्राम को चलाने पर, precompiled मॉड्यूल ए बी से तेज़ है, लेकिन एंड्रॉइड में, यह बिल्कुल विपरीत है।
क्या आपको पता है कि मेरे प्रोग्राम की समस्या क्या है? पहले ही, आपका बहुत धन्यवाद।
आप कैसे बता सकते हैं कि आपके संकलित कोड को अनुकूलित नहीं किया गया है? – krsteeve
मैंने नीचे दिए गए उत्तर में विवरण जोड़ा। (जोड़ में ...) – user2642459
आप अधिक जानकारी के साथ अपने प्रश्न को संपादित कर सकते हैं, आपको ऐसा उत्तर नहीं देना चाहिए जो वास्तव में एक उत्तर नहीं है। – krsteeve