Acovea

צילום מסך תוכנה:
Acovea
פרטי תוכנה:
גרסה: 1.0.1
טען תאריך: 3 Jun 15
מפתחים: Scott Robert Ladd
רשיון: ללא תשלום
פופולריות: 176

Rating: 2.7/5 (Total Votes: 3)

Acovea מיישם אלגוריתם גנטי למציאת האפשרויות "הטובות ביותר" לעריכת תוכניות עם C GCC ומהדרי ++ C.
ACOVEA (ניתוח של מהדר אפשרויות באמצעות אלגוריתם אבולוציונית) מיישם אלגוריתם גנטי כדי למצוא את האפשרויות "הטובות ביותר" לעריכת תוכניות עם C של גני מהדר האוסף (GCC) ומהדרי ++ C.
"הטוב ביותר", בהקשר זה, מוגדר כאלה אפשרויות שמייצרות תכנית ההפעלה המהירה ביותר מקוד מקור נתון. Acovea היא מסגרת ++ C שניתן להאריך לבדוק שפות תכנות אחרות ומהדרים שאינם GCC.
אני מדמיינים Acovea ככלי אופטימיזציה, דומה במטרה לפרופיל. פרופיל מסורתי ברמת התפקוד מזהה את האלגוריתמים המשפיעים ביותר בביצועים של תכנית; Acovea לאחר מכן להחיל את האלגוריתמים אלה כדי למצוא את דגלי מהדר ואפשרויות שיוצרים את הקוד המהיר ביותר.
Acovea שימושי גם לבדיקת שילובים של דגלים לאינטראקציות פסימיות, ולבדיקת האמינות של המהדר.
תוכנה מודרנית קשה להבין ולאמת באמצעים מסורתיים. מ'שורות קוד לייצר יישומים המכילים אינטראקציות מורכבות, תיגר תיאור פשוט או כוח פראי חקירה.
גישה מודרכת, דטרמיניסטית לבדיקה מסתמכת על בודקים אנושיים לדמיין כל שילוב אפשרי של פעולות - הצעה מציאותית בהתחשב במורכבות של תוכנה. ובכל זאת, למרות מורכבות ש, אנחנו צריכים תשובות לשאלות חשובות על תוכנה מודרנית, בקנה מידה גדולה.
איזה סוג של שאלות חשובות? קחו למשל את מהדר האוסף של גנו. אני כותב מאמרים שדור קוד אמת מידה, משימה כרוכה בקשיים בשל האפשרויות עצום הניתנות על ידי מהדרים שונים. לאמות המידה שלי יש משמעות, אני צריך לדעת ששילוב של אפשרויות מייצר הקוד המהיר ביותר עבור יישום נתון.
מציאת הסט "הטוב ביותר" של אופציות נשמעת כמו משימה פשוטה, בהתחשב בהיקף תיעוד GCC והחוכמה הקונבנציונלית של קהילת מפתחי GCC. אה, אם זה היה רק ​​כל כך קל! תיעוד GCC, בעוד נרחב, הוא בכנות גם לא מדויק.
אני מעריך את הסגנון הזה של תיעוד; בניגוד לרבי ספקים מסחריים, שהצהרות מוחלטות על "האיכות" של המוצרים שלהם, המתעדים של GCC להודות אי ודאויות באופן שונים אפשרויות לשנות דור קוד. ואכן, דור קוד הוא תלוי לחלוטין בסוג של יישום שלוקט ופלטפורמת היעד. אפשרות שמייצרת קוד הפעלה מהיר לקוד מקור אחד עלולה לפגוע בביצועים של תכנית אחרת.
"חוכמה קונבנציונלית" מגיעה בתיבת הדואר הנכנס שלי בכל פעם שאני מפרסם מאמר חדש. החל המנומס לעיקשת לגס הרוח, הודעות דואר אלקטרוני אלה מכילים הצעות סותרות לייצור קוד מהיר.
ברוב המכריע של המקרים, טענות אנקדוטיות כזה חסר כל הוכחה רשמית של תוקפם, ו, לעתים קרובות יותר מאשר לא, הציע "השיפור" אינו יעיל או מזיק. זה הפך להיות ברור יותר ויותר שאף אחד לא --myself כלול - יודע בדיוק איך כל האפשרויות GCC אלה עובדים יחד ביצירת קוד תכנית.
אני מחפש את הגביע הקדוש של אופטימיזציה - אבל בדיוק מה הוא ייעול? הבנת הבעיה היא הצעד הראשון במציאת פתרון.
אופטימיזציה מנסה לייצר הקוד מכונה "הטוב ביותר" מקוד המקור. "הכי טוב" אומר דברים שונים ליישומים שונים; אתים מסד נתוני נתחי מידע, תוך יישום מדעי עוסק בתוצאות מהירות ומדויקות; הדאגה הראשונה למערכת משובצת עשויה להיות גודל קוד.
וזה בהחלט אפשרי כי קוד קטן הוא מהיר, מדויק או קוד מהיר. אופטימיזציה היא רחוק מלהיות מדע מדויק, בהתחשב במגוון של תצורות חומרה ותוכנה.
אלגוריתם אופטימיזציה עשוי להיות פשוט כמו הסרת שמורת לולאה, או מורכבת כמו בחינת תכנית כולה לחסל את תת-ביטויים נפוצים בעולם. אופטימיזציות רבות לשנות את מה שכתב מתכנת לצורה יעילה יותר, בהפקת אותה התוצאה בעת שינוי פרטים בסיסיים ליעילות; "אופטימיזציות" קוד אחר תוצרת שמשתמש במאפיינים ספציפיים של החומרה הבסיסית, כגון ערכות הדרכה מיוחדות.
ארכיטקטורות זיכרון, צינורות, מטמונים לסירוגין שבב - כל להשפיע על ביצועי קוד בדרכים שאינן ברורים למתכנתים באמצעות שפה ברמה גבוהה. אופטימיזציה שאולי נראה לייצר קוד מהר יותר עשוי, למעשה, ליצור קוד גדול שגורם ליותר החטאות מטמון, ביצועים וכך משפילים.
אפילו קוד C היד המכוונת הטוב ביותר מכיל אזורים של פרשנות; אין התכתבות מוחלטת, אחד-על-אחד בין הצהרות C והוראות מכונה. כמעט כל רצף של קוד המקור ניתן להדר לשונה - אך פונקציונלי שווה ערך - הוראת מכונה הנחלים בגדלים שונים ומאפייני ביצועים.
הטבעת פונקציות היא דוגמא קלאסית לתופעה זו: החלפת קריאה לפונקציה בקוד עצמו הפונקציה יכולה לייצר תכנית מהירה יותר, אלא גם עשוי להגדיל את גודל תכנית. גודל תכנית מוגבר, עשוי, בתורו, למנוע מאלגוריתם מתאים בתוך זיכרון מטמון במהירות גבוהה, וכך להאט את תכנית בשל החמצות מטמון.
שים לב לשימוש שלי במילה הסמור "רשאי" - הטבעת פונקציות קטנות לפעמים מאפשרת אלגוריתמים אופטימיזציה אחרים הזדמנות לשפר עוד יותר את הקוד לתנאים מקומיים, ייצור מהיר יותר וקוד קטן יותר.
אופטימיזציה היא לא פשוטה או ברורה, ושילובים של אלגוריתמים יכולים להוביל לתוצאות בלתי צפויות. מה שמביא אותי בחזרה לשאלה: לכל יישום נתון, מה הן אפשרויות הקידום ביעילות ביותר?
מה חדש במהדורה זו:
· שינויים קלים ברישיון שאינו חופשי.
· תמיכה נוספה לגרסאות העדכניות של libcoyotl וlibevocosm.

תוכנה דומה

pytest-incremental
pytest-incremental

12 May 15

nose_fixes
nose_fixes

14 Apr 15

nose-numpyseterr
nose-numpyseterr

11 May 15

nosango
nosango

11 May 15

תוכנות אחרות של יזם Scott Robert Ladd

Acovea/GTK
Acovea/GTK

3 Jun 15

תגובות ל Acovea

תגובות לא נמצא
להוסיף הערה
הפעל את התמונות!