שתף באמצעות


המלצות למיטוב הלוגיקה

חל על המלצה זו של רשימת פעולות לביצוע של יעילות ביצועים שמתוכננת היטב ב- Power Platform:

PE:06 השתמשו בלוגיקה להשגת ביצועים, וודאו שהיא מעבירה את האחריות לפלטפורמה. השתמשו בלוגיקה רק למטרה המיועדת שלה ורק בעת הצורך.

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

הגדרות

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

אסטרטגיות מרכזיות בתכנון

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

מיטוב ביצועי לוגיקה

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

תיאום לוגיקה

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

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

פשרות: כלים לניטור הלוגיקה עשויים להגדיל את העלויות.

זיהוי נתיבים חמים

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

כדי לזהות נתיבים חמים של קוד, יש לשקול את השלבים הבאים:

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

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

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

מיטוב לוגיקה

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

כדי למטב את הלוגיקה, מומלץ לשקול את האסטרטגיות הבאות:

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

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

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

  • צמצמו עיבוד נתונים מיותר: בחנו את הלוגיקה עבור פעולות עיבוד נתונים מיותרות, כגון חישובים מיותרים או המרות. בטלו פעולות מיותרות אלה כדי לשפר את יעילות הלוגיקה. לדוגמה, השתמשו בעמודות מחושבות ב- Dataverse, שדות סיכום או עמודות ב- Power Fx במקום לחשב את הערך בקוד ולאחסן אותו עם פעולת שמירה.

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

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

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

  • ביצוע עבודה באופן אסינכרוני: העריכו אם ניתן לבצע עבודה באופן אסינכרוני במקום באופן סינכרוני בלוגיקה. לדוגמה, במקום לבצע את הפעולה בתוך השורה, אולי כדאי ליישם זרימה של Power Automate כדי לעבד את העבודה באופן אסינכרוני.

  • הגדרת תצורה לפני התאמה אישית. השתמשו ברכיבי יישום סטנדרטיים אם ניתן. התאמות אישיות כגון יישומי plug-in ו- JavaScript יכולות להשפיע על הביצועים.

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

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

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

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

עצה

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

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

שימוש במקביליות והתרחשות בו-זמנית

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

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

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

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

  • התרחשות בו-זמנית: ביצוע בו-זמני מאפשר לאותה לוגיקה לפעול באופן סימולטני. הגבלת התרחשות בו-זמנית לפעולה אחת יכולה להשפיע על לוגיקה סדרתית, וכתוצאה מכך לעבד פריט אחד בכל פעם. שליטה בכמות של התרחשות בו-זמנית של פריטי עומס עבודה יכולה לסייע בניהול השימוש במשאבים במהלך העיבוד. לדוגמה, ניתן להגדיר לולאות זרימה של Power Automate לעיבוד פעולות מרובות במקביל באמצעות מאפיין הפקד Concurrent‬.

    הערה

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

  • תורים: תור הוא מאגר אחסון הממוקם בין רכיב מבקש (יצרן) לבין רכיב העיבוד (צרכן) של עומס העבודה. יכולים להיות מספר צרכנים לתור אחד. ככל שהמשימות גדלות, צריך להגדיל את הצרכנים כדי לענות על הביקוש. היצרן מציב משימות בתור. התור מאחסן את המשימות עד שלצרכן יש קיבולת. תור הוא לעתים קרובות הדרך הטובה ביותר להעביר עבודה לשירות עיבוד שחווה שיאי ביקוש. למידע נוסף, ראו תבנית חלוקת עומסים שמבוססת על תור ותורי אחסון ואפיק שירות.

מיטוב משימות ברקע

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

סיוע ל- Power Platform

תיאום קוד: בעת בניית יישומי בד ציור, יש להשתמש בדפוסים ביצועיים כדי לשפר את יעילות היישום, ויש להימנע מאנטי-דפוסים. למידע נוסף, ראו ‏‫מבט כולל על יצירת Power Apps עם ביצועים טובים. השתמשו בניטור ב- Power Apps כדי לאבחן ולפתור בעיות ביצועים במהלך הפיתוח.

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

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

שימוש במקביליות ובהתרחשות בו-זמנית: זרימות ענן של Power Automate תומכות במקביליות בלולאות ובגורמים מפעילים. שימו לב שמגבלות של מקביליות, לולאות וביטול אצווה חלות ומבוססות על פרופיל הביצועים. Power Apps תומך במקביליות באמצעות הפונקציה Concurrent.

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

רשימה לבדיקה של יעילות ביצועים

עיין במכלול ההמלצות המלא.