ביצועי אפליקציות Java לעומת C - גארי מסביר

מְחַבֵּר: John Stephens
תאריך הבריאה: 23 יָנוּאָר 2021
תאריך עדכון: 19 מאי 2024
Anonim
ביצועי אפליקציות Java לעומת C - גארי מסביר - אפליקציות
ביצועי אפליקציות Java לעומת C - גארי מסביר - אפליקציות

תוֹכֶן


החל מהציון הגרוע ביותר, אנדרואיד 5.0 של 32 סיביות, מראה שקוד ה- Java רץ 296% יותר איטי מ- C, או במילים אחרות פי 4 איטי יותר. שוב, זכרו שהמהירות המוחלטת אינה חשובה כאן, אלא ההבדל בזמן שלקח להריץ את קוד ה- Java לעומת קוד ה- C, באותו מכשיר. 32 סיביות אנדרואיד 4.4 KitKat עם ה- JVM של Dalvik שלה הוא קצת יותר מהיר ב- 237%. לאחר הקפיצה לאנדרואיד 6.0 המרשמלו הדברים מתחילים להשתפר דרמטית, כאשר אנדרואיד 6.0 עם 64 סיביות מניבה את ההבדל הקטן ביותר בין Java ל- C.

המבחן השני הוא מבחן המספר הראשוני, באמצעות ניסוי לפי חלוקה. כפי שצוין לעיל קוד זה משתמש ב- 64 סיביותארוך מספרים שלמים ולכן יעדיפו מעבדי 64 סיביות.

כצפוי התוצאות הטובות ביותר מגיעות מאנדרואיד הפועלת על מעבדי 64 סיביות. עבור אנדרואיד 6.0 עם 64 סיביות הפרש המהירות הוא קטן מאוד, רק 3%. בעוד שעבור אנדרואיד 5.0 עם 64 סיביות הוא 38%. זה מדגים את השיפורים בין ART ב- Android 5.0 ל- מיטוב מהדר המשמש את ART באנדרואיד 6.0. מכיוון שאנדרואיד 7.0 N היא עדיין בטא פיתוחי לא הראתי את התוצאות, עם זאת היא בדרך כלל מציגה ביצועים טובים כמו גם אנדרואיד 6.0 M, אם לא טובה יותר. התוצאות הגרועות יותר הן עבור גרסאות 32 הסיביות של אנדרואיד ובאופן מוזר אנדרואיד 6.0 של 32 סיביות מניבה את התוצאות הגרועות ביותר של הקבוצה.


המבחן השלישי והאחרון מבצע פונקציה מתמטית כבדה במשך מיליון איטרציות. הפונקציה עושה אריתמטיקה שלמה כמו גם אריתמטיקה של נקודה צפה.

והנה לראשונה יש לנו תוצאה בה ג'אווה למעשה פועלת מהר יותר מ- C! יש לכך שני הסברים אפשריים ושניהם קשורים לאופטימיזציה ו- Oמיימתמהדר מ- ARM. ראשית, ה- Oמיימת המהדר יכול היה לייצר קוד אופטימלי יותר עבור AArch64, עם הקצאת רישומים טובה יותר וכו ', מאשר מהדר C ב Android Studio. מהדר טוב יותר פירושו תמיד ביצועים טובים יותר. כמו כן יכול להיות נתיב דרך הקוד בו ה- Oמרגיזהמהדר חישב ניתן לבצע אופטימיזציה משם כי אין לו השפעה על התוצאה הסופית, אך מהדר C לא הבחין במיטוב זה. אני יודע שמיטוב מסוג זה היה אחד המוקדים הגדולים של ה- Oמרגיזהמהדר באנדרואיד 6.0. מכיוון שהפונקציה היא רק המצאה טהורה מצידי, יכול להיות שתהיה דרך לייעל את הקוד שמושיט חלקים מסוימים, אבל לא הבחנתי בזה.הסיבה האחרת היא שקריאה לפונקציה זו, אפילו מיליון פעם, לא גורמת לאספן האשפה לרוץ.


בדומה למבחן ה- Primes, מבחן זה משתמש ב -64 סיביותארוך מספרים שלמים, וזו הסיבה שהציון הטוב ביותר הבא מגיע מ- 64 סיביות אנדרואיד 5.0. ואז מגיע אנדרואיד 6.0 עם 32 סיביות, ואחריה אנדרואיד 5.0 של 32 סיביות, ולבסוף 32 סיביות אנדרואיד 4.4.

לעטוף

בסך הכל C מהיר יותר מג'אווה, אולם הפער בין השניים הצטמצם בצורה דרסטית עם שחרורו של 64 סיביות אנדרואיד 6.0 מרשמלו. כמובן שבעולם האמיתי, ההחלטה להשתמש ב- Java או C אינה בשחור לבן. בעוד של- C יש כמה יתרונות, כל ממשק המשתמש של אנדרואיד, כל שירותי האנדרואיד וכל ממשקי ה- API של אנדרואיד נועדו להתקשר מג'אווה. באמת ניתן להשתמש ב- C רק כשרוצים בד OpenGL ריק ורוצים לצייר על הבד בלי להשתמש בממשקי API של Android.

עם זאת, אם יש לאפליקציה שלך הרמה כבדה כלשהי, ניתן יהיה להעביר חלקים אלה ל- C ואתה עשוי לראות שיפור מהירות, אך לא פחות ממה שהיית יכול לראות.

הוקי הוא האחרון מבין ארבעת ענפי הספורט הגדולים בצפון אמריקה, אם כי יש לו גם מעקב בינלאומי טוב. עם זאת, אין לזה פשוט את המספרים שיש לכדורגל או לכדורגל אמריקני. המשמעות היא שהמפתחים לא שמים לב להוקי הר...

אבטחת הבית נעשית זולה יותר, חכמה וקלה יותר בכל שנה. לפיכך, השוק הולך ומתמעט לאפליקציות אבטחה ביתיות עצמאיות. רוב הטובים שבהם משתלבים עם מצלמת אבטחה חכמה בימינו. ובכל זאת, יש כמה אפשרויות לבחון עבור א...

בחירה של הקוראים