Dart 2.15 מגיע עם קבוצות מבודדות, שיפורים בזמן ריצה ועוד

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

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

התכונות החדשות העיקריות של Dart 2.15

בגרסה החדשה הזו של Dart 2.15 כלים מסופקים לביצוע מקביל מהיר של משימות עם בידוד בקר.

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

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

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

בגרסה החדשה, זה גם מותר להעביר את התוצאה של עבודת הבקר כאשר נקרא Isolate.exit (). להעביר נתונים לבלוק הבידוד הראשי מבלי לבצע פעולות העתקה. בנוסף, בוצעה אופטימיזציה של מנגנון העברת ההודעות: הודעות קטנות ובינוניות מעובדות כעת כפי 8 מהר יותר. האובייקטים שניתן להעביר בין מבודדים באמצעות הקריאה SendPort.send () כוללים סוגים שונים של פונקציות, סגירות ועקבות מחסניות.

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

סִפְרִיָה חץ: ליבה שיפרה את תמיכת ה-enum, לדוגמה, כעת תוכל ליצור ערך מחרוזת מכל ערך ספירה בשיטת ".name", לקבל ערכים לפי שם או להתאים צמדי ערכים.

זה גם מודגש טכניקת דחיסת מצביע יושמהכי מאפשר להשתמש בייצוג קומפקטי יותר של מצביעים בסביבות של 64 סיביות אם שטח הכתובות של 32 סיביות מספיק להתייחסות (לא נעשה שימוש יותר מ-4 GB של זיכרון). בדיקות הראו שאופטימיזציה כזו מקטינה את גודל הערימה בכ-10%. ב-Flutter SDK, המצב החדש כבר מופעל עבור אנדרואיד כברירת מחדל והוא מתוכנן להיות מופעל עבור iOS במהדורה עתידית.

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

של שינויים אחרים הבולטים:

  • הגנה נוספת מפני פגיעות (CVE-2021-22567) הנגרמת משימוש בתווי Unicode המשנים את סדר התצוגה בקוד.
  • תוקנה פגיעות (CVE-2021-22568) שעלולה להתחזות למשתמש pub.dev אחר בעת פרסום חבילות לשרת צד שלישי המקבל אסימוני גישה ל-oauth2 מ-pub.dev.
  • ה-Dart SDK כולל כלים לניפוי באגים וניתוח ביצועים (DevTools), אשר סופקו בעבר בחבילה נפרדת.
  • כלים נוספו לפקודה "dart pub" ולמאגרי החבילות pub.dev כדי לעקוב אחר שחרור בשוגג של מידע רגיש, למשל השארת אישורים עבור מערכות אינטגרציה מתמשכות וסביבות ענן בתוך החבילה.
  • אם יימצאו דליפות כאלה, הפקודה "דארט פאב פרסום" תפסיק עם הודעת שגיאה. במקרה של אזעקת שווא, ניתן לדלג על הצ'ק דרך הרשימה הלבנה.

מקור: https://medium.com/


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי על הנתונים: AB Internet Networks 2008 SL
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.